2010-06-23 95 views
0

我對gmaps和Im使用v2相當陌生,因爲我沒有在v3中找到搜索功能。Google Maps JS API v2 - 簡單多標記示例

我有一組數據,我想遍歷並把標記在地圖上=)

看來很容易的,但我不能讓它使用V2在所有的工作...

這是我什麼我的陣列格式和代碼如下所示:

function createMarkers(myLatLng,html) { 
    var marker = new GMarker(myLatLng, markerOptions); 
    GEvent.addListener(marker, 'click', function() { 
    marker.openInfoWindowHtml(html); 
    }); 
    return marker; 
} 


var locations = [ 
    ["Bondi Beach",-33.890542,151.274856], 
    ["Coogee Beach",-33.923036,151.259052], 
    ["Cronulla Beach",-34.028249,151.157507], 
    ["Manly Beach",-33.80010128657071,151.28747820854187], 
    ["Maroubra Beach",-33.950198,151.259302] 
]; 


for (var i = 0; i < location.length; i++) { 
    var locations = locations[i]; 
    var myLatLng = new GLatLng(locations[1],locations[2]); 
    var dynamicmarker = createMarkers(myLatLng); 
    map.addOverlay(dynamicmarker); 
} 

的beachnames得到位置的位置[0],該LAT得到位置定位[1]和lng了位置定位[2]等...

我沒有使用海灘的名字作爲「html」選項,但我只在屏幕上得到一個標記。我檢查了for循環,看起來是正確的,v3很容易讓它工作。但我需要有V2的搜索功能...

如果有人能給我一個提示或告訴我如何去通過陣列,並讓這些標記出現,將是如此感激!

回答

1

您在for循環中似乎有幾個問題。首先location.length應該是locations.length。然後你似乎在for循環中重新聲明瞭locations變量。請記住,JavaScript沒有塊範圍。

你可能想嘗試以下操作:

var i, myLatLng; 

for (i = 0; i < locations.length; i++) { 
    myLatLng = new GLatLng(locations[i][1], locations[i][2]); 
    map.addOverlay(createMarkers(myLatLng)); 
} 
+0

哦,我的天哪!丹尼爾我不知道我現在能夠多謝你! :D它像一個魅力一樣工作! 我真的需要檢查我的拼寫到什麼時候編寫for循環,Im用於標記var名稱,然後所有相同的var名稱都標記在Zend Studio中,但這沒有顯示出它像在php中一樣。 丹尼爾,再次感謝你! – EIGHTYFO 2010-06-23 09:01:48