发现这种将DIV作为自定义谷歌地图infoWindow的方法。它有效,但感觉有点hacky ..有更简单的方法吗?
a)设置叠加层
MyOverlay.prototype = new google.maps.OverlayView();
MyOverlay.prototype.draw = function() {}
overlay = new MyOverlay(this.map);
function MyOverlay(map) { this.setMap(map); }
b)点击每个标记上的监听器
google.maps.event.addListener(markers[i], 'click', function() {
displayInfo(this);
});
c)显示infoWindow功能
function displayInfo(marker) {
var e = $('#infobox');
overlay.getPanes().floatPane.appendChild(e);
//important! Removes already active listeners.
if(displayInfoProcess) {google.maps.event.removeListener(displayInfoProcess);}
displayInfoProcess = google.maps.event.addListener(map, 'bounds_changed', function() {
show('#infobox');
var markerOffset = overlay.getProjection().fromLatLngToDivPixel(marker.position);
e.style.top = markerOffset.y - 115 + 'px';
e.style.left = markerOffset.x - 57 + 'px';
e.innerHTML = marker.store + '<br><em>' +marker.distance;
});
map.panTo(marker.position);
}
答案 0 :(得分:0)
似乎“没关系。”以下是Google代码网站的示例:
http://gmaps-samples-v3.googlecode.com/svn/trunk/infowindow_custom/infowindow-custom.html
看看来源。