google map

google map  


现在有很多地图JS 可以用,我以问答的形式来开始这篇文章要说的内容.最后以一个geoRSS+Google map api 来说V3的示例

1.为什么地图API要选google?
免费吧.这可能是很多用户的主要考虑.就中小企业来说是这样的.

2.为什么要用V3?
因为V2需要注册一个google帐号和申请Key.但在V3中完全不需要.V3的设计理念也好过V2.只不过市面看到的应用多是V2的示例或图书.在V3中可以引入KML和XML文件来减少代码量.可以说不会开发的人只要找个V3的示例就可以用.

3.从V2到V3是不是改动很大?
不大.因为GIS应用已发展了多年.况且google不是第一家提供地图服务的公司.对于GIS应用的一些概念是不会变的.只不过有些名词在变成对象时改头换面了.拿基本的map对象来说吧.在V2中是GMap2,在V3中是google.maps.Map.下面大体罗列了一些基础对象.

marker         V2 GMarker
                      V3 google.maps.Marker
                      
纬经度          V2 GLatLng
                     V3 google.maps.LatLng
                     
信息窗口      V2 GInfoWindow
                     V3 google.maps.InfoWindow
                     
注册事件     V2 GEvent.addListener
                      V3 google.maps.event.addListener
                      
引入js文件  v2 http://ditu.google.cn/maps?file=api&v=2.x&key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA&hl=zh-CN

                     v3  http://maps.google.com/maps/api/js?sensor=true


这里多说几句.如果您对XML很精通,哪下面的文字对您可能是多余.您只要找到atom和georss的网址.文章就到此为止了.如果您看不懂这份XML的话,请您继续看下去吧!

这份XML用到了两个namespace.一个是atom,一个是georss.在文件中只用到了一个georss namespace下的元素.<georss:point>这个元素的子节点就是哪些数字,第一个是纬度加上空格加上经度.其实google map api只关心这个节点.如果您没有<summary>,<content>,<title>元素的话.除<georss:point>元素以外其它的元素都属于默认atom namespace 下的元素.当您在浏览器中打开这份XML文件时看不到<georss:point>元素的内容.<entry>的子节点:<title>是出现在点击marker时出现的infowindow标题.<summary>会和<title>一起填充到infowindow 的content中.如果您想在infowindow中有顺眼的内容可以用<content type="html">元素.它里面可以有HTML DOM节点.如果您想看到本示例的最终效果.可以在您本地创建一份HTML文件加载以下georss xml文件

http://luhuo.net20.net721.net/demo.xml

就可以看到.当然js代码是需要您到参考地址中去自已找的.我不敢保证您看到时上面的XML地址依然有效.最后是atom,georss,google map api v3的参考地址.
atom:http://tools.ietf.org/html/rfc4287
georss:http://www.georss.org/
google map api v3:http://code.google.com/intl/zh-CN/apis/maps/documentation/javascript/basics.html


谷歌地图的API类库是通过script标签导入的,形式如下:

<script src="http://ditu.google.com/maps?file=api&hl=zh-CN&v=2&key=YOUR_API_KEY"

type="text/javascript">

</script>

我们使用API的时候关心的就是这个scriptsrc属性了,这个属性也就两个部分:路径:http://ditu.google.com/maps;参数:file=api&hl=zh-CN&v=2&key=abcdefg

解剖一下:

1、  路径:http://ditu.google.com/maps

路径在这里需要注意的就是它的域名:ditu.google.com。这个和谷歌地图简单背景里介绍的谷歌地图主页的问题类似,就是说,我们主要可以使用maps.google.comditu.google.comditu.google.cn这三个域名,有些区别和说明:

1)如果你需要在地图上显示大陆以外的详细地图,就非maps.google.com莫属了,不过,这个域名对国内地理数据的查询(比如查询地址、路线等等)支持能力有限,如果你这方面有需求就要小心了,而且,这个应该是使用的国外的服务器,所以,访问速度比较慢;

2)相反,如果你需要使用谷歌提供的与国内地理数据查询相关的API,就是用ditu.google.com吧,使用这个域名的缺点就在于它和 maps.google.com提供的类库不是完全一致,更新稍微有点滞后。而且受限于国内数据源在法律等方面的限制,有些功能方面的支持也会受限,比如地址解析(不过现在已经放开了,这里只是拿来举例);

3)至于ditu.google.comditu.google.cn的区别,目前还不是太清楚。

总得来说,一般的应用使用ditu.google.com就可以了,如果需要使用大陆以外的详细地图,就考虑使用maps.google.com吧。不过,因为使用了相同的命名空间,这两者在一个页面中不能共存,所以,可以考虑用两个iframe来动态切换。

2 参数:file=api&hl=zh-CN&v=2&key=YOUR_API_KEY

1file=api

这个是请求APIJS文件用的,少不了,不需多说;

2)  hl=zh-CN

这个是在设定地图上除了地图图片以外的诸如控件名称、版权声明、使用提示等所需要显示文本的语言版本时候用的,如果没有指定这个参数就使用API的默认值,对ditu.google.com来说,默认是中文简体,maps.google.com默认的是英文。其他的语言版本在这里有一个简单的英文说明。

3)  v=2

这个是用来指定需要导入的API类库的版本号,可以有四种设定方式:

v=2.s 稳定版本,更新最慢,但是最可靠;

v=2 当前版本(只用主版本号),更新速度和可靠性介于sx之间;

v=2.x 最新版本,更新最快,包括最新功能,可能没有当前版本可靠;

v=2.76 指定版本,不建议使用。

目前谷歌地图API的主版本号是2,这是从20064月开放的版本,对之前的第1版做了一些比较重要的升级,不过估计国内用第1版的应该很少,所以也没必要多说了,注意第二版里定义地图对象时使用GMap2而不是GMap就可以了,否则可能会导致一些奇怪的问题。

需要注意的是,谷歌地图API正常情况下还是相当稳定的,不过也有一些比较著名的Bug,比如超长的Polyline在某些特定环境下可能会显示不正常。万一有什么问题可以去这里找找是不是别人报过的Bug(英文版),当然,更简单的办法是到谷歌地图API论坛里问问,不过别忘了把你的问题、运行环境描述清楚。

4)  key=YOUR_API_KEY

这个是设定你注册的API密钥。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值