所有, 我有以下代码来添加标记:
function addPoints( points )
{
for ( var p = 0; p < points.length; ++p )
{
var pointData = points[p];
if ( pointData == null ) return;
var point = new GLatLng( pointData.latitude, pointData.longitude );
var marker = createMarker( point, icon0, pointData.html );
map.addOverlay( marker );
}
}
function createMarker(point, icon, popuphtml) {
//alert("the create marker is: "+point);
var popuphtml = "<div id=\"popup\">" + popuphtml + "<\/div>";
var marker = new GMarker(point, icon);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(popuphtml);
});
return marker;
}
我有一些 PHP/Javascript 将信息传递给这个函数:
$lat = $resultset_vendors['vendor_latitude'];
$long = $resultset_vendors['vendor_longitude'];
$name = $resultset_vendors['vendor_name']. "<br/>" . $resultset_vendors['vendor_address1']
. "<br/>" . $resultset_vendors['vendor_city'] . ", " . $resultset_vendors['vendor_state'] . " " . $rs['vendor_zip'];
$jsData = $jsData . " new Store( $lat, $long, '$name' ),\n";
function Store( lat, long, text )
{
this.latitude = lat;
this.longitude = long;
this.html = text;
}
var myStores = [<?php echo $jsData;?>, null];
我的数据已成功传递,除了在 map div 内部打开弹出框外,一切看起来都很好。如何在 map div 之外打开它? yelp 上可以找到一个很好的例子。如果您将鼠标悬停在 map 中的标记上,它将在 map div 之外打开。
最佳答案
Google map 信息窗口在 div 内打开,我刚刚在 Yelp 上查看,它们也在 map 内打开。如果您想要一个外部弹出窗口,您可能需要编写一个函数来创建一个附加在 map 外部的弹出窗口,然后绝对定位在该点。问题是包含 map 的div的溢出被设置为隐藏。
关于javascript - Google map 信息窗口在 map 外部单击时打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8344525/