[Web]Web在线地图API试用笔记
调研
首先我对国内一些知名的Web服务提供商进行了调研,主要考察其地图服务情况,调研结果如下:
服务商 | 开放 | 语言平台 | 文档 | 难度 | 备注 |
百度 | √ | AJax Javascript | 较全 | 适中 | 虽然百度地图推出比较迟,但其有很好的用户群,而且在国内访问速度比较快 |
√ | Ajax Javascript | 很全 | 适中 | 最早推出的产品,市场成熟度高,有丰富的第三方支撑,但国内访问速度不如百度地图 | |
Yahoo | √ | Ajax Javascript/Flash AS3 | 很全 | 难 | 继承YUI的风格,对于一般用户来说有一定的技术难度 |
网易 | √ | Ajax Javascript/Flash AS3 | 较全 | 适中 | 网易的地图是由51ditu提供的 |
新浪 | × | 新浪的爱问地图没有公开API服务 | |||
综合上述调研,我决定从百度地图API入门,学习Web在线地图开发。
试用问题解决
根据百度API帮助教程可以很方便地进行开发。我主要遇到以下两个问题。
localhost如何访问百度地图API
百度地图API需要一个基于域名的Key,否则无法使用。而我并没有域名,或者只是在本地机器上试用百度地图,其解决方法是:
- 注册一个百度账号;
- 杜撰一个非常冷僻的域名,如"www.verysimpledomainhere.com",以这个域名到百度地图API密钥注册进行注册
- 再回到系统中,修改系统的Host文件(Windows系统在
C:\\Windows\\system32\\drivers\\etc\\host
),增加一行为"127.0.0.1 www.verysimpledomainhere.com",这样你的机器浏览器访问"www.verysimpledomainhere.com"时会自动访问127.0.0.1地址。 - 最后按照百度API帮助中"HelloWorld"样例来创建一个简单的例子即可。
调研JS写法问题
百度百度官方样例的写法非常简单,其主要是为了说明百度地图API的使用原理,并不适合程序开发。我的做法是结合JQuery,先建立一个有DIV标签的容器HTML,然后再利用JS代码来调用百度地图,这样就不需要编写诸如 body onload="...." 这样的代码了
下一步工作
下面要进一步研究百度地图的事件机制与自定义控件技术,并将JQuery与百度地图进行封装,看看能否编一个百度地图的JQuery Plugin。