日期:2014-05-17  浏览次数:20811 次

html5+js获取物理地址并显示在goole地图

<!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" xml:lang="en" lang="en">?
??? <head>?
??????? <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">?
??????? <title>html5获取地理位置并显示在goole地图</title>?
??? </head>?
??? <body>?
??????? <input type="button" id="getPos" value="获取我的位置">?
??????? <div id="info" class="">?
??????????? 您所在的位置: 经度?
??????????? <span class="tip">unknown</span>,纬度?
??????????? <span class="tip">unknown</span>?
??????? </div>?
?
?
? <script src="http://www.google.cn/maps?file=api&amp;v=2&amp;key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA&hl=zh-CN"
?????????? type="text/javascript">
???
</script>
?
??????? <script type="text/javascript">?
??????????? var t = 0;?
??????????? var dom = {?
??????????????? btn : document.getElementById('getPos'),?
??????????????? info : document.getElementById('info')?
??????????? };?
?
??????????? dom.btn.onclick = function(){?
??????????????? if (navigator.geolocation) {?
??????????????????? dom.info.innerHTML = "请等待查询结果返回";?
??????????????????? dom.info.className = "warn";?
??????????????????? navigator.geolocation.getCurrentPosition(getPositionSuccess,getPositionError,{timeout:5000});?
??????????????? }else {?
???????????????????? dom.info.innerHTML = "抱歉,您所使用的浏览器不支持 Geolocation 接口";?
???????????????????? dom.info.className = "warn";?
??????????????? }?
??????????? }?
?????????????
?????????????
??????????? function getPositionSuccess(position){?
??????????????? var lat = position.coords.latitude;?
??????????????? var lng = position.coords.longitude;?
??????????????? dom.info.innerHTML = "您所在的位置: 经度" + lat + ",纬度" + lng;?
?????????????????
?????????????????
??????????????? if(typeof position.address === "undefined"){?
??????????????????? dom.info.innerHTML += "<br /><span class='tip'>您的浏览器目前仅提供坐标查询,使用 Firefox 3.5+ 可获得更多信息</span>";?
??????????????? }else{?
??????????????????? dom.info.innerHTML += "<br /><span class='tip'>" + position.address.country + " , " + position.address.region + " , " + position.address.city+"</span>";?
??????????????? }?
????
????goolemap(position);
?????
??????????? }?
?????????????
??????????? function goolemap(position) {
????if (GBrowserIsCompatible()) {
?????var map = new GMap2(document.getElementById("map_canvas"));
?????
?????var center = new GLatLng(position.coords.latitude,position.coords.longitude);
?????
?????map.setCenter(center, 14);

?????
?????map.addControl(new GSmallMapControl());
?????map.addControl(new GMapTypeControl());
?????
?????var marker = new GMarker(center, {draggable: false});
?????marker.openInfoWindowHtml("公司所在地" + position.coords.latitude + "??? " +? position.coords.longitude + "??? " + map.getZoom());
??????? map.addOverlay(marker);
????}?
???}
???????????
??????????? function getPositionError(error){?
??????????????? switch(error.code){?
??????????????????? case error.TIMEOUT :?
??????????????????????? dom.info.innerHTML = "连接超时,请重试";?
??????????????????????? break;?
??????????????????? case error.PERMISSION_DENIED :?
??????????????????????? dom.info.innerHTML = "您拒绝了使用位置共享服务,查询已取消";?
??????????????????????? break;?
??????????????????? case error.POSITION_UNAVAILABLE :??
??????????????????????? dom.info.innerHTML = "亲爱的火星网友,非常抱歉<br />我们暂时无法为您所在的星球提供位置服务";?
??????????????????????? break;?
??????????????? }?
??????????? }?
?????????????
??????? <