Google Maps InfoWindow открывается при нажатии за пределами карты - PullRequest
2 голосов
/ 01 декабря 2011

Все, у меня есть следующий код для добавления маркера:

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 карты?Отличный пример можно найти на визг.Если вы наведите курсор на маркер на их карте, он откроется за пределами карты.

Ответы [ 2 ]

2 голосов
/ 01 декабря 2011

Информационное окно Google Maps открыто внутри div, я только что проверил Yelp, они также открываются внутри карты. Если вам нужно внешнее всплывающее окно, вам, вероятно, понадобится кодировать функцию, которая создает всплывающее окно, добавляемое вне карты, и затем позиционировать его абсолютно в точке. Проблема в том, что переполнение div, содержащего карту, установлено как скрытое.

1 голос
/ 01 декабря 2011

Вы можете создать свое собственное информационное окно, как они делают это здесь для статической карты: http://www.appelsiini.net/projects/php_google_maps/controls.html?center=58.37917285%2C26.74759984&infowindow=&zoom=14

Я думаю, вы также можете адаптировать его для использования с динамической (javascript) картой ... Если вы правильно обработали события (например, bounds_changed и т. Д.)

...