地图API初步认识

在网上查了下Baidu、Google、QQ和MapBar等4种Map API(都是采用JS开放API),也查看了它们的SDK开发文档,谈谈自己的体会

 

Map API文档

BMap API(Baidu)与google.maps API(Google)文档相对最完备、详尽、简洁,并且给出了很多学习示例,非常适合初学者入门学习、应用开发

QMap API(QQ)与MapBar API(MapBar)文档虽然也比较完备,但示例与代码分开了,不能很好所见即所得的体现代码与效果相关性

 

Map 功能推荐

BMap API和Google.maps API,应该就可以满足绝大部分需求

就易用性和色彩柔和性,推荐BMap API(Baidu)

就精确性和世界地图,推荐Google.maps API(Google)

精确性:

Baidu BMap提供小数点后六位的精度,如:天安门(116.397128, 39.916527);

Google google.maps则提供小数点后14位的精度,如:纽约(40.69847032728747, -73.9514422416687)

世界性:

Baidu BMap仅提供中国区域,也包括港、澳,但目前还不包含台湾(可能百度日本分公司的地图中含有台湾);

Google google.maps则提供全球区域的地图(支持本地化语言)

3D效果:

Baidu BMap目前仅提供中国几个大城市3D地图(如北、上、广和深圳)

Google google.maps则支持大部分国家的车载导航3D地图(在中国仅支持部分城市,如上海)

API风格:

BMap API和google.maps的API接口略有不同,BMap模块化分层设计更加独立;两者的API风格,可以代表其它几款开放的Map API风格

QMap API与google.maps API接口的风格很类似,MapBar API与BMap API接口风格则很雷同,甚至有些函数接口名都相同,如centerAndZoom

兼容性:

上面四款地图API,都采用js实现访问调用,因此对浏览器兼容性非常重要

BMap API:支持IE6.0+、Chrome、FF 3.0+、Opera 9.0+、Safari 3.0+,以及国内主要浏览器,如遨游、360、QQ、Baidu、世界之窗等浏览器,兼容性较好

google.maps API:支持W3C标准(官方没明确给出兼容的相关浏览器),且在在支持定位功能的浏览器上,可以调用google Geolocation API(智能手机上应用广泛)

注:据了解,google map今年还暂未拿到在中国大陆的经营许可证,因此其地图访问服务有时会被GFW屏蔽掉,甚至不可用

简单对比 

BMap API(Baidu)和google.maps API(Google)——都是以“天安门”为参照系原点

BMap API(Baidu)

[html] view plaincopyprint?

  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
  5. <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
  6. <title>Baidu Map V1.2</title>
  7. <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2&services=true">
  8. <!-- add baidu map api -->
  9. </script>
  10. </head>
  11. <body>
  12. <div id="container" style="width: 600px; height: 400px;">
  13. </div>
  14. </body>
  15. </html>
  16. <script type="text/javascript">
  17. var map = new BMap.Map("container");                    // new Map
  18. var point = new BMap.Point(116.397128, 39.916527);      // Location, (经度, 纬度)
  19. map.centerAndZoom(point, 15);                           // show Map
  20. // 添加缩放功能
  21. map.enableScrollWheelZoom();
  22. map.enableKeyboard();
  23. </script>

效果图如下:

google.maps API(Google)

[html] view plaincopyprint?

  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
  5. <meta http-equiv="content-type" content="text/html; charset=gbk" />
  6. <title>Google Map V3</title>
  7. <link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css"
  8. rel="stylesheet" type="text/css" />
  9. <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">
  10. <!-- add google map api -->
  11. </script>
  12. </head>
  13. <body onload="initialize()">
  14. <div id="container" style="width: 600px; height: 400px;">
  15. </div>
  16. </body>
  17. </html>
  18. <script type="text/javascript">
  19. function initialize() {
  20. var point = new google.maps.LatLng(39.916527, 116.397128);            // location, (纬度, 经度)
  21. var option = {
  22. zoom: 12,
  23. center: point,
  24. mapTypeId: google.maps.MapTypeId.ROADMAP
  25. }
  26. var obj = document.getElementById("container");                       // container
  27. var map = new google.maps.Map(obj, option);                           // show map
  28. }
  29. </script>

效果图如下:

另两大巨头的Map API(Bing与Yahoo!)

Bing Map API基于Virtual Earth的API,js接口调用,目前只有英文版(暂没找到中文版)

Yahoo! Map API提供FlashAjax and Map Image APIs,js接口调用,目前也只有英文版(暂没找到中文版)

注:Yahoo! Map API 看到,好像其要在2011年9月13号关闭Map API服务,建议用户转到其合作伙伴Ovi Maps API(Nokia)

We are shutting down this service on September 13, 2011. We suggest using maps from our partner Nokia. Please visit the Ovi MapsAPI for more information.

背后的故事

MapBar: 国内地图提供商,早期与百度合作,BMap API采用的便是MapBar,因此它们的API接口有些雷同(上面我已举例)

MapABC国内地图提供商,早期与Google合作,google.maps API起初采用MapABC,后来google做的更好、更灵活

51Map:    国内地图提供商,特色服务是提供地图下载,可以实现本地桌面地图(类似手机上的凯立德3D地图)

总体感觉,各家Map API各有千秋,BMap API和google.maps API从开放、维护等角度,代表Map API两大主流,可以满足绝大部分用户需求

