论坛首页 综合技术论坛

主流地图API比较

浏览 34094 次
精华帖 (0) :: 良好帖 (5) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-01-09   最后修改:2010-03-31
最近因为工作关系,对市面上主流的地图API都进行了一遍了解,现把文档同大家共享一下。我们对市面上几款主流的地图 API 服务提供商: Google 地图服务, MapABC 地图服务,微软地图服务,以及其他地图服务进行技术调研,根据调研总结结果为我们选用更为符合需求的地图服务提供商提供参考。
 

1. 调研内容计划

   本次技术调研内容主要为:
1.        各类 MAP-API 使用方法 MAP-API 针对系统的开发效率的调查,比如在使用的合理性,封装的便利性几个方面。
2.        各类 MAP-API 的功能初步调研,各类 MAP-API 在免费版本中的功能限制调研,针对免费和收费版本的异同,收费策略和价格
3.        针对每种 MAP-API 以免费版本的 API 完成一个简单的调用示例,也便于对每种 API 进行代码级别的使用体验。

2. 调研详细内容

2.1 GOOGLE MAP API 调研

2.1.1 . 主要使用方法介绍和评估:
   Google Map API 的种类和应用场景:
A.         Google JavaScript 地图 API : 内嵌 Iframe 展现形式,适用于一般的互联网应用系统,具有标准主流浏览器装载的客户端系统。支持的浏览器类型: ie firefox safari google chrome 。使用标准的 Java 脚本进行开发,可集成 google 地图空间,与标准 google 地图功能类似。
B.         Google Maps API(Flash ) FLASH 展现形式,使用 flex 继续开发,适用于标准浏览器装载的客户端系统。‘
C.         Google 静态地图 API: 图片:图片展现形式,使用 http 接口进行图片地图的创建,所实现功能较前两种少,但无需使用 java 脚本实现,适用于手机或定制化客户端系统的服务调用。静态地图和前两种地图相比还有个遵从每位查看者每天的唯一(不同)图像请求不超过 1000 次的查询限制配额,也就是说每个访问者每天可以查看 1000 个不同的地图图片,对于相同的图片没有限制,所以考虑到一般系统的访问量,此配合即可满足大部分系统的要求。
   评估:
     Google 提供的这三种 API 已经基本可以满足大部分的系统需求,在开发难度上除 Flex 还不是主流技术,开发成本较高外,其他两种技术在使用上都使用标准的网页开发技术,接口难度系数不大,尤其是在静态地图 API 中,还提供了专门为手机所使用的 WAP 的地图类型.
 
2.12. API 主要特性列表以及版本功能限制:
    Google Map API 的主要特性列表:
A.       地址解析(从地址名称解析到具体经纬度)
B.       缩放级别的设置
C.       图像大小的设置
D.      标记添加
E.       地图路径显示
(以上为 静态地图 和动态地图 共有,以下为 动态地图 独有)
     F .事件监听(监听客户端浏览器事件,并在需要接受的事件总定义处理方法)
     G.. 地图控件(包括加载标准地图控件以及创建自定义控件,比如可以自己加入标注的控件,切换地图类型的控件,缩放地图的控件等等)
     H. 街道全景对象
     I. google earth 集成
     J. 交通功能(行车路线,出行模式,路线路段)
     K. 可与 Google AJAX API 集成开发,提高开发效率
      L. 支持 HTTPS 连接对 API 的访问(企业版专有)
 
 
2.1.3 . 收费策略和商业限制:
    Google Maps Api 分为两个版本,一个是免费版,一个是企业版。
    免费版不对使用者进行收费,但是对使用场景有一定的商业限制:
    A. 每天可发出的地址解析请求数有限制,遵从每位查看者每天的唯一(不同)图像请求不超过 1000 次的查询限制配额。
    B. 服务必须让最后的使用者免费访问。所以部分商业用途是符合使用条款的,以下两种情况不能使用免费版:( 1 )仅付费客户可以使用您的网站( 2 )仅可从您的公司或您的 Intranet 中访问您的网站。 详见 google api 使用条款
    C. 不能更改或遮盖地图上的徽标或归属内容。
  
   企业版除具有免费版的所有功能外,还会根据收费策略的不同,加强服务功能的提升并更改了一些商业限条款。这些增强点为:
