如何在Gmap中通过javaScript获取Marker id

时间:2013-01-21 12:31:58

标签: java javascript google-maps primefaces

当我在我的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 

}

1 个答案:

答案 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}