google map api用列

支持标记拖动,拖动记录经纬度,可通过地址信息获取经纬度。

<!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=gbk"/>
    <title>Google Maps JavaScript API Example</title>
    <script src="http://ditu.google.cn/maps?file=api&v=3&key=AIzaSyAeKuo5dKfiRmBnPuky9K-fuUEWyWjiYv8&sensor=true" type="text/javascript"></script>
    <script type="text/javascript">
	var $ = function(id){
		return document.getElementById(id);
	}
	String.prototype.trim = function(){
		return this.replace(/^\s+/g,"").replace(/\s+$/g,"");
	}
	var decode = function(){
		var latLng = $("lat_lng").value.trim();
		if (latLng.indexOf(',') == -1)
		{
			alert("经纬度格式错误");
			 return {  
				lat: 0,  
				lng: 0  
			}   
		}else{	
			var s = latLng.split(',');
			 return {  
				lat: s[0],  
				lng: s[1]  
			}   
		}
	}
	//创建request对象
	var createXMLHttpRequest = function(){  
		var xmlHttp ;
        try { 
			//使用Msxml的一个版本来创建 
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); 
		} catch (e) {
			xmlHttp = false;  
		}
		try { 
			//使用它的另外一个对象来创建 
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
		} catch (e2) { 
			xmlHttp = false; 
		} 
		if (!xmlHttp && typeof XMLHttpRequest != 'undefined') { 
			//创建面向其它非微软浏览器的XMLHttpRequest对象 
			xmlHttp = new XMLHttpRequest(); 
		}
		 return xmlHttp;
	}
    
	var xmlHttp ; 
	var handleStateChange = function(){
	  if(xmlHttp.readyState==4 && xmlHttp.status == 200){
		var dd = xmlHttp.responseText;
		var json = eval(dd);
	  }
	}
	var getLatLng = function(){
		var address = $('uname').value;
		var patrn= /['(' | '('][\w\W]*[')'| ')']/ ;
		if(patrn.exec(address)){
			address = address.replace(patrn,"");
		}
		//uri解码地址
		address = encodeURI(address); 

		var url = "http://ditu.google.cn/maps/geo?output=json&oe=utf-8&q="+ address +"&key=AIzaSyAISC7Kveswljca_ezm9AGRbELDKlyYZuI&hl=zh-CN";
		xmlHttp = createXMLHttpRequest();
		xmlHttp.open("POST",url,true);
		xmlHttp.onreadystatechange = function(){
			 if(xmlHttp.readyState==4 && xmlHttp.status == 200){
				var dd = xmlHttp.responseText;
				  //var obj = eval('(' + dd + ')');
				  var obj =JSON.parse(dd);
				  var vlat = obj.Placemark[0].Point.coordinates[1] ;
				  var vlng = obj.Placemark[0].Point.coordinates[0] ;
				  var vlatlng =  vlat + "," + vlng;
				  $('lat_lng').value = vlatlng;
				   mapShow();
			  }
		};
		xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        xmlHttp.send();
	}
	var test = function(){
		 var map = new GMap2(document.getElementById("map"));
               map.addControl(new GSmallMapControl());
               map.addControl(new GMapTypeControl());
               var latLng = decode();
			   
              // var center = new GLatLng(latLng.lat,latLng.lng );
			   var center = new GLatLng(latLng.lat,latLng.lng );
               map.setCenter(center, 13);
               var marker = new GMarker(center);

               map.addOverlay(marker);
	}
     var mapShow =  function() {
      if (GBrowserIsCompatible()) {
			var map = new GMap2($("map"));
			map.addControl(new GSmallMapControl());
			map.addControl(new GMapTypeControl());
			var latLng = decode(); 
			var center = new GLatLng(latLng.lat,latLng.lng);
			map.setCenter(center, 13);
			var marker = new GMarker(center, {draggable: true});
			 GEvent.addListener(marker, "dragend", function() {
				 $('lat_lng').value = "";
			 	var custPoint = marker.getPoint(); 
				$('lat_lng').value = custPoint.lat()+ "," + custPoint.lng();
				  marker.setImage("http://ditu.google.cn/mapfiles/marker.png");
			 });
		 
		    map.addOverlay(marker);
	 
      }
		
    }
 
    </script>
  </head>
  <body >
    <p>
	商户名称:<input type="text" name="uname" id="uname" value="" size="40" /> <input type="button" name="btn_uname" value="查询" οnclick="getLatLng()"/>
	经纬度:<input type="text" name="lat_lng" id="lat_lng" value="" size="40" /> <input type="button" name="btn_lat_lng" value="查询" οnclick="mapShow()" />
	</p>
	<div id="map" style="width: 800px; height: 500px"></div>
  </body>
</html>

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值