• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ストリートビューでマーカークリックするとエラー)

ストリートビューでマーカークリックするとエラー

このQ&Aのポイント
  • マップとストリートビューを並べて表示させるページを作成しています。マップをクリックしたら、その箇所のストリートビューを表示させる方法を探しています。
  • マーカークリック時のストリートビュー表示でエラーが発生しています。マーカーにオブジェクトが含まれていないため、エラーが発生している可能性があると考えています。
  • マーカークリック時のストリートビュー表示を改善するための参考ページや解決方法を探しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.4

<補足> 作っていて気づいたのですが、 GStreetviewOverlayを地図に かぶせていると、他のオーバーレー(マーカー等)の座標の 取得や、操作がうまくいかないみたいです。  今回のサンプルは、マーカーから自身の座標を返させているので すが、なぜか、最初に初期配置した時はその座標がストリートビュー で処理されません。マーカーをドラッグして動かすと次から、その 座標がストリートビューで処理されました。タイムラグが原因なのか もしれません。  マーカーの位置が固定で決まっているなら、その座標を直に GStreetviewPanoramaにセットすれば、最初からマーカークリック で、ストリートビューが表示されました。  ともかく、ストリートビューサービスは、日本で始まってから数ヶ月 ですから、いろいろ実験してみない事には.... と...。

gonchin01
質問者

お礼

なるほど・・・ とりあえず初期のマーカーの位置は固定させて、panoramaセットさせたいと思います。 参考のページありがとうございました。 大変参考になりました。色々勉強になります。 また何かあればよろしくお願いします。

その他の回答 (3)

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.3

No1,2です。 一応うまくいきました。 <script type="text/javascript" charset="utf-8"> <!-- var map; var panorama; var scontainer; function load() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); map.addControl(new GMapTypeControl()); map.addControl(new GLargeMapControl()); map.setCenter(new GLatLng(35.658517, 139.745493), 16); var street = new GStreetviewOverlay(); map.addOverlay(street); scontainer = document.getElementById("street"); var spoint = new GLatLng(35.658517, 139.745493); marker = new GMarker(map.getCenter(),{draggable: true}); map.addOverlay(marker); GEvent.addListener(marker,"click",function(){ marker.openInfoWindowHtml("XXXXXX"); //marker.openInfoWindowTabsHtml(mtabs); var point = marker.getLatLng(); map.panTo(point); panorama = new GStreetviewPanorama(scontainer,{latlng:point}); }); GEvent.addListener(marker,"mouseover",function(){ marker.openInfoWindowHtml("XXXXXX"); //marker.openInfoWindowTabsHtml(mtabs); }); } } // --> </script> です。 マーカークリックでも、マウスオーバーでも吹き出しがでるので ちょっとうっとしいです。マウスオーバーの方はけしてもいいかも マーカーを青い線の上にドラッグしてクリックすると、 ストリートビューが出ます。 青い線の上でないと出ません。 参考URLを参考に作りました。

参考URL:
http://googlemaps.googlermania.com/map_example_25.html
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

No1です。先の回答取り消します。 検証してみたら、StreetView表示状態だと、うまくいきませんでした。 もっと調べてみます。 GEvent.addListener(marker,"click",function({ はケアレスミスです。)抜けてました。正しくは GEvent.addListener(marker,"click",function(){ ですね

gonchin01
質問者

お礼

ありがとうございます。 私もへんに思い、HPを調べて、()をつけくわえました☆ 先程の件は、下記に補足させていただきました。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

マーカーにマウス移動したら、フキダシ表示は、↓ GEvent.addListener(marker,"mouseover",function({ marker.openInfoWindowTabsHtml(mtabs); }); マーカークリックしたら、フキダシ表示は、↓ GEvent.addListener(marker,"click",function({ marker.openInfoWindowTabsHtml(mtabs); }); マーカークリックしたら、フキダシ表示&ストリートビュー表示は、↓ GEvent.addListener(marker,"click",function({ marker.openInfoWindowTabsHtml(mtabs); var point = marker.getLatLng(); map.panTo(point); panorama.setLocationAndPOV(point); panorama.show(); }); mapをクリックした時、マーカーをクリックした時、等の 処理を整理して、プロシジャーを配置してみてください。

gonchin01
質問者

お礼

ありがとうございます。 参考にさせていただき、いろいろ試したところ、 マーカーをクリックしたら、座標を取得できないことが問題とわかりました。 地図上クリックでしたら、座標がとれてたのですが、マーカーや噴出し上をクリックすると、undefinedという内容がかえっていて、その位置を表示できないのが問題でした。 この場合、if(point = undefined)というように作ればいいのでしょうか? ともかくありがとうございました。