
Yahooマップでマーカーを表示したり消したりしたいのですが、
内容は、マップ上でクリックされて、マーカーがひとつもなければクリックした場所にマーカーを表示し、マーカーが既にあれば、そのマーカーを消して新たにクリックされた場所にマーカーを表示したいのですが、どのようにすればいいでしょうか?
下記のソースでクリックするごとにマーカーは表示されるのですが、既にある場合に消す方法がわかりません。
よろしくお願いします。
Y.Event.addListener(ymap, 'click', onclick);
function onclick(latlng){
ymap.addFeature( new Y.Marker(new Y.LatLng(latlng.lat(),latlng.lng())));
}
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 );
}
}
ありがとうございます!
思っていた通りの挙動になりました。
変数の宣言をfunction外ですれば良かったんですね!
言われてみれば当たり前なんですが、記述したとおり、function内でマーカーを定義していたので、removeできなかったんですね。
本当に助かりました。ありがとうございます。
No.1
- 回答日時:
ID登録が必要みたいなので、試してませんが、
>既にある場合に消す方法がわかりません。
以下のリファレンス(?)によれば、削除は
removeFeature() みたいですね。
http://developer.yahoo.co.jp/webapi/map/openloca …
常に一つ以下しかマーカーを表示しないのであれば、単純に、記録用の変数にマーカーを記憶しておいて
1)変数が定義されていれば、マーカーを削除
2)新しい位置にマーカーを表示(→変数に記憶)
の手順でよいのではないでしょうか。
そうなんです。
考え方やfujillinさんがおっしゃっていただいたような方法はわかるのですが、Javascriptでどのように記述すればよいのかわからなかったのです・・・
お恥ずかしい限りです。
なんとか、No.2さんの方法でできましたので、締め切らせて頂きます。
ご回答、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Google Maps APIのfitBounds
-
PHPで入力された住所で地図表示
-
google map の画面サイズを小さ...
-
デジタル時計の時刻合わせの方...
-
エクセルのシート上に別のシー...
-
スクリプトって、何ですか?ど...
-
マイページはどこを開くの
-
[Java] Edgeでのアドレスバー非...
-
Edge Chrom などの超初心者質問...
-
Outlookでこのような表示がされ...
-
小さな表示窓の呼び方は
-
Excel操作 ウィンドウで出した...
-
複数の画像を横にスクロールさ...
-
PDFを(htmlのように)無限に縦...
-
【Android】ユーザー補助機能ボ...
-
Javascript_submit()完了後に処...
-
Youtubeのバグ
-
TikTokLiteの自動スクロールの...
-
Outlookのエラー表示について
-
スクリプトエラー?!
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Yahoo地図でマーカーを表示した...
-
VBAでオブジェクトがありません...
-
【javascript】住所から郵便番...
-
どうして+3
-
逆ジオコーディングについて
-
WordのVBAについて
-
GoogleMapsAPI ルート案内
-
Google Maps API v2 現在位置か...
-
地図画面移動のプログラムについて
-
map = new google.maps.Mapで作...
-
Google Mapを利用した情報追加...
-
PHPで入力された住所で地図表示
-
Googlemapsapi V=3ルート検索
-
郵便番号で検索⇒距離順に結果リ...
-
楽天APIについて、グーグルマッ...
-
aspのセレクトボックスにDBのデ...
-
google map の画面サイズを小さ...
-
googlemapで複数条件絞り込みで...
-
既存のgoogleマップに半径表示...
-
onMouseOver、onMouseOutイベン...
おすすめ情報