google Map APi学习与总结(一)

《你站在桥上看风景 看风景的人在楼上看你 明月装饰了你的窗子 你装饰了别人的梦》

                                                                                                                                                                                                         --------------卞之琳

        首先介绍下Google Maps API ,它 Google 自己推出编程 API ,可以让全世界对 Google Maps 有兴趣的程序设计师自行开发基于 Google Maps 的服务,建立自己的地图网站。以下是我在 Google Maps API 开发过程中找到的一些 API 的编程资源,包括中文文档,中文说明,示例等等,希望对 Google Maps 编程感兴趣的程序员有所帮助。

          由于工作需要用到地图,我们项目组不约而同的想到Google Maps API ,就是在于它的方便,强大,直接调用接口,可是,对于一个从来没接触过的人来说,是有点困但的,不过,困难归困难,任务还是要完成的,于是通过网上学习,通过百度找google资料,现在想想也比较有趣,在网上找到的一些资料,慢慢的去学习,首先,使用谷歌地图 API 的第一步就是要 注册一个 API 密钥 

script src="http://ditu.google.com/maps?file=api&v=2&key= 你注册的 API 密钥 " type="text/javascript"></script> 

我的API Key是:ABQIAAAAMWyR7XvYN8KE9N6m_jcU4BRlfWJrPzRGiYSzS4l55_z1ea3VShRolPwARGHvivnEFRLVGXyIlsrYpA

查找文档,迅速写出第一个地图:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtmll/DTD/xhtmll-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
         <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
         <title> 我的谷歌地图</title>
         <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAArOZgwowl24SQDUsdg_UiMxQVwmba-i56saYlzjiEvj048FCMexTXH9I26hjJnXbmlYgoknC4agGy3Q"
            type="text/javascript"></script>
      </head>
      <body οnlοad="initialize()" οnunlοad="GUnload()">
        <div id="mapContainer" style="height:400px; width:400px;"></div>
      </body>
      <script type="text/javascript">
        function initialize() {
          if (GBrowserIsCompatible()) {
            var map = new GMap2(document.getElementById("mapContainer"));
            map.setCenter(new GLatLng(33.0, 106.0), 3);
          }
        }
      </script>
    </html>


打开看的时候,感觉比较枯燥,十分的不美观,看看google官网的地图,有放的缩小,还有双击之类的调整的,于是,继续学习,去查看这些修饰的方法语句,经过一番努力,终于实现了漂亮的地图:

 

<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google Maps </title>
    <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAArOZgwowl24SQDUsdg_UiMxQVwmba-i56saYlzjiEvj048FCMexTXH9I26hjJnXbmlYgoknC4agGy3Q"
            type="text/javascript"></script>
			<script type="text/javascript">
    function initialize() {
    	if (GBrowserIsCompatible()) {
    		var map = new GMap2(document.getElementById("map_canvas"));
    		map.setCenter(new GLatLng(31.295310623919682,120.5486770248566), 8); //设置地图的中心点
    		map.addControl(new GLargeMapControl()); //添加地图组件 一个在Google Local之中使用的大的移动缩放控件,显示在地图的左上角
    		map.addControl(new GMapTypeControl()); //添加地图组件 让用户切换地图类型的按钮控件(例如地图模式和卫星图模式)    
			map.addControl(new GScaleControl());//添加地图组件 地图比例尺控件
    		map.addControl(new GOverviewMapControl(new GSize(100, 100))); //添加地图组件 一个可折叠的鹰眼地图,在地图的角落
    		GEvent.addListener(map, "moveend", function () {
    			  //捕捉 当地图上发生改变的时候调用
    			var center = map.getCenter(); //获得中心经纬
    		});
    		map.setMapType(G_HYBRID_MAP); //设置地图的类型 现在用的混合视图 (G_NORMAL_MAP >简图,G_SATELLITE_MAP >卫星图,G_HYBRID_MAP >混合图)
    		map.enableScrollWheelZoom(); //让地图启用鼠标滚轮
    		map.enableDoubleClickZoom();//让地图启用鼠标双击
    		map.enableContinuousZoom();//让地图启动滑动效果
    	} else {
    		alert("Your browser is not compatible with GoogleMap"); //您的浏览器不兼容
    	}
    }
	
    </script>
  </head>
  <body οnlοad="initialize()" οnunlοad="GUnload()">
    <div id="map_canvas" style="width: 100%; height: 600px"></div>
  </body>
