google map api V3小记


现在有很多地图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
                     
4.下面是一个Atom+geoRss的应用示例.
首先需要说明的是您更改xml文件到看到内容是需要一段时间的.直白的说google map api加载XML并读取节点不是即时的.我建议您把XML文件放到sitemap.xml中并提交给google.我还没有找到此示例怎样自定义marker的icon.如果您找到答案并想告诉我的话可以mail:[email protected].十分感谢您

第二点如果您在本地调试的话不建议.还是把XML文件 FTP到公网指定的文件夹下.

代码:
JS代码就不贴了. 在V3的示例中您可以找到.我想让您看到的是XML的结构.

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
      xmlns:georss="http://www.georss.org/georss">
  <entry>
        <title>三水国际商务</title>
        <summary>山东省烟台市芝罘区北马路75号</summary>
        <georss:point>37.547592 121.381067</georss:point>
   </entry>
   <entry>
        <title>阳光100</title>
        <summary>山东省烟台市芝罘区海港路26号</summary>
        <georss:point>37.543037 121.385529</georss:point>
   </entry>
   <entry>
       <title>第一大道</title>
       <summary>山东省烟台市芝罘区西盛街28号</summary>
       <georss:point>37.543598 121.375885</georss:point>
   </entry>
</feed>



这里多说几句.如果您对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

你可能感兴趣的:(html,xml,api,浏览器,Google,encoding)