我在可点击的多段线和多边形上有一个信息框。谷歌地图在点击标记时消失
当我点击其中的任何一种无形的标记创建和infoxbox弹出它。
问题是,当infoxbox出现地图消失。
我没有得到任何javascript错误。
这是我的代码: (我注释掉所有infoxbox功能除了内容文本)
google.maps.event.addListener(mapObject, 'click', function(event) {
var invisibleMarker = new google.maps.Marker({
position: new google.maps.LatLng(event.latLng),
map: map
});
var boxText = document.createElement("div");
boxText.style.cssText = "background: none; padding: 0;";
boxText.innerHTML = '<div style="margin: 0 0 20px 0;padding: 18px;background: white url(/media/images/map-marker-info-bg.gif) repeat-x top left;">' + content[0] + '</div>';
var myOptions = {
content: boxText
/*,latlng: event.latLng
,alignBottom: true
,pixelOffset: new google.maps.Size(-470, -20)
,boxStyle: {
background: "transparent url('/media/images/map-marker-info-arrow.png') no-repeat bottom right"
,opacity: 1
,width: "470px"
}
,closeBoxMargin: "18px 18px 2px 2px"
,closeBoxURL: "/media/images/map-marker-info-close.gif"
,infoBoxClearance: new google.maps.Size(5, 5)
,enableEventPropagation: false*/
};
var ib = new InfoBox(myOptions);
ib.open(map, invisibleMarker);
});
任何人可以帮助我解决这个问题?
谢谢
1)我的我发布的代码位于函数createInfoWindow(mapObject,content,objectType)中。 'mapObject'变量是被点击的标记,'map'是在函数上定义的地图对象。 2)InvisibleMarker替换了我测试的mapObject,函数现在使用'mapObject'。我认为这是个问题,尽管现在我不能像现在刚解决的那样记住它。内容是一个数组,因此content [0]是一个用作infoBox副本的字符串。无论如何感谢提示 – nickornotto
我知道是什么问题。我不应该根据2)new google.maps.LatLng(event.latLng)解析latlng值。它修复了地图的不足。我现在也使用隐形标记来显示工作正常的多段线上方的信息框。 t甚至修复了显示折线信息窗口的问题 - 我必须单击它3次才能显示标准信息窗口。感谢您的帮助 – nickornotto