</html>

 

看到上面那些注释没,这些就是一些地图的特效,使其更加的美观,但目前也只是看的过程,并没有实现功能,有点缺憾,不过得继续加代码,大家很容易想到查城市,于是就开始在网上去搜寻查找的接口 ,一般比较常用也是比较简单的就是通过经纬度查相应的位置

,这个要用到一个类

GClientGeocoder 类

GClientGeocoder.getLocations(address, callback)
给 Google 服务器发送请求,对指定的地址进行地址解析。包含状态代码的答复,如果答复成功,则向用户指定的回调函数传递一个或多个 Placemark 对象。与 GClientGeocoder.getLatLng 方法不同,回调函数可以通过检查 Status 字段的代码值确定失败原因。

通过使用 GStreetviewPanorama 对象可支持街道视图图像,该对象提供街道视图 Flash® 查看器的 API 接口。要将街道视图合并到地图 API 的应用程序中,您需要遵循以下较为简单的步骤:
1.创建一个容器(通常是 <div> 元素),用于存放街道视图 Flash® 查看器。
2.创建 GStreetviewPanorama 对象,并将其放置在容器内。
3.初始化 Street View 对象,以便引用特定的位置,并显示初始的“视点”(POV)。
4.通过检查 603 错误值来处理不支持的浏览器。

