2012-06-06 44 views
1

下面是我添加到地圖中的3個多邊形的示例。我打算將點擊事件包含在每個事件中;然而,我想輸出我可以參考的每個多邊形的某個元素,並與其他數據(如描述,圖像等)相關。輸出可以是給每個形狀的簡短標題(變量名稱) - 這裏是e609,c815 ,c840-或索引號 - 理想情況下是每個多邊形之前的評論中給出的數字。Google Map多邊形是否索引/我如何引用它們的索引?

多邊形是否按照它們輸入地圖的順序給出了索引編號?如果是這樣,我該如何引用這個數字以將它傳遞給另一個函數?或者,我怎麼能通過短標題?

//0 
var e609; 
var e609_c = [ 
    //Latlng, cut for space. 
]; 
e609 = new google.maps.Polygon({ 
    paths: e609_c, 
    strokeOpacity: 0, 
    fillColor: "#B1509E", 
    fillOpacity: .4 
}); 
e609.setMap(map); 

//1 
var c815; 
var c815_c = [ 
    //Latlng, cut for space. 
]; 
c815 = new google.maps.Polygon({ 
    paths: c815_c, 
    strokeOpacity: 0, 
    fillColor: "#B1509E", 
    fillOpacity: .4 
}); 
c815.setMap(map); 

//2 
var c840; 
var c840_c = [ 
    //Latlng, cut for space. 
]; 
c840 = new google.maps.Polygon({ 
    paths: c840_c, 
    strokeOpacity: 0, 
    fillColor: "#B1509E", 
    fillOpacity: .4 
}); 
c840.setMap(map); 

回答

2

您可以包括自定義字段來描述對象的創建內部的多邊形,例如,我添加描述和shortTitle。我不知道獲取變量名稱的直接方式,因此它只是重複。儘管我不知道如何訪問這些信息,但應該在內部編制多邊形索引。使用變量名稱指定新的多邊形,可以對其進行操作。

e609 = new google.maps.Polygon({ 
    description: "Polygon named e609", 
    shortTitle: "e609", 
    paths: e609_c, 
    strokeOpacity: 0, 
    fillColor: "#B1509E", 
    fillOpacity: .8 
}); 

當增加一個點擊監聽器,你需要它的變量名(E609)引用它,或者我會做什麼,使多邊形的陣列,說var myPolygons = []push E609到這個陣列。然後,您可以將其解決爲myPolygons[0]。或者,您可以使用一個對象來保存其短標題的多邊形,例如,myPolygons['e609']

無論如何,下面是您可以如何使用多邊形定義中創建的字段。

google.maps.event.addListener(e609, 'click', function(event) { 
    alert("Clicked on " + this.description + " short title " + this.shortTitle); 
}); 
+0

啊,這是完美的。實際上,它可能比完美更好,因爲如果我可以使用自定義字段將其他信息放入其中,它將簡化所有內容。非常感謝。 –