0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

学習44日目

Posted at

内容

google mapの検索機能

前提

  • google mapの表示実装済
  • google mapの緯度と経度のDB保存実装済
  • form内のhidden_fieldにlatitudeとlongitudeを格納
  • 追記部分以外は省略

手順

住所入力部分を記述する。
views/hoges/new.html.erb

<input type="text" id="input_address">
<button id="search_address">検索</button>

javascriptを記述する。
views/hoges/new.html.erb

<script>
    let searchBtn = document.getElementById('search_address')
    searchBtn.addEventListener('click', (e) => {
        e.preventDefault()
        inputStr = document.getElementById('input_address').value
        geocoder.geocode({'address': inputStr}, function(results, status){
            if (status == 'OK') {
                latitude = results[0].geometry.location.lat()
                longitude = results[0].geometry.location.lng()
                document.getElementById("hidden_latitude").value = latitude
                document.getElementById("hidden_longitude").value = longitude
            map = new google.maps.Map(document.getElementById('map'), {
                center: {lat: latitude, lng: longitude},
                zoom: 12,
            });
            marker = new google.maps.Marker({
                position: {lat: latitude, lng: longitude},
                map: map,
                draggable: true,
            });
            } else {
                alert('該当の住所が見つかりませんでした')
            }
        })
    })
</script>

コメント

最初text_fieldに対してinputやchangeイベントが起こった際の処理を記述しようと考えていたが、うまくできなかった。

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?