如何在Google地图上找到某个标记?

时间:2011-07-03 09:17:38

标签: javascript google-maps google-maps-api-3

我有一个包含搜索结果的表格和一系列结果标记。每个元素都有一个ID,如果用户点击标记,页面会滚动到搜索结果(我只是更改window.location.hash)。

是否有可能反之亦然?用户单击搜索结果,将显示标记的infoWindow。

1 个答案:

答案 0 :(得分:2)

我认为你的意思是在地图中与搜索结果相关联的标记滚动到视图中?

只要您的搜索结果中包含一个包含您要显示的标记的唯一标识符的点击事件,就确定它会起作用。我正在管理的网站有一个搜索结果的侧边栏,当您点击结果时,它会将标记滚动到地图上的视图中并显示信息窗口。 Click处理程序调用的代码看起来像是这样(没有一些错误处理和你的问题的其他无趣的部分):

function MarkerZoomTo(markerIdentifier) {
    pt = gMarkers[markerIdentifier].getPosition();
    newpt = new google.maps.LatLng(pt.lat() + .02, pt.lng());
    map.panTo(newpt);

    if (infoWindow) {
    infoWindow.close();
    }

    infoWindow.setContent(gMarkers[markerIdentifier].get('iwcontent'));
    infoWindow.setPosition(gMarkers[markerIdentifier].getPosition());

    infoWindow.open(map, gMarkers[markerIdentifier]);
}

我将唯一标记标识符传递给函数,从我的标记数组中获取特定标记,获取它的lat / lng位置,创建LatLng对象,并平移到该位置。

其余的只是修复以检索信息窗口的内容并设置它的位置,您可以以任何您认为合适的方式进行操作。

最后,只需打开标记的infowindow。

祝你好运!