
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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) ワードプレスのプラグインであるAddQuicktagを使いたいが… 3 2022/04/18 15:03
- ノートパソコン ポラリスオフィスを使ってます。グラフの折れ線にマーカーが入ってしまい見にくいので消したいのですがデー 1 2022/09/09 14:49
- がん・心臓病・脳卒中 【医学・腫瘍マーカー】腫瘍マーカーに高い値が見つかったという腫瘍とは癌(がん)のことですか? 腫瘍マ 3 2022/07/15 17:13
- 大学受験 勉強で暗記する時に、赤シートを使っており、文字を隠したい場合は、緑のマーカーで引いた部分が黒くなり、 1 2023/07/02 23:57
- その他(プログラミング・Web制作) .htaccessファイルの修正がこれで問題ないかどうか 1 2022/04/21 08:42
- Outlook(アウトルック) Outlookのメールの表示について 1 2023/07/06 18:51
- 大学受験 現代社会 GDPとGNPについて 1 2023/01/08 14:31
- 遊園地・テーマパーク 8月に初めてUSJに行く予定です。 表示したエクスプレスパスを取ろうと考えているのですが、大人、子ど 2 2022/06/30 01:27
- PowerPoint(パワーポイント) パワーポイントのアニメーションについて 4 2023/06/14 16:25
- Word(ワード) Wordの機能について教えてください。 2 2023/07/12 15:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Yahoo地図でマーカーを表示した...
-
VBAでオブジェクトがありません...
-
デジタル時計の時刻合わせの方...
-
スクリプトって、何ですか?ど...
-
[Java] Edgeでのアドレスバー非...
-
リストビューをスクロールさせ...
-
マイページはどこを開くの
-
エクセルのシート上に別のシー...
-
一定時間おきにアラームやポッ...
-
Javascript_submit()完了後に処...
-
Outlookでこのような表示がされ...
-
HP作成で、画面の更新をしない...
-
小さな表示窓の呼び方は
-
Excel用ボタン天国200の件
-
エクセルでポップアップを出し...
-
ホームページ全体を拡大・縮小...
-
エクセルVBAでフォームのListbo...
-
CTreeCtrlのHitTestメソッドに...
-
別フォームから戻ったときのイ...
-
PDFを(htmlのように)無限に縦...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Yahoo地図でマーカーを表示した...
-
VBAでオブジェクトがありません...
-
【javascript】住所から郵便番...
-
WordのVBAについて
-
郵便番号で検索⇒距離順に結果リ...
-
Yahoo地図で郵便番号からおおよ...
-
どうして+3
-
Google Mapを利用した情報追加...
-
aspのセレクトボックスにDBのデ...
-
Google マップにマーカーと同心...
-
Google Mapでマーカーにパラメ...
-
Rでの散布図の要素をマーカーで...
-
リンク先がgoogleなどの場合
-
JavaScriptでGoogleMAPの表示を...
-
javaScript(canvas)で図形(イラ...
-
GoogleMapAPIv3でルート上の座...
-
google map apiを使って自宅周...
-
GMap Api V3で中心マーカーを表...
-
GoogleMapAPIで複数のマーカー...
-
googlemap api で複数マーカー表示
おすすめ情報