- 締切済み
GoogleMapAPI - デフォルト表示したマーカーから緯度経度を取得できない
最近googleMapを利用しデータベースと連携して コミュニケーションツールを作れないかとあれこれ 本やネットで調べた知識でがんばっているのですが、 行き詰まってしまったのでどなたかお知恵をお貸し下さい。 ◇前提 ・googleMapのページアクセス時に DBに登録済みのマーカー情報(緯度・経度・場所名称)を基に 複数のマーカーを表示する ※DBとのデータ中継はPHPを使用。ここでは省略。 ◇問題点 ・表示された複数のマーカーのうちどれかをクリックしたとき そのマーカーに付随するデータをフォーム上に表示したいが、 DBへの問い合わせに必要なクリックしたマーカーの緯度経度が 取得できない。 以下抜粋 ------------------------------------------------- // 登録済みマーカーをデフォルト表示 GDownloadUrl("load.php", function(doc, stat){ var load = doc.parseJSON(); for(var i=0; i<load.data.length; i++){ var point = new GLatLng(load.data[i].lat, load.data[i].lng); var marker = new GMarker(point); map.addOverlay(marker); // クリックしたマーカーに該当する情報を表示 GEvent.addListener(marker, "click", function(){ //*** ここで緯度経度を取得 **** } } }); ------------------------------------------------- http://oshiete1.goo.ne.jp/qa2559818.html 上記ページの質問に対する回答の方法も試しましたが、 エラーが出てしまい解決できませんでした。 プログラム素人な上、不慣れな分野にて行き詰まってます。 どうかお助け下さい。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ririli
- ベストアンサー率32% (15/46)
こんにちは marker.getPoint() とすればマーカーのさしてる緯度経度を取得できるはずですがどうでしょうか? あと、「ここで緯度経度を取得」の部分で、どのように試してみてだめだったか なども書いておいたほうが回答がつきやすいと思います。
お礼
回答ありがとうございます。 すいません説明不足でした。 GEvent.addListener(marker, "click", function(){ var p = marker.getPoint(); とすると緯度経度は取得できるのですが、 ページ読み込み時のループ処理の関係で 最後のマーカーの位置情報しか掴めませんでした。 かといってforの外側では結局正常な値が取れません。 今回急いでいた為、他の場所でも質問をしていたところ 以下のような例を頂き、無事解決できました。 ----------------------------------- GDownloadUrl("load.php", function(doc, stat){ var load = doc.parseJSON(); for(var i=0; i<load.data.length; i++){ var marker = makeMarker(load.data[i].lat, load.data[i].lng); map.addOverlay(marker); } }); function makeMarker(lat, lng){ var point = new GLatLng(lat,lng); var marker = new GMarker(point); // クリックしたマーカーの情報を表示 GEvent.addListener(marker, "click", function(){ var p = marker.getPoint(); GDownloadUrl( ***[p.lat]と[p.lng]で問い合わせ*** ) <-----省略-----> ----------------------------------- これである程度進められると思いますが、 まだ完成までに解決しなければならない問題はいくつもあります。 なるべく自分の力で調べてはみますが、 またこちらに質問させて頂くことになるかもしれませんので その時はご指摘頂いたことに気をつけたいと思います。 アドバイスありがとうございました。