2013-01-21 64 views
1

當我在我的bean中創建標記時,我將每個標記設置爲一個ID。原因是我想通過引用該ID在客戶端(javaScript)中訪問它們。到目前爲止,我無法做到這一點,因爲我不能得到標記的id。我可以做這個。這是我的代碼。我如何通過Gmap中的javaScript獲得標記ID

//in my bean 
LatLng coord = new LatLng(36.885233, 30.702323); 
Marker m1 = new Marker(coord, "User A"); 
m1.setId("a"); 

getSimpleModel().addOverlay(m1); 


//in my xhtml 

var markers = map.getMap().markers; 
for (var i = 0; i < markers.length; i++) { 
       var marker = markers[i]; 
       //i want to get the id of the marker here 

} 

回答

0

你可以用這段JavaScript代碼元素的ID:

map.getMap().markers[i].id 

其中 'i' 是在標記數組元素位置。不過我認爲這個對象id是由google庫自動生成的,在你的情況下,可能是更好地設置bean中的所有對象數據:markes,polygons,circles,...具有'data'屬性,因此你可以獲得所有的元素屬性你要。

設定每個標記:

(...) 
    if(obj != null){ 
     marker.setData(obj); 
    } 

監聽方法:

public void onMarkerSelect(OverlaySelectEvent event) { 
     marker = (Marker) event.getOverlay(); 
    } 

查看:

窩在你的GMAP代碼監聽器:

<p:ajax event="overlaySelect" listener="#{mapBean.onMarkerSelect}" /> 

因此,在視圖中可以接取與所選元素:

#{mapBean.marker.data.id}