使用带有HTML地理位置的谷歌地图



我正在使用地理定位来获取用户的当前位置。问题是有时它不能返回准确的位置。然后我想允许用户手动将标记设置在谷歌地图上的正确位置,然后返回这个新位置的经度和纬度。

有什么想法吗?

这是我在使用地理定位返回用户位置时使用的代码

function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} 
else { 
document.getElementById("location-x").innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
var latitude= position.coords.latitude;
var longitude= position.coords.longitude;
document.getElementById("location-x").innerHTML = "Latitude: " + latitude + 
"<br>Longitude: " + longitude;
$("#latitude").val(latitude);
$("#longitude").val(longitude);
var uluru = {lat: latitude, lng: longitude};
$("#map").show();
var map = new google.maps.Map(
document.getElementById('map'), {zoom: 15, center: uluru});
var marker = new google.maps.Marker({position: uluru, map: map});
}

我发现你可以设置"draggable:true",

var marker = new google.maps.Marker({position: uluru, map: map,draggable:true});

以及通过向标记添加事件侦听器来获取标记的当前位置

google.maps.event.addListener(marker, 'dragend', function(evt){
document.getElementById('location-x').innerHTML = 'Latitude: ' 
+ evt.latLng.lat().toFixed(3) + ' Longitude: ' + evt.latLng.lng().toFixed(3);
});
google.maps.event.addListener(marker, 'dragstart', function(evt){
document.getElementById('location-x').innerHTML = 'Getting new location...';
});

我希望这能帮助到别人。干杯

最新更新