У меня есть следующий код для моего приложения Google Maps. Что я хочу сделать, так это уметь щелкать или перетаскивать маркеры и получать новую позицию (LatLong) точки (маркера).
В тот момент, когда я делаю что-то подобное, я получаю координаты 37.4419, -122.1419. Я уверен, что это потому, что он указан как центр. Как получить координаты события / маркера, который был только что запущен / перетащен, нажал?
Пожалуйста, извините меня, поскольку я очень неопытен как с Javascript, так и с API карт Google.
Код:
var map = null;
var geocoder = null;
var zoom = 15;
var first_point = false;
var boundary = new Array();
var cCount = 0;
var point1;
var point2;
function initialize() {
if (GBrowserIsCompatible()) {
first_point = false;
map = new GMap2(document.getElementById("map_canvas"));
var center = new GLatLng(37.4419, -122.1419);
map.setCenter(center, zoom);
GEvent.addListener(map, "click", function(overlay,point)
{
if (overlay != null)
{}
else
{
var n = boundary.length;
switch (cCount)
{
case 0:
point1 = new GMarker(point,{draggable: true});
map.addOverlay(point1);
cCount++;
GEvent.addListener(point1, "dragend", function()
{
alert('P1 Dragged: '+point);
});
break;
case 1:
point2 = new GMarker(point,{draggable: true});
map.addOverlay(point2);
cCount++;
GEvent.addListener(point2, "dragend", function()
{
alert('P2 Dragged: '+point);
});
break;
case 2:
map.clearOverlays();
cCount=0;
break;
}
}
});
}
}
ОБНОВЛЕНИЕ: я решил эту проблему. Вы видите, что в отношении объекта GMarker, dragend, click и других событий объект GLatLng передается как параметр. Поэтому, если я хочу получить точку, я вызываю param.lat () или param.lng (). Смотрите код здесь:
GEvent.addListener(point2, "dragend", function(pnt)
{
alert('P2 Dragged: '+pnt.lat()+" , "+pnt.lng());
document.getElementById("point2").innerHTML="";
document.getElementById("point2").innerHTML=point;
});