2012-03-20 38 views
0

このソリューションを開発しているうちに、API V2が非推奨となったことがわかりました。私は以来、API V3を利用したバージョンの作業を開始しました。この作業はMy New Mapにあります。この変換を加速するDavid MarlandのHammerspaceのおかげで特別なおかげです。Google Maps API V3 infowindow

私は残りの3つの問題に取り組んでいます。最初はこの記事で取り上げます。

私が定義されている情報ウィンドウをトリガすることができません:

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

私はpolygon..notマーカーに添付しています。ポリゴンは次のように書かれています。

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

あなたが提供できるガイダンスはありがたいです。

ありがとうございます。

** UPDATED * ** * *私は今にコードを変更した

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); 
    } 
    }); 

However..stillトリガなし。

答えて

2

おそらくPolygonに「contains」機能がないためです。 containsLocation機能を持つGoogle Maps API Geometry Libraryを使用してください。

+0

ありがとう、@Mano Marks。上記の私の更新をご覧ください。 – mcmonty

1

Googleマップapi v3では、情報ウィンドウをポリラインやポリゴンに追加することはできません。

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

(存在しないか注意してください。これを回避する解決策は、マウスクリックの緯度/経度の座標を取得し、同様にマップに(ユーザーが彼/彼女のマウスをクリックした)情報ウィンドウを添付することです.open()メソッドの第2引数)そう

ますが、マップへ)

(あなたのポリゴンの中心またはその角の1のいずれかの緯度/経度を把握し、そこに情報ウィンドウを添付することができますインフォ画面をポリゴンに添付して表示させることができます。

編集:また、 - マノマークは約について述べていたように - そのメソッドが存在するかどうかはわかりませんので、コードブロックは2番目の引数を.open()メソッド。そのような場合は、ロジックに別のアプローチをとらなければならないかもしれませんが、ポリゴンまたはポリラインではなくマップにマーカーを付けることで、主な問題が解決されます。

関連する問題