【無料配信♪】Renta !全タテコミ作品第1話

Yahooマップでマーカーを表示したり消したりしたいのですが、
内容は、マップ上でクリックされて、マーカーがひとつもなければクリックした場所にマーカーを表示し、マーカーが既にあれば、そのマーカーを消して新たにクリックされた場所にマーカーを表示したいのですが、どのようにすればいいでしょうか?

下記のソースでクリックするごとにマーカーは表示されるのですが、既にある場合に消す方法がわかりません。

よろしくお願いします。


Y.Event.addListener(ymap, 'click', onclick);
function onclick(latlng){
ymap.addFeature( new Y.Marker(new Y.LatLng(latlng.lat(),latlng.lng())));
}

このQ&Aに関連する最新のQ&A

A 回答 (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 );
}
}
    • good
    • 1
この回答へのお礼

ありがとうございます!
思っていた通りの挙動になりました。

変数の宣言をfunction外ですれば良かったんですね!
言われてみれば当たり前なんですが、記述したとおり、function内でマーカーを定義していたので、removeできなかったんですね。

本当に助かりました。ありがとうございます。

お礼日時:2012/02/09 09:09

ID登録が必要みたいなので、試してませんが、



>既にある場合に消す方法がわかりません。
以下のリファレンス(?)によれば、削除は
 removeFeature()  みたいですね。
http://developer.yahoo.co.jp/webapi/map/openloca …


常に一つ以下しかマーカーを表示しないのであれば、単純に、記録用の変数にマーカーを記憶しておいて
 1)変数が定義されていれば、マーカーを削除
 2)新しい位置にマーカーを表示(→変数に記憶)
の手順でよいのではないでしょうか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/02/09 09:07

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qgoogle地図で邪魔な赤いマークを消すには

地名を検索すれば地図が出てきますが、赤い店などのマークが出てきて用もないのに邪魔でしょうがないです。

赤いマークを出さない検索、もしくは赤いマークを消す方法を教えて下さい。

Aベストアンサー

GooGleにアカウントをとって マイプレイスを使えるようになれば
マークの消去はメニューからチェックをはずすだけで出来ます。

Q地図検索 望みの形で印刷したい

YAHOO-のホームページから、地図検索でお目当ての地図を表示しました。

印刷をしようと思いますが、以下のことができません。教えて下さい。

(1)印刷したものには、目印は必要ありません。消したいのです。(赤で記される目印が消せない)

(2)印刷しようとする地図以外は不要なので、消した上で印刷したい。

※添付は必要箇所のみSINNPINNGツールで切り取って行いました。

Aベストアンサー

No.3です。

前の回答内容に誤りがありましたので、改めて、回答させて下さい。

次のように操作すると目印は表示されなくなります。

1) 上部にある検索ボックスの「×」アイコンをクリックしますと、赤い目印が青に変化します。
2) 検索ボックスがあるバーの右端にある「地図の表示設定」(歯車のあるアイコン)をクリックします。

3) 表示されるメニューの「目印の表示」を「表示しない」をオンにして、黒いバーの何もない部分などをクリックして「地図の表示設定」を閉じます。

Qインターネット上にある地図をコピーしてEXCELに貼り付けたいのですが

インターネット上にある地図をコピーしてEXCELに貼り付けたいのですが?
通勤経路を書類にて作製し、提出しなければなりません。(←どうでもいいことですが・・・)
で、Yahoo地図でもグーグル地図でも何でもいいのですが、貼り付け方を教えてください。

Aベストアンサー

キーボード右上くらいにPrintscreenてボタンありますよね。
自分が貼り付けたい画面を表示した時に、そのボタンを押してください。
そして、エクセル上で、右クリックし貼り付けを選択。
後は、不必要な部分を切り取って、プリントアウトです。

Q指定する複数の点を表示する地図

mapion、yahoo、地理院等の地図ソフトでは1回の検索で、見つかったものを地図に印してくれるのは知っています。
例えば3ヶ所を巡るとしてそれぞれの位置は検索で分かります。
しかし、それぞれの相互の位置関係は分かりません。

即ち知りたいのは、これら3点を1枚の地図に表示する方法です。
よろしく願います。

Aベストアンサー

>これを消すにはどうしたらよいでしょうか。


キープ一覧が表示されてる時に場所名をクリックで出るフキダシの中に[編集|削除]
があるので[削除]すればいいです。
1個ずつ、ということです。

あと、次々に、という事ならちょっと変則的ですが、
フキダシ中の[キープ]をクリックすると
「この情報はキープ済みです」との警告と共に「キープした情報を編集する」ボタンが現れるので
これをクリックするとキープ内容一覧が現れそれぞれに「キープ削除」が現れるので
次々にクリックしていくといいと思います。

QWord 文字を打つと直後の文字が消えていく

