当我在我的bean中创建Marker时,我为每个标记设置了一个ID。原因是我想通过引用该ID在客户端(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 :(得分:0)
您可以使用此javascript代码获取元素的ID:
map.getMap().markers[i].id
其中'i'是markers数组中的元素位置。但是我觉得这个对象id是由谷歌库自动生成的,在你的情况下也许最好设置bean中的所有Object DATA:markes,polygons,circles,...有'data'属性,这样你就可以得到所有的元素属性你要。
Bean :
设置每个标记:
(...)
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}