我正在使用google maps api v3。
使用javascript,如何在给定坐标的情况下打开标记的信息窗口?
答案 0 :(得分:11)
以下是Jsfiddle,它向您展示如何使用Markers进行地图JavaScript互动的“外部”。是的,您需要保存标记,并在数组中使用相应的InfoWindow,以便您可以访问它。我创建了两个随机标记并使用数组中的坐标。
以下是HTML和两个通用链接,其中点击链接1将居中于制造商1并弹出其infowindow和标记2反之亦然:
<div id='map_canvas'></div>
<a href='#' onClick="gotoPoint(1);">Click for marker 1</a><br/>
<a href='#' onClick="gotoPoint(2);">Click for marker 2</a>
在createMarker中,我将创建的制造商与其关联InfoWindow一起存储,并将其推送到全局范围的标记数组。在悬停标记时,它将打开其关联信息:
function createMarker(lat, lon, html) {
var newmarker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lon),
map: map,
title: html
});
newmarker['infowindow'] = new google.maps.InfoWindow({
content: html
});
google.maps.event.addListener(newmarker, 'mouseover', function() {
this['infowindow'].open(map, this);
});
marker.push(newmarker);
}
这里在gotoPoint我只是将标记号作为参数。我基本上使用new google.maps.LatLng
将地图的中心设置为标记的中心,并通过调用marker[myPoint-1].position.lat();
和marker[myPoint-1].position.lng();
使用标记的lat和lng,并使用{{1}打开其关联的InfoWindow }:
marker[myPoint-1]['infowindow'].open(map, marker[myPoint-1]);
如果您对此示例有任何疑问,请与我们联系。