前端开发实战教程—基于PHP、Google Maps Api的网站开发(二)

上一节我们建立了Apus项目,学习了使用subversion进行版本控制,学会了怎样将Google Maps放在我们自己的网页上。今天我们会详细的研究,怎样让Google Maps在我们的网页上实现各种功能和效果。

发表于:2009-04-06 18:31 分类:首页 > JavaScript > JavaScript源码范例 > , 标签: phpAjaxMap地图

第二节 Google Maps Api介绍与基础操作

 

前言


上一节我们建立了Apus项目,学习了使用subversion进行版本控制,学会了怎样将Google Maps放在我们自己的网页上。今天我们会详细的研究,怎样让Google Maps在我们的网页上实现各种功能和效果。

本节的操作都是演示性质的,不涉及Apus项目的主干,所以我们的编码只在apus/demos 目录下进行。

课程开始了,请先更新版本库: svn up ,不熟悉版本库操作的朋友请阅读第一节

 本节所有示例程序的压缩包可以在这里下载:http://code.google.com/p/apus/downloads/list

一. 关于Google Maps Api

"API",即“应用程序编程接口”,是指软件或网站为第三方开发人员提供的接口,利用这个接口,可以使用软件的一些功能而不必了解它的内部机理。

具体拿Google Maps Api来说,它提供了一个JavaScript库,具体就是我们上节课在页面头部引入的这个url:http://ditu.google.com/maps?file=api&v=2&key=KEY ,它会自动载入地图所需的js文件,Firefox肿的Firebug插件是前端开发必备工具,使用它我们可以方便的查看网页的内容,可以看到Google Maps Api引入的几个JS文件:


( Google Maps Api引入的文件 )

Google Maps Api的作用是,将Google Maps服务器上的地图图片和数据下载到客户端并正确显示,显示程序定义的地标点、折线和多边形,实现地址搜索、驾车导航等扩展功能。你可以在网页中直接调用它定义的类和方法,而不必了解它的运行机制,当然这些js文件是可见的,需要的话你可以重载它的函数,来实现你想要的功能。

 

二. 概览Google Maps Api

使用Google Maps Api必不可少的东西就是其开发手册:http://code.google.com/intl/zh-CN/apis/maps/documentation/reference.html

我们可以看到,Google Maps Api的地图的显示、标点、划线等操作包含59个类,空间、叠加层等包含18个类。

看到这个长达一百多屏的参考手册,是不是有点晕?不要着急,在本节及以后的讲解中,我们只会学习并使用其中一部分的类来实现我们的功能。

 

三. Google Maps Api基本功能学习

OK,现在我们正式开始学习Google Maps Api的基本功能,目前你需要做的,仅是了解这些功能的概念和实现方法,而不需要考虑它的机制和用途,在后面的正式开发中,我们会将这些模块融会贯通到我们的项目之中。

1.加载并显示地图

上一节的末尾,我们加载了Google Maps Api并显示了地图,

 

    <!--引入Google Map JS文件,此处key=“你申请到的key”-->
    <script type="text/javascript" src="http://ditu.google.cn/maps?file=api&amp;v=2.x&amp;key=ABQIAAAAira30FR5tVprWCJ-8_WcqxSrc1zAT9YCtP2kOyoD7kBAJfliJBROJEdu9hUE13rp9a4OHneyOoW5gg"></script>

    <script type="text/javascript">
      //initMap()函数,将地图程序加入页面
      function initMap() {
        //GBrowserIsCompatible()确定Api能否兼容当前浏览器
        if (GBrowserIsCompatible()) {
          //在ID为"Gmap"的层内显示地图
          var map = new GMap2(document.getElementById("Gmap"));   
          //设置地图中心点和缩放级别
          map.setCenter(new GLatLng(36.09778, 120.37236), 12);
        }
      }
    </script>
  </head>
  <!--GUnload()的作用是防止内存泄漏-->
  <body onload="initMap()" onunload="GUnload()">
    <!--定义显示地图的层-->
    <div id="Gmap" style="width: 600px; height: 400px"></div>
  </body>

 

GMap2是Api中的中心类,作用为在给定的容器DIV中创建地图。可选参数opts.size可以设置地图大小,默认使用容器DIV的大小。

查看演示>>

2.添加控件

Google Maps的控件包括左侧的“鱼骨”控件和比例尺、右侧的地图类型按钮和小地图。

现在我们加载常用的四种控件:

 

          //加载大“鱼骨”,包含方向、缩放按钮和缩放级别控制滑块
          map.addControl(new GLargeMapControl());
          //加载地图类型按钮
          map.addControl(new GMapTypeControl());
          //加载小地图
          map.addControl(new GOverviewMapControl());
          //加载比例尺
          map.addControl(new GScaleControl());

 

此外,还有四种类型的控件,可以在小尺寸地图上选用:

 

       GSmallMapControl() 小“鱼骨”,仅包含方向、缩放按钮
       GSmallZoomControl() 更小“鱼骨”,仅包含缩放按钮
       GMenuMapTypeControl()  下拉框式地图类型选择
       GHierarchicalMapTypeControl() 
按钮、下拉框组合式地图类型选择

 

具体见Api参考中的class GControl   http://code.google.com/intl/zh-CN/apis/maps/documentation/reference.html#GControlImpl

查看演示>>

3. 在地图上添加标注

基本步骤为:定义一个经纬度点GLatLng,定义一个标注对象GMarker,在地图上加入标注GMap2.addOverlay()

 

          //定义一个经纬度点
          var point = new GLatLng(36.07868, 120.3599);
          //定义一个标注对象
          var marker = new GMarker(point);
          //在地图上加入标注
          map.addOverlay(marker);

 

         
我们还可以为这个标注添加冒泡提示,这些要在addOverlay()之前定义:

 

          //定义字符串
          var info = "这是我的家<br/><font color='red'>市北区宁夏路**号</font>";
          //设置点击出现冒泡,内容为预先定义的HTML字串
          marker.bindInfoWindowHtml(info);

 

查看演示>>

    关于标注的其他操作、冒泡的方式内容等,还有几个其他的方法,具体可以阅读Api参考的class GMarker:     http://code.google.com/intl/zh-CN/apis/maps/documentation/reference.html#GMarker

顶一下
(14)
93.3%
踩一下
(1)
6.7%

网友评论

  • 发表评论 (请自觉遵守互联网相关政策法规,作者管理后台可以删除恶意评论、广告和违禁词语。)

    称: ( 默认为“匿名营员” )