QMap API和MapBar API都是后起之秀,专注技术的同时,也可以优化、增加一些API文档,毕竟开放API就是为了让更多的人去使用嘛

IT技术需要竞争,因为竞争,所以创新;因为创新,所以开放;因为开放,所以进步,祝愿中国IT领域不断创新、开放、进步、超越

转载于http://blog.csdn.net/ithomer/article/details/6598020

时间: 2024-10-02 06:16:15

地图API初步认识的相关文章

百度地图API实现批量地址解析

1.前言 写这篇文章的原因是最近做一个GIS项目在网上爬取了一些数据,无奈只有地址的文字信息没有坐标信息,如何把信息显现在地图上呢?很纠结啊,查看了一下百度地图API惊奇的发现百度提供了地址解析的API,然后查看了他的Demo后豁然开朗,所以动手将自己的文字信息数据进行解析坐标信息.下面开始讲解. 2.方案 (1)自己数据库中的数据 (2)百度地图API Demo <!DOCTYPE html> <html> <head> <meta http-equiv=&qu

HTML5结合百度地图API创建地图应用

具体的百度地图API的使用方法查看百度地图API里的DEMO <style> #div1{ width:400px; height:400px; border:1px #000 solid;} </style> <script src="http://api.map.baidu.com/api?v=1.3"></script> <script> window.onload = function(){ var oInput =

Android应用中使用百度地图API定位自己的位置(二)

官方文档:http://developer.baidu.com/map/sdkandev-6.htm#.E7.AE.80.E4.BB.8B3 百度地图SDK为开发者们提供了如下类型的地图覆盖物: 我的位置图层(MyLocationOverlay):用于显示用户当前位置的图层(支持自定义位置图标): Poi搜索结果图层(PoiOverlay):用于显示兴趣点搜索结果的图层: 路线图层(RouteOverlay):公交.步行和驾车线路图层,将公交.步行和驾车出行方案的路线及关键点显示在地图上(起.终

VUE之使用百度地图API

利用vue创建点餐系统,在点餐系统中需要知道商家地址信息,这时就需要借用百度地图API. 步骤一:申请百度地图密钥: 步骤二:在index.html中添加百度地图JavaScript API接口: <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=KCzp8claYra8uYAvahElV9oKUT6j7Gx1" ></script> 步

自备百度地图API密钥 解决Cooply“地图API未授权”问题

自备百度地图API密钥 解决Cooply"地图API未授权"问题 ? ? ? ? ? 有时候,当我们时,会看到提示百度未授权使用地图API,这是因为coolpy的开发者是使用的自己的百度开放平台密钥做的测试,而我们把coolpy下载来后直接使用了人家的百度地图api访问权限,这就是导致问题的原因. 所以,我们在下载来coolpy准备使用的时候,应该先提前将API key换成自己的.这样你使用的时候才不会时不时出问题 ? ? 首先登陆百度账号,注册成为开发者 http://develop

百度地图API多个点聚合时,标注添加的标签label地图刷新就丢失的问题解决

当将自定义的Marker(含有Label)通过MarkerClusterer 管理的时候,当地图发生任何移动.缩放 的时候,Marker 的Label 就会自动消失. 这个问题主要是由于百度的点聚合API<script type="text/javascript" src="http://api.map.baidu.com/library/MarkerClusterer/1.2/src/MarkerClusterer_min.js"></scrip

数据视化Echarts+百度地图API实现市县区级下钻

开始 这两天公司有个页面需要做数据可视化的展示,数据视化采用的是Echarts+百度地图API做展示,需要用到县级区级下钻的一个联动效果发现网上关于Echarts做到县区级下钻的资料很少,有的话也不是很详细,对于刚接触Echarts的让人来说可能有些搞不明白,在这里我把Echarts下钻开发过程中总结的知识分享给大家,也能使自己加深印象,当然啦,对于一些在软件行业折腾了几年的老油条来说,这些都是一些非常基础的东西.但是还是希望能帮助到那些刚接触Echarts遇到类似问题需要帮助的人.如果哪里写的

百度地图API

本文我将从如何使用地图API(本文以百度为例,谷歌类似)开始,往后的扩展行的内容详见后续文章.1.打开链接http://developer.baidu.com/map/jshome.htm  这里有很多DEMO,或者你直接百度搜索“百度地图API”,第一个就是.进入后有很多方向供你选择,由于现在开源的地图API都是JS脚本写的,所以我上面的链接就只针对JAVASCRIPT进行介绍.  即使是编程菜鸟(像我这种),也知道当你在任何一个开发环境下写代码时,都需要加入头文件,例如,你要在C++里使用c

使用百度地图API制作线路轨迹播放

1.使用百度地图API制作轨迹播放: 可应用于车辆跟踪.行驶线路回放.跑步行程的记录等地图应用场景, 1.1绘制静态轨迹图 获取多个轨迹点point(必须包含经度.纬度) 使用polyline对象依次连接相邻的2个点(注意polyline的个数比point的少1) 1.2绘制动态轨迹图(固定间隔时间) 每隔500毫秒读取一个轨迹点,实现a,b两个功能 a增加一条polyline b将marker从先前的point移到当前点 主方法使用setTimeout方法迭代来实现动态循环 Polyline在