A.       支持强大的服务级别协议( SLA
B.       客户服务支持
C.       增加了地址解析限制
D.      商业级应用限制的变更
E.       支持 HTTPS 连接对 API 进行访问,达到数据保密的目的。
 
2.1.4 . 技术支持:
   免费版的技术支持包括 google code 的专业详细的开发文档和 google 地图 API 论坛的支持。
   企业版除上述支持外还有人工的客户服务支持。
2.1.5.         Google MAP API 使用
   为了正常使用 google API ,在进行开发之前需要在其项目主页上
http://code.google.com/intl/zh-CN/apis/maps/ 下载 API 所需的密钥。
Google Code上有很多map api的示例,讲解的十分全面,这里就不多说了。
 
总结: Google api 优势: 充足的开发资源和文档资源,与 google map 平行的 api 功能,强大的自定义组件和控件功能。在静态 API 中有针对 mobile 类型系统的地图类型, API 操作简单高效,符合一般性系统开发需求。

2.2 MAP ABC API 调研

2.2.1 . 主要使用方法介绍和评估:
   Map ABC API 的种类和应用场景:
A.      Ajax For Flash 地图 API2&Ajax 搜索 API : MapABC 只有一种 API 类型,就是基于 java 脚本技术的内嵌 Flash 地图展现形式,适用于一般的互联网应用系统,具有标准主流浏览器装载的客户端系统。支持的浏览器类型:因为官方未公布所支持的浏览器类型,所以本次调研测试了 ie firefox 基本没有问题,由于 MAPABC 使用的地图展现载体是 flash ,所以理论上所有支持 flash 格式和 Javascript 的浏览器都可以使用。
B.       MAP ABC 静态 API :通过 JAVA 脚本进行静态地图的生成,主要应用场景在需要加快地图加载,只是示意性进行地图展示的系统中调用。
C.      MAP ABC 地图组件 API :在原有 API 的基础上进行封装,简化了开发复杂度,提高了开发效率。
   评估:
     MAP ABC 接口全部采用 java 脚本进行调用,脚本使用比较方便,但是生成的地图格式为 flash 格式,暂不支持其他格式的地图。至少目前为止厂商在免费版本还未提供基于服务端接口的地图生成的 API ,企业版是单独提供此类接口的。目前来看 MAPABC  API 还是着重于地图 WEB 端的展示作用,从这点来看,比Google的免费版弱一些。
 
 
2.2.2 . API 主要特性列表以及版本功能限制:
    MAP ABC API 的主要特性列表:
A.       缩放级别的设置
B.       图像大小的设置
C.       标记添加
D.      地图路径显示
     F .事件监听(监听客户端浏览器事件,并在需要接受的事件总定义处理方法)
     G.. 地图搜索功能(地点搜索,公交路线搜索,行车路线搜索)
     H. 地图绘图工具集成
     I. 地图控制面板
     J. 静态地图生成功能
     K. 地图组件封装
 
2.2.3 . 收费策略和商业限制:
     MapABC Api 分为两个版本,一个是公众版,一个是企业版。
    免费版不对使用者进行收费,但是对使用场景有一定的商业限制:
    A. 使用 Map ABC API 服务,网站系统所提供给用户的服务必须是开放给一般大众使用且免费的服务 详见 map abc api API使用条款
    B. 不能更改或遮盖地图上的徽标或归属内容。
  
   企业版除具有公众版版的所有功能外,还会增加一些定制服务和技术支持服务。这些增强点为:
D.      专业开发团队的开发服务
E.       从前台界面到后台功能的定制开发
F.       有针对性的 MapABC 地图 API 开发培训
G.      快速响应的技术支持。
 
2.2.4 . 技术支持:
   免费版的技术支持包括 MAP ABC 网站文档以及 MAP ABC 地图 API 论坛的支持。
   企业版除上述支持外还有人工的客户服务支持。
2.2.5 MAPABC API 的使用
   为了正常使用 MAPABC API ,在进行开发之前需要在其项目主页上
http://code.mapabc.com/v1/signup.shtml 下载 API 所需的密钥。
示例程序可见其网站。
   

2.3 其他地图服务 API 调研总结

 

     以上我们对国内国外两种主流的地图服务进行了技术调研,除此之外,市面上还有一些其他的地图 API ,比如 51tidu yahoo 地图 API ,微软 Virtual Earth API MAPBAR 等。
      51ditu Mapbar MapABC 类似,都是国产地图服务,其特点同 MapABC 类似,主要是不支持静态地图的服务端调用,全 JAVAscript 的调用方式,在 WEB 上调用方便,但接口灵活性差,并不合适 WAP 网站的开发。
       Yahoo 的地图接口功能与 Google 类似,接口类型相比 google 更为方便和灵活,但是目前雅虎地图 API 服务还不支持中国地图,所以目前暂不考虑。如果以后开放了中国区地图, Yahoo API 也是值得考虑的选择。目前 Yahoo 地图支持静态地图生成,同时每日的同一 ip 的访问限制为 50000 .
微软地图 virtual map api 功能较为全面,接口设计灵活性与可封装性也很好,同样支持静态地图服务端生成,借助微软的 MSDN 社区的支持下,开发资源和文档也堪比 Google Maps ,但是由于此产品是微软自有服务,保持微软一贯的风格, virtual map 官方称 只支持 ie6/ie7, 另外在调用速度上个人感觉比 Google API 也略逊一筹。同时在本次调研时,微软的 live.cn 因为某些原因被 GFW 封掉了,因此同样影响到了微软地图 API 服务 ditu.live.com, 类似的事件希望以后还是少发生为妙。
 
3 总结
 
大家根据初次调研比较结果,我们得到了以上的数据,目前相比较来看,从功能上和访问速度上,以及各种资源的限制结合考虑,目前符合较为符合目前我们技术需求的是 Google Maps API 。它拥有强大的功能和较少的资源限制。
 
本 次只是做了简单的调研,结果不一定完全准确。只是给大家一个参考,大家在选择和使用地图的API上还是根据自己的需求进行选择,复杂度不高的话,可以选择 免费的国外厂商的API,如果是复杂的企业应用,也可以选择服务和支持力度较好的国内厂商的API及他们的定制服务。有机会我会将以上提到的API一一详 细介绍。
 
     以上为个人不完全调查结果,仅供参考。



---最近由于项目又要使用地图,又做了一次调研,google是不敢用了,mapbar的免费功能还是少的可怜,mapabc接口也不多,目前正在研究微软的地图api,功能还是很全,建议大家目前首选,但是文档学习成本稍微有点儿高,没有google和mapbar的开发文档那么人性化。
   发表时间:2010-01-18  
感谢提供这些资料,个人建议把“java脚本”改成“javascript”。
0 请登录后投票
   发表时间:2010-01-18  
谢谢分享,最近正在研究地图API
0 请登录后投票
   发表时间:2010-01-18  
我们公司用的就是MAP ABC
0 请登录后投票
   发表时间:2010-01-18  
唉 感谢lz 我赶紧去下载要不过几天google用不了了
0 请登录后投票
   发表时间:2010-01-18  
Google地图这事儿还真得小心。。。。
0 请登录后投票
   发表时间:2010-01-18  
Google Maps 使用起来还比较方便。
0 请登录后投票
   发表时间:2010-01-18  
呵呵,专业做web地图javascript的飘过,补充几点
1,51ditu是国内最早做js maps api的,早期用户量是最多的,可惜51ditu的地图投影非墨卡托投影,和其他地图相比,所有图形都是扁的.另外51ditu是提供http接口的经纬度取静态图片的,不过这个服务是收费的.

2,mapbar地图做的还不错,有flash版本,还有js版本.

3,本人公司也在做地图api,优点是,js接口和flash接口都有. 有高分辨率的卫星影像, 有取静态地图图片的http接口.
相信google离开中国之后我们公司就是唯一一家提供高分辨率卫星影像的公司了. 不过所有服务都是收费的...嘿嘿(补充,俺是铁杆的google fans...)
0 请登录后投票
   发表时间:2010-01-18  
这篇文章好像见过
很多东西已经过时了
我当初选地图的时候考虑了4个
Google MapABC Mapbar 51ditu
使用范围:国内
【51ditu】有JS版本,flash不详,不过api扩展不是很好局限性太大,界面不够友好
【MapaBC】api不够详细,有flash版本,JS的忘记了。功能方面不是很强大,Google的中国数据很多来自MapABC
【Google】api非常详细,有JS和flash版本不过载入速度是个头疼的问题,支持静态jpg图片生成
【Mapbar】api较详细,有JS和flash版本,载入速度比较快

对于每日PV好像Google和Mapbar都已经是50W了,具体的忘记了
PV的限制大多对于并发访问的扩展

baidu使用的就是Mapbar的东西数据库是自己的
联系过Mapbar的人,北京的公交是和Mapbar合作的,GPS公交车位置,Mapbar偏重于GPS等道路定位等

免费版本里面好像就Google有卫星地图

从放大级别来看 Google大概有16-20级好像
Mapbar只有12-14级左右的放大

美观方面Google要比Mapbar要好
Mapbar里面有很多东西不是很好看

DOM和Event事件方面 Google绝对是老大,Mapbar的东西也有,但是不够全面

Mapbar提供后台标注方式,可以把标记点坐标保存在Mapbar的服务器端,留有借口调用(51job在使用这种方式),同时还可以使用Mapbar的万能地图功能

对于<地名> => <坐标> 的获取方式都是付费的

坐标显示:
MapABC使用加密方式得到的是 EADVADE 之类的字符
Google和Mapbar得到的是 (119.123456,39.12312312)
因为Google比Mapbar放大级别高 所以小数点后的位数Google大概能达到10-12位左右

-------因为调研中早期就排除了51ditu和MapABC 所以研究不够深入
大多都是对比Mapbar和Google的功能
后期发现Mapbar API在 遨游浏览器里面不兼容,不过已经使用了也没有办法,只能鄙视一下遨游了

大篇幅的报告不好粘贴到这里,所以只是简单介绍一下
PS:当初对于窗口改变大小后调整地图的幕布没有找到方法,后来通过邮件才知道有 maplet.resize(width,height);这个方法改变地图的长宽

公司用的地图时间不长,有兴趣的可以看看 www.handylink.cn
鼠标放到“北京地区”上面会有“显示地图”的链接,最好用IE或者Firefox,不要用遨游或者世界之窗,360 显示可能不太美观
新版本开发中有兴趣的可以关注下,带有查询功能的页面大约会在年前上线
就这么多了...接着为了新地图头疼去了...
0 请登录后投票
   发表时间:2010-01-18  
这些地图如果用于商业,不用给钱吗?????,
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics