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

私のデータは正常に渡され、Maps div 内でポップアップ ボックスが開く以外はすべて問題ないように見えます。maps divの外でどのように開くことができますか? 素晴らしい例が yelp にあります。マップ内のマーカーにカーソルを合わせると、マップの div の外でマーカーが開きます。

4

2 に答える 2

2

Google マップの情報ウィンドウが div 内で開いています。Yelp で確認したところ、マップ内でも開きます。外部ポップアップが必要な場合は、マップの外側に追加されたポップアップを作成し、そのポイントに絶対に配置する関数をコーディングする必要があるでしょう。問題は、マップを含む div のオーバーフローが非表示に設定されていることです。

于 2011-12-01T16:17:34.513 に答える
1

ここで静的マップに対して行っているように、独自の infoWindow を作成できます:

動的(javascript)マップで使用するように適応させることもできると思います...イベント(bounds_changedなど)を適切に処理した場合。

于 2011-12-01T16:25:49.773 に答える