簡體   English   中英

Google Maps API V3信息窗口

[英]Google Maps API V3 infowindow

在開發此解決方案時,我了解到不贊成使用API​​ V2。 從那時起,我就開始研究利用API V3的版本。 可以在“ 我的新地圖”中找到正在進行的工作。 特別感謝Hammerspace的 David Marland為我加速轉換。

我只剩下3個問題。.我將在這篇文章中首先解決。

我無法觸發已定義的信息窗口:

 google.maps.event.addListener(polyline, 'click', function(event) {
    if (polyline.Contains(event.latLng)) {
        infowindowInside.open(map,polyline);
    } else {
        infowindowOutside.open(map,polyline);
    }
  });

我將它們附加到多邊形..不是標記。 多邊形被寫為:

var path = [
new google.maps.LatLng(35.950079, -84.104977),
new google.maps.LatLng(35.950774, -84.049702),
new google.maps.LatLng(35.946883, -84.047813),
new google.maps.LatLng(35.945354, -84.045067),
new google.maps.LatLng(35.940907, -84.042149),
new google.maps.LatLng(35.930483, -84.037857),
new google.maps.LatLng(35.939656, -84.037857),
new google.maps.LatLng(35.928120, -84.076309),
new google.maps.LatLng(35.938822, -84.066868),
new google.maps.LatLng(35.950079, -84.104977)];
var polyline = new google.maps.Polygon({path:path, strokeColor: "#FF0000", strokeOpacity: 1.0, strokeWeight: 2, clickable:false});
polyline.setMap(map);

感謝您提供的任何指導。

謝謝。

**更新* ** * *

我現在將代碼修改為:

google.maps.event.addListener(polyline, 'click', function(event) {
    if (polyline.ContainsLocation(event.latLng, polyline)) {
        window.alert('inside');//infowindowInside.open(map,polyline);
    } else {
        window.alert('outside');//infowindowOutside.open(map,polyline);
    }
  });

但是..仍然沒有觸發器。

可能是因為Polygon沒有“包含”功能。 您應該看一下使用Google Maps API 幾何庫 ,該具有一個containsLocation函數。

Google Maps api v3不允許您將信息窗口添加到折線或多邊形。 解決此問題的方法是獲取鼠標單擊的緯度/經度坐標,並將信息窗口(用戶單擊其鼠標的位置)附加到地圖上,如下所示:

google.maps.event.addListener(polyline, 'click', function(event) {
 if (polyline.Contains(event.latLng)) {
    infowindowInside.open(map);
 } else {
    infowindowOutside.open(map);
 }
});

(請注意.open()方法中沒有第二個參數)

否則,您可以找出多邊形中心或其角之一的緯度/經度,並將信息窗口附加到那里(但要貼到地圖上)

這樣一來,您就可以在顯示信息窗口的同時使其顯示為附着在多邊形上的信息窗口。

編輯:另外-正如mano標記中所提到的。.contains-我不確定該方法是否存在,因此即使從.open()中刪除了第二個參數,您所擁有的代碼塊仍可能無法正常工作方法。 在這種情況下,您可能必須對邏輯采取其他方法,但是將標記附加到地圖而不是多邊形或折線可以解決您的主要問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM