我试图获取我当前的位置,但问题是标记指向的地址只是我现在最近的街道。我怎样才能准确地得到我的位置?
继承人的屏幕截图。提前致谢 :) Click here
<input type="button" value="Show Location" onclick="showlocation()"/>
<br/>
Latitude: <span id="latitude">..</span> <br>
Longitude: <span id="longitude">..</span><br>
Address: <span id="add">..</span><br>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script>
function showlocation(){
navigator.geolocation.watchPosition(callback);
}
function callback(position){
document.getElementById('latitude').innerHTML=position.coords.latitude;
document.getElementById('longitude').innerHTML=position.coords.longitude;
var geocoder = new google.maps.Geocoder();
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
var latLng = new google.maps.LatLng(latitude,longitude);
geocoder.geocode({
latLng: latLng
},
function(responses)
{
if (responses && responses.length > 0)
{
address(responses[0].formatted_address);
}
else
{
alert('Not getting Any address for given latitude and longitude.');
}
}
);
}
function address(str)
{
document.getElementById('add').innerHTML = str;
}
</script>
答案 0 :(得分:1)
使用Geolocation API。要获取当前位置,您可以调用getCurrentPosition()
方法。这将启动异步请求以检测用户的位置,并查询定位硬件以获取最新信息。
确定位置后,执行定义的回调函数。如果发生错误,您可以选择提供第二个回调函数。第三个可选参数是一个选项对象,您可以在其中设置返回位置的最大年龄,等待请求的时间以及您希望该位置的高精度。
此documentation和example可能会对您有所帮助。