0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

jsフレームワークstimulusでyahoo地図を操作してみた(その二)

Last updated at Posted at 2019-05-24

前回の続き。
今回参照したサイトはこちら……というか今回は、このサイトの記述を
【stimulus使用+「googlemap→yahoo地図」】
に書き換えただけです。

やったこと、やる予定のこと

0. railsアプリへのstimulus適用(以前書いた記事)

1. stimulusでyahoo地図を表示(前回)

2. 表示した地図上で、指定座標に移動(←今ここ)

……今回は「指定座標」はコードに直接書いています。

3. 住所から座標を取得し、それをDBに登録

4. 「3」で登録した情報を選択し、yahoo地図上でその場所に移動(最終回)

ということで、前回作成した地図上を移動できるようにしてみます。

##まずは、移動用のボタンを用意する。

app/views/users/test.html.erb

<div data-controller="moving">

<!-- 中略 -->
  <input type="button" id="tokyo" value="東京" data-action="click->moving#tokyo">

  <input type="button" id="shinbashi" value="新橋" data-action="click->moving#sinbasi">

  <input type="button" id="shinagawa" value="品川" data-action="click->moving#sinagawa">


</div>

ボタンを三個用意して、それぞれにデータアクション名を設定……「data-action="click->moving#tokyo"」(又は「sinbasi」「sinagawa」)
なおこの記述は、【「data-controller="moving"」であるdiv要素内で行う。

このアクション名設定により、ボタンクリックするとstimulusのアクションが発生するので……

##アクション発生時の処理をstimulus用jsファイルに記述
……前回作成したjsファイルに、

app/javascript/controllers/moving_controller.js
  initialize() {

       this.map = new Y.Map(this.mapTarget.id);
       this.map.drawMap(new Y.LatLng(35.66572, 139.73100), 17, Y.LayerSetId.NORMAL);

       var center = new Y.CenterMarkControl
       var control = new Y.LayerSetControl();
       this.map.addControl(center);
       this.map.addControl(control);

  }

//↓追記
  tokyo() {
    this.map.panTo(new Y.LatLng(35.680865,139.767036), true);
  }

  sinbasi() {
    this.map.panTo(new Y.LatLng(35.666397,139.758153), true);
  }

  sinagawa() {
    this.map.panTo(new Y.LatLng(35.629867,139.74015), true);
  }
//↑追記

「35.680865,139.767036」などの座標は、参照サイトから写してきた実際の位置情報です。

これで実行してみると……(【20190624変更】yahooMapをそのまま貼り付けるのは問題がありそうなため、画像をモザイク付きのものに変更しました)
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3431303637342f62376533303163352d393731662d376538632d393335302d3934646530306363326561352e706e67.png

「東京」「新橋」「品川」のボタンが追加され、クリックするとそれぞれの場所に移動できるようになりました。

とりあえずは今回はここまで、続きはこちらです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?