Как узнать текущую широту и долготу с карты Google - PullRequest
2 голосов
/ 04 ноября 2011

У меня возникла проблема с получением широты / долготы с карты Google в моем приложении.
Когда я помещаю в сообщение с предупреждением 'lat ()' или 'lng ()', карта вообще не отображается.
В приведенном ниже коде, указанном на карте, нажмите «Я получаю предупреждение» с сообщением «неопределено».
Я хочу сохранить значения lat и lng в текстовом поле на странице, когда пользователь перемещает карту (здесь я пытаюсь щелкнуть мышью), но что-то здесь не работает?

function initialize() {
        var latlng = new google.maps.LatLng(44.012, 20.921);
        var myOptions = {
            zoom: 13,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };

        var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

        google.maps.event.addListener(map, "click", function (latlng) {
            if (latlng) {
                alert(latlng.lat);
            }
        });
    }

Ответы [ 2 ]

1 голос
/ 04 ноября 2011

latlng должен быть в переданном объекте event. Итак, чтобы извлечь его, вы должны сделать что-то вроде этого:

google.maps.event.addDomListener(map, 'click', function(event) {
    var myLatLng = event.latLng;
    var lat = myLatLng.lat();
    var lng = myLatLng.lng();
    alert( 'lat '+ lat + ' lng ' + lng ); 

}
0 голосов
/ 20 марта 2016

Вы также можете получить lat и lng с помощью экземпляра карты Google:

var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); // map instance

google.maps.event.addListener(map, "click", function () {
    var lat = map.data.map.center.lat();
    var lng = map.data.map.center.lng();
});
...