Получить координаты широты/долготы с карты Google с помощью маркера

Мне просто интересно, знал ли кто-нибудь о простом script, который будет делать следующее:

Загрузите карту google в поле зрения, при нажатии она отображает маркер, который сохранит значения lat и long для переменной?

Кто-нибудь знает, существует ли что-то подобное в PHP?

Заранее спасибо

Ответы

Ответ 1

Возможно, вы ищете нечто похожее на это Инструмент поиска широты долготы. Пример кода : был API v2. Ниже приведена сводная версия кода с помощью API Карт Google v3:

var latlng = new google.maps.LatLng(51.4975941, -0.0803232);
var map = new google.maps.Map(document.getElementById('map'), {
    center: latlng,
    zoom: 11,
    mapTypeId: google.maps.MapTypeId.ROADMAP
});
var marker = new google.maps.Marker({
    position: latlng,
    map: map,
    title: 'Set lat/lon values for this property',
    draggable: true
});
google.maps.event.addListener(marker, 'dragend', function(a) {
    console.log(a);
    // bingo!
    // a.latLng contains the co-ordinates where the marker was dropped
});

Демо

Объяснение: вы должны установить свойство draggable маркера в значение true. Затем вы можете подключить функцию обратного вызова к этому маркеру dragend event; новые координаты передаются функции, и вы можете назначить их переменной JavaScript или форме.

Ответ 2

// add a click event handler to the map object
    GEvent.addListener(map, "click", function(overlay, latLng)
    {
        // display the lat/lng in your form lat/lng fields
        document.getElementById("latFld").value = latLng.lat();
        document.getElementById("lngFld").value = latLng.lng();
    });

Я думаю, когда вы получите lat-lng, тогда вы можете разместить маркер.

Ответ 3

Ознакомьтесь с API карт Google v.3. На странице событий :

 google.maps.event.addListener(map, 'click', function(event) {
   // use event.latLng to place a google.maps.Marker
 });

Ответ 4

Мне удалось сделать следующее: как я могу изменить это, чтобы переместить позицию маркера, когда я нажимаю в любом месте карты.

http://jsfiddle.net/ZW9jP/

Я добавил следующее, но он ничего не делает

google.maps.event.addListener(map, 'click', function(event) {
  addMarker(event.latLng);
});  

Ответ 5

приведенный ниже код работает хорошо

var latlng = new google.maps.LatLng(51.4975941, -0.0803232);
var map = new google.maps.Map(document.getElementById('map'), {
    center: latlng,
    zoom: 11,
    mapTypeId: google.maps.MapTypeId.ROADMAP
});
var marker = new google.maps.Marker({
    position: latlng,
    map: map,
    title: 'Set lat/lon values for this property',
    draggable: true
});

google.maps.event.addListener(marker, 'dragend', function (event) {
    document.getElementById("latbox").value = this.getPosition().lat();
    document.getElementById("lngbox").value = this.getPosition().lng();
});