2009-04-06 12 views
5

私がグーグルマップ上の行にクリックイベントを検出するために、次の操作を行うことができるはずと私には思える:GoogleマップのPolyLineオーバーレイでクリックイベントを検出するにはどうすればよいですか?

var line = new GPolyline(...); 
map.addOverlay(line); 
GEvent.addListener(line, "click", function(latlng){ alert("clicked"); }); 

api referenceが、これは2007年にリリースされたバージョン2.88、で利用可能であると言います(!?)、私はそれが私が使用していると仮定しているが、私はそれを確認する方法を知らない。

また、{clickable:true}オプションを明示的に設定しようとしました(デフォルトになっています)。私はFireFox 3とOpera 9.6でテストしました。私はまた、ページ上でjQueryを使用しています。

私は十分に機能するマーカーのクリックを検出するコードがたくさんあります。ラインをクリックすると本当にいいですね、誰でも私を啓発できますか?

答えて

2

私はちょうど簡単なテストと次のコードは、私のテストページで働いていたんでした:あなたが持っているマップするグーグルのバージョンを伝える方法は、GoogleマップのV =パラメータを見ることである

var polyline = new GPolyline([ 
    new GLatLng(37.4419, -122.1419), 
    new GLatLng(37.4519, -122.1519) 
], "#ff0000", 10); 
map.addOverlay(polyline); 

GEvent.addListener(polyline, 'click', function() { 
    alert('you clicked polyline'); 
}); 

SRC URLは、あなたは私が(最新のリリースで、今日2.101のような)クリック可能なポリラインをサポートする最新の安定2バージョンを、使用しています意味「V = 2」を、持っている。この場合

http://maps.google.com/maps?file=api&v=2&key=MY_API_KEY

を持っています。 "v = 2.x"は、エッジリリースを使用していることを意味します。そして、期間(。)後のものが数字である「v = 2.5」は、特定のリリースを指します。

+0

[OK]をお寄せいただきありがとうございます。しかし、私はまだあなたが "最新の安定版"がどのようになっているかを知るはずです... .versionまたは.getVersion GMap2オブジェクトの()は迷いません。 – Tom

+0

理由は分かりませんが、今日はMozillaでテストしていますが、新鮮なテストコードなので、どこか微妙な違いがあったに違いありません...)、Operaでは運がありません。お元気です。 – Tom

+0

これは、v = 2とv = 2.xが何であるか把握できる最も近い場所です http://groups.google.com/group/Google-Maps-API/web/api-バージョン変更?pli = 1 – howardr

1

ありがとう!

  1. GMarkerのクリック例の多くには、GEventがaddListener()の前にGEventがあり、動作しませんでした。順序を逆にすると機能します。

  2. アラート(G_API_VERSION)で実際のバージョンを見つけることができます。

    上記stnadardのsrc URLを使用して

、私は次のようになります// G_API_VERSIONの== 208A

おかげで再び!

0

GPolylinesは、他のオブジェクト(前の回答から取られたコード)のように、それらにクリックイベントを追加することにより、クリック可能にすることができます。

var polyline = new GPolyline([ 
    new GLatLng(37.4419, -122.1419), 
    new GLatLng(37.4519, -122.1519) 
], "#ff0000", 10); 
map.addOverlay(polyline); 

GEvent.addListener(polyline, 'click', function() { 
    alert('you clicked polyline'); 
}); 

しかし、あなたはまた、GPolylineイベントの後に発生していることを認識しておく必要があり、同じ場所にある地図自体のクリックイベントが発生します。また、イベントパラメータがマップのクリックイベントに適切に渡されないため、この特定のイベントには現在バグがあります(2010年4月現在)。これはGoogleの既知のバグであり、修正するために取り組んでいます。

5

更新:APIのバージョン3には、あなたがgoogle.maps.event.addListener(object, event, function);

例えばを使用したいです詳細については

google.maps.event.addListener(polyline, 'click', function() { 
    alert('you clicked polyline'); 
    }); 

events api

0

を見ることがポリライン上にあるシンボル内のイベントをクリックして持つことが可能ではないと思われることに注意してください。また、ポリラインに添付されているクリックイベントは継承されません。もっと詳しい情報はこちら:Google Maps: clickable polyline icon

関連する問題