いつもお世話になっています。
Word2000を使っているものです。
ある文書を修正しているのですが,文章中に字を打ち込むと後ろの字が消えてしまいます。
分かりにくいですが,
「これを修正します。」
という文章の「これを」と「修正します。」の間に「これから」という単語を入れたときに,その場所にカーソルを合わせて「これから」と打つと,
「これをこれからす。」
となってしまいます。
他の文書では平気です。
何か解決する方法があれば教えて下さい。

Aベストアンサー

入力モードが「挿入」(普通の入力)から、「上書き」になってしまっているのだと思われます。
キーボードに[Insert]というキーがあると思いますので、1度押してみてください。

QWordに新しいページを挿入する、いらないページを削除する方法は?

1、Wordに新しいページを挿入するにはどうすればいいのでしょうか。
2、いらないページを削除するにはどうすればいいのでしょうか。
初心者の質問で申し訳ありませんが宜しくお願い致します。

Aベストアンサー

たとえば1ページと2ページの間に新しいページを挿入する場合。
2ページの先頭でカーソルを点滅させて、キーボードのCtrlを押しながらEnterして下さい。
2ページ目が3ページに行って、2ページ目が新規に出来ます。

いらないページについては、そのページをすべて選択して、deleteして下さい。

QA4めいっぱいに地図が印刷したいです。

はじめまして。

普段、グーグルなどで地図を調べてプリントアウトしてるのですが、A4の紙の半分にも満たない範囲にしか地図を印刷できません。
A4めいっぱいに印刷できる地図サイトってありませんか?
道路が書いてある地図希望です。

Aベストアンサー

goo地図はいかがでしょうか。細部の番地までわかる縮尺まで検索できて便利です。

http://map.goo.ne.jp/printout_color.php?MAP=E139.45.28.960N35.40.22.620&ZM=9&direct=1&COLOR=1
印刷用地図は普通に印刷してもA4サイズの90%近い大きさで印刷できます。

更に大きくA4いっぱいに印刷したければ、印刷用地図の中で右クリックして「画像を印刷する」を選択し、
プリンタのプロパティ(詳細設定)でレイアウトの拡大・縮小を「フィットページ」にすれば、地図が用紙いっぱいに印刷されます。
EPSONプリンタのようなフチ無し印刷ができるプリンタであれば、印刷余白を無くして用紙全面を地図にすることが可能です。

印刷用地図の中で右クリックして「名前を付けて画像を保存」して、その画像を印刷するときにプリンタの設定でページいっぱいに拡大する方法でもできます。

Google地図はFlashなので右クリックで画像を取得できないから、プリントスクリーン(shiftを押しながらPrtScを押すPCが多い)で画面をキャプチャー(取り込み)してペイント等の画像ソフトに貼り付けてから地図の部分を切り出して保存するという面倒な手間がかかってしまいます。


参考URL
goo地図
http://map.goo.ne.jp/

参考URL:http://map.goo.ne.jp/

goo地図はいかがでしょうか。細部の番地までわかる縮尺まで検索できて便利です。

http://map.goo.ne.jp/printout_color.php?MAP=E139.45.28.960N35.40.22.620&ZM=9&direct=1&COLOR=1
印刷用地図は普通に印刷してもA4サイズの90%近い大きさで印刷できます。

更に大きくA4いっぱいに印刷したければ、印刷用地図の中で右クリックして「画像を印刷する」を選択し、
プリンタのプロパティ(詳細設定)でレイアウトの拡大・縮小を「フィットページ」にすれば、地図が用紙いっぱいに印刷されます。
EPSONプリン...続きを読む

Qwindows10で無料のワードやエクセルが使えますか。教えてください。

windows7からwindows10にアップロードしましたが、ワードやエクセルが有料になりました。無料で使える方法があるようでしたら教えてください。

Aベストアンサー

MicrosoftOnlineはどうでしょうか。
アカウント登録が必要ですが、インストールの必要のない
MicrosoftOfficeのWord、Excel、PowerPointが無料で使えます。
アカウント登録も無料です。
https://www.office.com/
「オンライン アプリを今すぐ使う」の下の
使いたいアプリをクリックしてください。

私はMacですが、友人のWord書類を開く時などに
使っています。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QWordで、1ページを丸ごと削除するには?

1ページしか必要ないのに、真っ白な2ページ目がその下に表示されてしまった場合、この余分な2ページ目を一括削除(消去)する為に、何かいい方法があるでしょうか?

Aベストアンサー

<表示されてしまった場合>
これはそれなりに理由があるわけで、改ページや改行によって、次のページにまで入力が及んでいる時にそうなります。
特に罫線で表を作成し、ページの下一杯まで罫線を引いたときなどには、よくなる現象です。

さて、メニューの「表示」で段落記号にチェックが入っていないと、改行や改ページなどの入力情報が見えず、白紙のページを全て選択→削除してもそのままということが良くあります。
1 改行マークが白紙のページの先頭に入っていれば、それをBackSpaceで消してやる。
2 罫線を使っている場合は、それでも効果がない場合がありますが、その時は行数を増やしてやる。
などの方法があります。


人気Q&Aランキング