1

当我在我的 bean 中创建标记时,我为每个标记设置了一个 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 

}
4

1 回答 1

0

您可以使用以下 javascript 代码获取元素的 id:

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

其中“i”是标记数组中的元素位置。但是我认为这个对象 id 是由谷歌库自动生成的,在你的情况下,最好在 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}
于 2016-08-13T17:08:42.370 回答