• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:地図外からのリンクでの地図移動)

地図外からのリンクでの地図移動

このQ&Aのポイント
  • 地図外からのリンクを使って、東京、横浜、大阪を表示したいと考えています。
  • 試した方法ではうまくいかず、他の方法を探しています。
  • 具体的な方法が分からず、アドバイスが欲しいです。

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.4

9行目の var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 12行目の var tokyo = new google.maps.LatLng(35.680969,139.767208); 53行目の var oosaka = new google.maps.LatLng(34.702248,135.495758); 92行目の var yokohama = new google.maps.LatLng(35.466088,139.622412); それぞれの var を削除 代わりに、1行目と2行目の間に var map = null; var tokyo = null; var oosaka = null; var yokohama = null; を追加します。 initialize()関数の中で宣言された変数はinitialize()関数の中だけでしか使用できません。(ローカルスコープ変数として扱われる) そのため134行目以降に定義されている関数内では空っぽの変数を参照していることになり、処理が行われません。 関数定義の外で変数を定義する事で、ページ内のどこからでも参照できるグローバルスコープ変数になりますので、134行目以降の関数内でも値が取れるようになります。 44行目から始まる toTokyo() 関数は134行目とダブルので消す。 (134行目の関数名にタイプミスがあります) 85行目から始まる tooosaka() 関数は137行目とダブルので消す。 124行目から始まる toyokohama() 関数は140行目とダブルので消す。 これらの関数定義はinitialize()関数の中に書いてはいけません。 中に書いた関数はinitialize()の処理内だけで利用可能で、initialize()関数の外から呼ぶ事ができません。 以上の修正で動くと思います。

pcbeginner2012
質問者

お礼

できましたぁぁぁぁぁぁ!!!! 本当に、本当に有難うございます! これを機に、一から勉強してみようと思います。 いやぁ、本当にありがとうございました。 感謝、感謝です。 また何かあったらお願いします。

その他の回答 (3)

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.3

> サンプルですが、実際には動作しなかった為割愛してしまいました。 割愛していないモノを拝見できれば修正ポイントを回答できますので、アップするか補足に入れてください。 現在サンプルで上がっているモノをコピーしてmap変数とLatLng1変数をグローバルスコープになるよう修正したら地図は動きましたよ。

pcbeginner2012
質問者

補足

何回もお手数をお掛けします。 http://fnavi.turigane.com/map-test2.html こんな感じでやってみたのですが、何ともなりませんでした。 よろしくお願いします。

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.2

連投すいません。 あと、サンプルに上がっているpoint-test.jsには function toLatLng1() { map.panTo(LatLng1); } といった記述がありませんが、実際はどのように関数を書かれてていますでしょうか。 上がっているJavaScriptのプログラムだとmap変数やLatLng1変数がinitialize関数の中で宣言されているためローカルスコープ変数になってしまっているので、そのままではinitialize関数の外では使えませんが、その辺りの処理はどのように書かれていますでしょうか。

pcbeginner2012
質問者

補足

早速の回答ありがとうございます。 サンプルですが、実際には動作しなかった為割愛してしまいました。 すいません。他サイトのサンプルをいくつか寄せ集めて作ったので、詳しいことはわかりません。 一から勉強しないと無理でしょうか?

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

point-test.js の中に全角スペースがいくつか混入してますが、そういった事が問題では? あと、aタグのonclickイベントではLatLng1();を呼び出していて、関数定義がtoLatLng1()なのは単なる書き込みミスでしょうか。

pcbeginner2012
質問者

補足

すいません実際には function toLatLng1a() { map.panTo(LatLng1); } としています。