2011-08-11 18 views
4

私は周りを見回しており、これに対する答えはまだ見つかりませんでした。 Google Earthプラグインのjavascriptを使用して、3D建物レイヤーまたはカスタム3Dモデルにクリックイベントを追加することは可能ですか?Google Earthプラグイン3Dイベントのイベントをクリックしてください

私の最終目標は、ユーザーに3D建物を選択させ、情報のバブルをその建物の詳細とともに表示できるようにすることです。これは、Googleが3Dモデルに関する情報を表示するデフォルトのバブルではありません。

モデルを手動で読み込むのではなく、3D建物レイヤーを使用するのが理想的ですが、手動でアップロードされた3Dモデルを使用することが可能なことを期待していません。

プラグインを有効にするには、google earth utility libraryのgoogle maps api V3を使用しています。

ご回答ありがとうございます。

+0

残念ながら、 eamsが動作しないようにする。これはgoogle.earthで議論されているドキュメントの適切な場所を見つけることができません。addEventListener(目印、 'クリック'、機能(イベント){ \tアラート( 'クリック');});あなたがこの問題やその他の正当な情報源でこの問題を解決したのであれば、私はこれを感謝します:) –

+0

このhttp://groups.google.com/group/google-earth-browser-pluginを見つけました/ browse_thread/thread/13c6a20d23306d4f?pli = 1誰かがそれは不可能だと主張していますが、08年からその投稿にリンクされた問題は悲しげに利用できません。 –

答えて

0

私はこれを初めて読んだと思います。詳しく見て取った後、例外では3Dモデルである

google.earth.addEventListener(placemark, 'click', function(event) 
{ 
    alert('click'); 
}); 

...マウスイベントは、プラグインの中で最もジオメトリ(に取り付けることができる(その簡単な方法で)まだ可能ではないように思わことが明らかになりました)、...

google earth api

/

をカスタム交差点 'リスナー' を実装することによってこれを行うにはたぶんその可能/編集:

多分それは穴ストーリーではありません。より多くの研究により、いくつかのジオメトリーを達成することが可能であることが明らかになった。 ge interfaceは少し使用可能な... hitTest(...) api doc

GEHitTestResult GEView.hitTest(float    x, 
           KmlUnitsEnum  xUnits, 
           float    y, 
           KmlUnitsEnum  yUnits, 
           GEHitTestModeEnum mode  
           )  

という名前の関数は、残念ながらGEHitTestModeEnumがそうカスタム3Dモデルに対して建物に対してhitTestことはできませんがGEPlugin.HIT_TEST_GLOBE GEPlugin.HIT_TEST_TERRAIN GEPlugin.HIT_TEST_BUILDINGS

にのみ適している

を持っていますカスタム3Dモデルをクリックするソリューションは、issueに記載されている他の「イベント可能な」目に見えない目印を使ってクリックを検出する方法です。

リッテコードhittestingのexcample

// EDIT2:

私は私の現在のプロジェクトで使用ソリューションは、そのように聞こえる:

はすべてのためのpolygonsでバウンディングボックスを作成する「イベントrecievingカスタムをクリックしてください3Dモデル ' ポリゴンでクリックイベントが発生する可能性があります。

google.earth.addEventListener(polygonPlacemark, 'click', function(event) { 
    alert('placemark bounding box clicked'); 
}); 
関連する問題