• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Yahoo地図でマーカーを表示したり消したり・・・)

Yahoo地図でマーカーを表示したり消したりする方法

このQ&Aのポイント
  • Yahooマップでクリックした場所にマーカーを表示する方法とは?
  • 既にあるマーカーを消して新たにクリックした場所にマーカーを表示する方法について
  • マーカーの表示と消去を行うためのソースコード

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 こんな感じで実装できませんか。 こうすることでクリックするごとに削除して、生成を繰り返します。 window.onload = function(){ var yMap = new Y.Map("map"); yMap.drawMap ( new Y.LatLng(35.66572, 139.73100), 17, Y.LayerSetId.NORMAL ); Y.Event.addListener ( yMap, 'click', putMark); // マーク用の変数 var mark; function putMark ( latlng ) { // 表示されているマークを削除 yMap.removeFeature ( mark ); // マークを新規に生成 mark = new Y.Marker ( new Y.LatLng(latlng.lat(),latlng.lng()) ); yMap.addFeature ( mark ); } }

ok-rjak
質問者

お礼

ありがとうございます! 思っていた通りの挙動になりました。 変数の宣言をfunction外ですれば良かったんですね! 言われてみれば当たり前なんですが、記述したとおり、function内でマーカーを定義していたので、removeできなかったんですね。 本当に助かりました。ありがとうございます。

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

ID登録が必要みたいなので、試してませんが、 >既にある場合に消す方法がわかりません。 以下のリファレンス(?)によれば、削除は  removeFeature()  みたいですね。 http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/js/#index4-6 常に一つ以下しかマーカーを表示しないのであれば、単純に、記録用の変数にマーカーを記憶しておいて  1)変数が定義されていれば、マーカーを削除  2)新しい位置にマーカーを表示(→変数に記憶) の手順でよいのではないでしょうか。

ok-rjak
質問者

お礼

そうなんです。 考え方やfujillinさんがおっしゃっていただいたような方法はわかるのですが、Javascriptでどのように記述すればよいのかわからなかったのです・・・ お恥ずかしい限りです。 なんとか、No.2さんの方法でできましたので、締め切らせて頂きます。 ご回答、ありがとうございました。

関連するQ&A