我是google地图的新手,我使用html5获取用户的纬度和经度坐标,但我想获取用户最近的地名,以便他可以选择,(为什么键入,如果我们可以点击?)我googled谷歌,但不能做任何事情。我今天写了这些脚本......
<!DOCTYPE html>
<html>
<body>
<p id="demo">Click the button to get your position:</p>
<button onclick="getLocation()">Try It</button>
<div id="mapholder"></div>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places&sensor=true">
//only a v3 api library
</script>
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script>
var x=document.getElementById("demo");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition,showError);
}
else{x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position)
{
lat=position.coords.latitude;
lon=position.coords.longitude;
latlon=new google.maps.LatLng(lat, lon)
mapholder=document.getElementById('mapholder')
mapholder.style.height='250px';
mapholder.style.width='500px';
var myOptions={
center:latlon,zoom:18,
mapTypeId:google.maps.MapTypeId.ROADMAP,
mapTypeControl:false,
navigationControlOptions:{style:google.maps.NavigationControlStyle.SMALL}
};
var map=new google.maps.Map(document.getElementById("mapholder"),myOptions);
var marker=new google.maps.Marker({position:latlon,map:map,title:"Some where here"});
var geocoder = new google.maps.Geocoder();
geocoder.geocode({latLng:latlon},function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
infoWindow.setContent(results[0].formatted_address);
infoWindow.setPosition(event.latLng);
infoWindow.open(map);
}
}
});
}
function showError(error)
{
switch(error.code)
{
case error.PERMISSION_DENIED:
x.innerHTML="User denied the request for Geolocation."
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML="Location information is unavailable."
break;
case error.TIMEOUT:
x.innerHTML="The request to get user location timed out."
break;
case error.UNKNOWN_ERROR:
x.innerHTML="An unknown error occurred."
break;
}
}
</script>
</body>
</html>
到目前为止我完成了所有这些,现在我需要做的是,我想获得这两个变量给出的位置的地名:lat,lon
以便我可以找到地名,谁能帮我吗?
我发现这个链接可能会有所帮助,但我无法弄清楚,,,我不需要地图中的placeinfo,但我想在变量中获取地名
感谢先进..如果问题不明确,请提及我,生病,试着更清楚,,,,我为我的语言道歉....
答案 0 :(得分:0)
您已经获得了所需的一切,即地理编码结果。 (地理编码() -callback内的结果
这些结果(数组)由不同的项目组成,其中一个应该有一个成员类型(也是一个数组),其中第二个项目设置为“ locality “,这通常将该项目标记为城市。当您找到此项目时,该项目的long_name - 成员将为您提供城市名称。
更多信息:https://developers.google.com/maps/documentation/javascript/geocoding?hl=en#GeocodingAddressTypes
与代码相关的注释:
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places&sensor=true">
//only a v3 api library
</script>
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
您正在加载maps-API两次,因为第一个<script/>
将加载maps-API 和 places-library。您最好删除第二个<script/>