谷歌地图InfoWindow在地图外点击打开

时间:2011-12-01 16:13:06

标签: javascript css google-maps html openinfowindowhtml

全部, 我有以下代码来添加标记:

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];

我的数据成功通过,除了弹出框在Maps div内打开外,一切看起来都不错。怎么能在地图div之外开放?在yelp上可以找到一个很好的例子。如果将鼠标悬停在地图中的标记上,则会在地图div之外打开。

2 个答案:

答案 0 :(得分:2)

Google地图信息窗口在div中打开,我刚刚在Yelp上查看,它们也在地图内打开。如果你想要一个外部弹出窗口,你可能需要编写一个函数来编写一个附加在地图外部的弹出框,然后绝对定位在该点上。问题是包含地图的div的溢出被设置为隐藏。

答案 1 :(得分:1)

您可以构建自己的infoWindow,就像他们在这里为静态地图所做的那样:http://www.appelsiini.net/projects/php_google_maps/controls.html?center=58.37917285%2C26.74759984&infowindow=&zoom=14

我认为您还可以将其改编为与动态(javascript)地图一起使用...如果您正确处理了事件(例如bounds_changed等)。