【急】求 Google Maps V3的标注功能,急!始终不行。
大家好,我要做一个功能,已知的是地址,一串地址,比如“广东省 广州市 海珠区 客村”,然后地图打开这个区域的,然后用户鼠标拖动那个标注的到标注点,然后点击提交,得到这一个点的X、Y坐标(PS我这里可能不太理解谷歌的经纬度和X、Y的区别),我需要得到的就是用户标注某个商户的经纬度,经度存为mapx,纬度存为mapy。
我参考了这个示例:http://gmaps-samples-v3.googlecode.com/svn/trunk/draggable-markers/draggable-markers.html
我的程序网页:GoogleMaps.php?location=广东省 广州市 天河区 岗顶天河路631号二楼
这个网页一打开就是然后这个指向 广东省 广州市 天河区,然后用户可以拖动标注去标注某个地址,然后点击按键获取到经纬度。我这个里面不知道的几点就是:
(1)如何让地图一打开地图就在了传入的这个参数location里面或者附近,如果没有传入location,那么就直接跳到该用户所在的城市。
(2)如何标注这个如何实现啊,代码
(3)标注完之后如何获取到这个标注点的经纬度。
[解决办法]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head> <title>谷歌地图 v3</title> <script src="http://maps.google.com/maps/api/js?v=3.1&sensor=true" type="text/javascript"></script> <script type="text/javascript"> var map; // 地图对象 var geocoder; var marker; function init() { var coor = new google.maps.LatLng(23.129163, 113.264435); map = new google.maps.Map(document.getElementById("map"), { zoom: 12, center: coor, mapTypeControl: false, mapTypeId: google.maps.MapTypeId.ROADMAP }); geocoder = new google.maps.Geocoder(); if (geocoder) { geocoder.geocode({ 'address': getUrlParam("location") }, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { map.setCenter(results[0].geometry.location); marker = new google.maps.Marker({ map: map, position: results[0].geometry.location, draggable: true }); } else { alert("地址解析失败,错误代码: " + status); } }); } } // 获取URL参数 function getUrlParam(name) { var reg = new RegExp("(^|&) " + name + "=([^&]*)(&|$) "); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; } function getLocation() { var point = marker.getPosition(); alert("标记的经度是:" + point.lng() + ",纬度是:" + point.lat()); } </script></head><body onload="init();"> <div id="map" style="width:800px; height:800px;"></div> <input type="button" value="获取坐标" onclick="getLocation()" /></body></html>