Получение LatLng из размещенного маркера для полей браузера - PullRequest
0 голосов
/ 28 февраля 2012

Пробовал следующие скрипты, но последний раздел не работает. Помогите пожалуйста.

// script type = "text / javascript"

var myOptions = {
    zoom: 7,
    center: new google.maps.LatLng(-36.624345125527526,144.96459973437504),
    mapTypeId: google.maps.MapTypeId.TERRAIN,
    streetViewControl: false,
    draggableCursor: 'crosshair',
    draggingCursor: 'pointer'
    };
var map = new google.maps.Map(document.getElementById('map_canvas'),
    myOptions);
google.maps.event.addListener(map, 'click', function(e) {
    placeMarker(e.latLng, map);
    });

map.panTo(position);

// не работает

google.maps.event.addListener(marker, 'dragend', function() {
    var point = marker.getPosition();
    document.getElementById("latitude").getElementsByTagName("input")[0].value = point.lat();
    document.getElementById("longitude").getElementsByTagName("input")[0].value = point.lng();
    });

// конец скрипта


Попытка с использованием следующего, но ничего не происходит после перетаскивания маркера. Похоже, что слушатель не слушает событие «dragend» маркера. Любая подсказка? Другой вариант получить значение latLng после перетаскивания маркера на карту?

// JS код

google.maps.event.addListener(marker, 'dragend', function(e) {
    var point = e.latLng;
    alert(marker.e.latLng);
})

// код конца

Часть элементов ввода не является выбором, поскольку сценарии находятся во встроенном заполнителе веб-приложения. Так что не могу изменить эту часть.

1 Ответ

2 голосов
/ 28 февраля 2012

Вы должны использовать объект MouseEvent, переданный событием dragend для маркера.Например:

google.maps.event.addListener(marker, 'dragend', function(e) {
    var point = e.latLng;
    document.getElementById("latitude").getElementsByTagName("input")[0].value = point.lat();
    document.getElementById("longitude").getElementsByTagName("input")[0].value = point.lng();
    });

Я также не уверен, почему вы не просто называете свои элементы ввода и получаете к ним прямой доступ ... что-то вроде этого:

document.getElementById("latitude_input").value = point.lat();
document.getElementById("longitude_input").value = point.lng();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...