![](/img/trans.png)
[英]Open infoWindow of specific marker from outside Google Maps (V3)
[英]InfoWindow doesn't open correctly with link when marker is outside view on Google Maps V3
我用標記聚集在Google Maps上的地圖制作了地圖。 制造商有一個監聽器,用於設置縮放比例,然后將地圖居中,然后打開一個信息窗口。
在for循環中,我制作了一個列表,其中包含指向每個看起來像這樣的標記的鏈接
<a href="javascript:google.maps.event.trigger(markers['+i+'],\'click\');">' + item.nombre + '</a>
如果我單擊地圖上的標記,則沒有問題:地圖居中並顯示信息窗口。
問題是,如果我按列表中的鏈接:如果制造商未在地圖上顯示,則信息窗口打開不正確(位置錯誤且圖標重疊),並且地圖未居中(地圖甚至不顯示)標記的正確位置)。
奇怪的是,如果我在顯示標記的實際位置的位置縮小地圖,則將InfoWindow正確地設置在正確的標記上,並且再次按下相同的鏈接也沒有問題,就像第二幅圖像一樣。
這是jsfiddle ,如果我單擊Playa Maqui Lodge ,然后使用Firefox 43單擊任何其他鏈接,則可能會重現該錯誤。
那么,我想念什么? 為什么地圖沒有以鏈接為中心?
標記要先“放大”,然后再對其進行“單擊”,然后才將其添加到地圖。 縮放比例必須高於markerClusterer的maxZoom。
可以將markerClusterer maxZoom設置為15,或者更改代碼以將其放大到更接近標記。
google.maps.event.addListener(marker, 'click', function() {
infowindow.close();
map.setZoom(21);
map.setCenter(this.getPosition());
infowindow.setContent(this.html);
infowindow.open(map, this);
});
看起來使用自定義信息窗口計算錨點存在問題(由於您未提供自定義標記,所以我之前沒有看到過)。 如果您不使用InfoWindow.open(map, anchor)
語法並手動設置InfoWindow的pixelOffset
和position
,則此方法有效。
var infowindow = new google.maps.InfoWindow({pixelOffset:new google.maps.Size(0,-35)});
google.maps.event.addListener(marker, 'click', function() {
infowindow.close();
map.setZoom(16);
map.setCenter(this.getPosition());
infowindow.setContent(this.html);
infowindow.setPosition(this.getPosition());
infowindow.open(map);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.