你现在的位置:首页 > PHP网站建设知识库 > google api > 正文

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是不是改动很大?

不大.在google api开发中,因为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.

第二点如果您在本地调试的话不建议.还是把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节点.