最近因为工作关系,对市面上主流的地图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一一详细介绍。
以上为个人不完全调查结果,仅供参考。