Я заканчиваю проект, над которым я работаю, и чтобы улучшить функциональность пользователя, я хочу иметь страницу, на которой браузер получает текущую позицию пользователя (геолокация()) и заполняет поля формы широтой и долготой. Однако, как только это произойдет, я хочу, чтобы маркер размещался на карте Google, которую пользователь может перетащить, который будет обновляться в форме, когда они перетаскивают ее. Я знаю, что должен быть способ сделать это, но я не могу заставить его работать. На данный момент я полностью работоспособен, чтобы захватить местоположение пользователя и заполнить поля формы. Тем не менее, я как бы борюсь с API Google. Это не помогает, я не очень хорошо разбираюсь в Javascript (эти функции - это почти единственный javascript, который я использую на протяжении всего крупного проекта). Приложен рабочий код, который получает позицию и заполняет поля ввода, а затем у меня есть первая атака в API карт Google, которая не выполняется: карта просто появляется как пустой серый ящик с элементами управления масштабированием и перетаскиванием улиц, но они ничего не делают, так как все серое.Запустите Google map Маркер в GPS, но перетаскиваемый - заполняет форму
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script>
<script>
var x=document.getElementById("latitude");
var y=document.getElementById("longitude");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else{x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position) {
x.value=position.coords.latitude;
y.value=position.coords.longitude;
}
getLocation();
и вот апи материал Google, который терпит неудачу (имея в виду, что это просто взломан вместе пытаются что я вроде понял, не будет работать). Мне интересно, не сразу ли заполняются значения x и y, и это почему-то вызвано, потому что, если я жестко программирую в широтах и долготах вместо x и y, я получаю функциональную карту, хотя, очевидно, с тех пор х и у не используется там, не заливает обратно в виде:
function initialize() {
var myLatlng = new google.maps.LatLng(x, y);
var mapOptions = {
zoom: 4,
center: myLatlng
}
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: 'Hello World!'
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
Finally, here's my two fields of the input form:
<p>
<i>Latitude:</i>
<input type="text" name="latitude" id="latitude" placeholder="latitude"><br>
</p>
<p>
<i>Longitude:</i>
<input type="text" name="longitude" id="longitude" placeholder="longitude"><br>
</p>
Большое спасибо Эммануэль. Мне удалось собрать что-то функциональное, хотя в настоящее время у меня есть некоторые странные вещи. Если я не смогу их отследить, я отброшу ваш код. Похоже, он должен работать, и он, безусловно, чище, чем мой! – brandonman