实现的demo如下:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
     <meta http-equiv="content-type" content="text/html; charset=utf-8"/>

        <title>我的api</title>
        <link rel="shortcut icon" href="http://www.tucoo.com/icon/xtrd_iconset1/s/XTRD-heart.png"/> <!-- 随便连了个图标 -->
        <style type="text/css">
				body {
					text-algin: center;
					}

				v\: * {
					behavior: url(#default#VML);
				}
				#content{
					height: 100%;
					width: 100%;    
				}
				#map{
					widows: 100%; 
					height: 600px;    
				}
				#message{
					text-align: center;    
				}
				#dosomething{
					text-align: center;    
				}
				#dosomething .button{
					text-align: right;    
				}
		</style>
        <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAArOZgwowl24SQDUsdg_UiMxQVwmba-i56saYlzjiEvj048FCMexTXH9I26hjJnXbmlYgoknC4agGy3Q"
            type="text/javascript"></script><!-- 声明google key 请到http://www.google.com/apis/maps/signup.html申请 -->
        <script type="text/javascript">
        var map; // 定义地图
        function load(){
            if (GBrowserIsCompatible())//辨别浏览器是否兼容
             {
            map = new GMap2(document.getElementById("map"));//调用google函数画一个初图
            map.addControl(new GLargeMapControl());//添加地图组件 一个在Google Local之中使用的大的移动缩放控件,显示在地图的左上角
            map.addControl(new GMapTypeControl());//添加地图组件 让用户切换地图类型的按钮控件(例如地图模式和卫星图模式) 
            map.addControl(new GScaleControl());//添加地图组件 地图比例尺控件 
            map.addControl(new GOverviewMapControl(new GSize(100, 100)));//添加地图组件 一个可折叠的鹰眼地图,在地图的角落 
            GEvent.addListener(map, "moveend", function () { //捕捉 当地图上发生改变的时候调用
                var center = map.getCenter();
                document.getElementById("message").innerHTML = "\u4e2d\u5fc3\u7ecf\u7eac" + center.toString();//转码:中心经纬
            });
            map.setCenter(new GLatLng(39.917, 116.397), 4);//设置地图的中心点
            map.setMapType(G_HYBRID_MAP); //设置地图的类型 现在用的混合视图 (G_NORMAL_MAP >简图,G_SATELLITE_MAP >卫星图,G_HYBRID_MAP >混合图)
            map.enableScrollWheelZoom(); //让地图启用鼠标滚轮
            map.enableDoubleClickZoom(); //让地图启用鼠标双击
            map.enableContinuousZoom(); //让地图启动滑动效果
            }else {
                alert("Your browser is not compatible with GoogleMap");//您的浏览器不兼容
            }
        }
        function showme(){
            var cityname = document.getElementById('remark').value;//获得 备注
            var citylat = document.getElementById('lat').value; //获得 纬度
            var citylon = document.getElementById('lon').value; //获得 经度
            var citysize = document.getElementById('citysize').value; //获得 地图比例
            if(citylat == '')
            {
                window.alert('没有纬度');
                return;
            }else if(citylon == '')
            {
                window.alert('没有经度');
                return;
            }
            if(cityname == '')
            {
                cityname='没有备注';
            }
            var point = new GLatLng(citylat,citylon); //创建一个坐标
            var marker = new GMarker(point, {draggable:true});    //创建一个标注 并启动它的拖拽功能
            GEvent.addListener(marker, "dragstart", function () {//当标注开始拖拽时发生
                    map.closeInfoWindow();
            });
            GEvent.addListener(marker, "dragend", function () {//当标注完成拖拽时发生
                document.getElementById('lat').value = marker.getPoint().lat();
                document.getElementById('lon').value = marker.getPoint().lng();
                marker.openInfoWindowHtml("\u786e\u5b9a\u597d\u81ea\u5df1\u7684\u4f4d\u7f6e\u54e6");
            });
            GEvent.addListener(marker, "mouseover", function () {//当鼠标经过标注时发生
                marker.openInfoWindow("<span style='font-size:9pt;'>注释:</span><span style='color:green;'>"+cityname+"</span>");
            });
            GEvent.addListener(marker, "mouseout", function () {//当鼠标离开标注时发生
                map.closeInfoWindow();
            });
            map.addOverlay(marker);//在地图上添加标注
            document.getElementById('lat').value = marker.getPoint().lat();//修改纬度显示
            document.getElementById('lon').value = marker.getPoint().lng();//修改经度显示
            map.setCenter(point, parseFloat(citysize));//设置地图的中心点
        }
        window.οnlοad=load; //页面读取时开始加载
        window.οnunlοad=GUnload; //一个内存销毁函数 防止内存泄露
        </script>
    </head>

    <body>
        <div id="content" style="">
            <div id="map" style=""></div>
            <div id="message"></div>
            <div id="dosomething">
                备注:<input type="text" id="remark" value="嘿嘿,好地方"/>
                    
                经度:<input type="text" id="lat" value="30.59273"/>
                    
                纬度:<input type="text" id="lon" value="114.30542"/>
                   
                大小:<select id="citysize" title="地图显示的比例" οnchange="showme();">
                                <option value="1">1</option>
                                <option value="2">2</option>
                                <option value="3">3</option>
                                <option value="4" selected="selected">4</option>
                                <option value="5">5</option>
                                <option value="6">6</option>
                                <option value="7">7</option>
                                <option value="8">8</option>
                                <option value="9">9</option>
                                <option value="10">10</option>
                                <option value="11">11</option>
                                <option value="12">12</option>
                                <option value="13">13</option>
                                <option value="14">14</option>
                                <option value="15">15</option>
                                <option value="16">16</option>
                                <option value="17">17</option>
                                <option value="18">18</option>
                    </select>
                <br />
                <input type="button" value="显示位置" οnclick="showme();""/>
            </div>
        </div>
    </body>
</html>
  

 

 

下接

google Map APi学习与总结(二)

 

如果转载或使用,希望标明本人地址。

 

当然我也是问好多人的,可是大家都没给我正确答案,很困惑哦我问了好多人啊。。。。。。。。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值