Использование карт Google с геолокацией HTML - PullRequest
0 голосов
/ 31 октября 2018

Я использую геолокацию, чтобы узнать текущее местоположение пользователя. Проблема в том, что иногда он не возвращает точное местоположение. Затем я хочу позволить пользователю вручную установить маркер в правильном месте на карте Google, а затем вернуть долготу и широту этого нового местоположения.

Пожалуйста, есть идеи?

Это код, который я использую при возврате местоположения пользователя с помощью геолокации

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});
  }

1 Ответ

0 голосов
/ 31 октября 2018

Я обнаружил, что вы можете установить "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...';
});

Надеюсь, это кому-нибудь поможет. Ура

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...