我有以下代碼,它可以讓用戶在Google地圖上繪製兩個點。然後,我希望能夠抓住每個點(標記)被拖動到新位置的事件。我在JavaScript很糟糕,花了幾個小時試圖做到這一點,所以我認爲是時候我得到一些幫助..Google地圖添加2個GEvent偵聽器。 1爲每個標記
我想要做的是讓用戶在地圖上拖動兩個點(標記)。然後,我希望能夠讓我的腳本將位置(lat,long)寫入文檔。然後我將計算這些距離作爲我正在製作的航運應用程序的一部分。
我想將標記(點)拖到新位置時更新文檔內容(lat,long)。
另外,我修正了一個小學生的錯誤,其中的點變數在switch語句中被剝離。我的問題是通過在switch語句中移動Add事件偵聽器語句來解決的。由於炮擊:)
接下來的事情,現在是嘗試並計算出兩點
之間的距離(直線距離)再次感謝您的幫助..感謝一如既往!
的作品更新的代碼:
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();
}
}
cCount在哪裏定義? if語句在開始時關閉了addListener,所以剩下的代碼就掛起了。你能澄清你想要做什麼嗎? – RedBlueThing 2010-02-26 01:07:59
所以,我已經更新了這篇文章,使其更有意義。第一次運行抱歉,我有點壓力。 – conor 2010-02-26 01:39:53