2010-04-29 66 views

回答

-2

最基本的問題是,如果你想要這個工作,你必須決定對象應該容納什麼。你似乎無法決定在markersTest的元素是否應該標記或應該是數組,告訴你在哪裏標記將被放置。

從你的JavaScript文件引用,這裏是得到當您檢查/清除該複選框執行兩個功能:

15 function addTestMarkers(){ 
16  for(var i in markersTest) { 
17   var location = new google.maps.LatLng(markersTest[i][1], markersTest[i][2]); 
18   marker = new google.maps.Marker({ 
19    position: location, 
20    map: map 
21   }); 
22  } 
23 } 
24 
25 // Removes the overlays from the map, but keeps them in the array 
26 function clearOverlays() { 
27  if (markersTest) { 
28   for (i in markersTest) { 
29    markersTest[i].setMap(null); 
30   } 
31  } 
32 } 

對於addTestMarkers工作,markersTest對象需要持有其中所述標誌物的描述應該走。要使clearOverlays正常工作,對象需要保存標記。

這裏是我的建議:改變markersTest對象爲您設置的JavaScript文件到markerDestinations頂部,並在JavaScript文件的頂部有初始化markersTest

markersTest = {}; 

然後,修改addTestMarkers到:

function addTestMarkers() { 
    for(var i in markerDestinations) { 
     var location = new google.maps.LatLng(markersDestinations[i][1], markersDestinations[i][2]); 
     markersTest[i] = new google.maps.Marker({ 
      position: location, 
      map: map 
     }); 
    } 
} 

的關鍵變化是使addTestMarkers居然把標記到markersTest對象。

+0

好吧,所以,而不是初始化一個數組,像它是一個對象,使用我的數組來創建一個對象的屬性用於顯示目的,如果我正確地採取你的意思。 我會接受你的建議,並考慮它。我真的開始在本週(星期一)看到這個API,並且覺得儘管有一些困難的牆壁,我仍然對新版本做出了相當不錯的選擇,而不是選擇當前比較完整的版本版本2. Anywho。再次感謝,我會考慮按照您的建議更改地圖。 – Douglas 2010-04-29 04:27:24

15

不要使用setMap(null)來切換地圖上的標記!因此,API提供了setVisible方法,該任務的適當方法是什麼。