2011-12-01 139 views
2

所有的外上單擊打開, 我有下面的代碼添加標記:谷歌地圖信息窗口地圖

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

我的數據通過成功,一切都很好,除了在地圖div內打開彈出框。它怎麼能在地圖div之外開放?在yelp上可以找到一個很好的例子。如果您將鼠標懸停在地圖上的標記上,則會在地圖div之外打開。

回答

2

Google地圖信息窗口在div內部打開,我剛剛查看了Yelp,他們也在地圖中打開。如果你想要一個外部彈出窗口,你可能需要編寫一個函數來編寫一個彈出窗口,該彈出窗口被添加到地圖之外,然後完全放在地圖上。問題是包含地圖的div的溢出被設置爲隱藏。

+0

是的,'overflow:hidden'是一個問題,它可能必須保持設置,以便地圖外部的圖塊不可見。 – TMS

+0

我同意它必須設置。這就是爲什麼OP將不得不在地圖的div DOM之外創建一個彈出窗口。你提供的鏈接肯定會有很大的幫助。 – jValdron

+0

@TomasT。我不需要外部彈出。我只是在尋找和Yelp一樣的最終結果。我沒有意識到它在div內打開,因爲它看起來不在它的外面。你是說設置溢出:隱藏的div? – user1048676