У меня есть следующий код, который позволяет пользователю отображать две точки в Google MAP. Затем я хочу быть в состоянии отловить событие для каждой точки (маркера), перетаскиваемой в новое место. Я плохо разбираюсь в Javascript и потратил часы, пытаясь это сделать, поэтому думаю, что пришло время мне помочь ...
То, что я пытаюсь сделать, это заставить пользователя нанести на карту две точки (маркеры), которые можно перетаскивать. Затем я хочу, чтобы мой сценарий записывал позиции (lat, long) в документ. Затем я вычислю расстояние между ними как часть приложения доставки, которое я создаю.
Мне бы хотелось, чтобы содержимое документа (широта, длина) обновлялось при перетаскивании маркера (точки) в новое место.
Кроме того, я исправил ошибку школьника, в которой переменные точки были декалированы в операторе switch. Моя проблема устранена путем перемещения операторов прослушивания события Add внутри оператора switch. Спасибо Канонада:)
Теперь нужно попытаться вычислить расстояние (вороны) между двумя точками
Опять же, спасибо за помощь .. ценится как всегда !!
Обновленный код, который работает:
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');
});
break;
case 1:
point2 = new GMarker(point,{draggable: true});
map.addOverlay(point2);
cCount++;
GEvent.addListener(point2, "dragend", function()
{
alert('P2 Dragged');
});
break;
case 2:
map.clearOverlays();
cCount=0;
break;
}
}
});
map.addControl(new GSmallMapControl());
geocoder = new GClientGeocoder();
}
}