質問: yahoo地図でマーカーを表示したり消したり・・・ yahooマップでマーカーを表示したり消したりしたいのですが、 内容は、マップ上でクリックされて、マーカーがひとつもなければクリックした場所にマーカーを表示し、マーカーが既にあれば、そのマーカーを消して新たにクリックされた場所にマーカーを表示したいのですが、どのようにすればいいでしょうか? 下記のソースでクリックするごとにマーカーは表示されるのですが、既にある場合に消す方法がわかりません。 よろしくお願いします。 y.event.addlistener(ymap, 'click', onclick); function onclick(latlng){ ymap.addfeature( new y.marker(new y.latlng(latlng.lat(),latlng.lng()))); }
回答: id登録が必要みたいなので、試してませんが、 >既にある場合に消す方法がわかりません。 以下のリファレンス(?)によれば、削除は removefeature() みたいですね。 http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/js/#index4-6 常に一つ以下しかマーカーを表示しないのであれば、単純に、記録用の変数にマーカーを記憶しておいて 1)変数が定義されていれば、マーカーを削除 2)新しい位置にマーカーを表示(→変数に記憶) の手順でよいのではないでしょうか。