質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

受付中

【Gmaps4Rails】マーカー位置から座標取得と保存方法を知りたい

besuko
besuko

総合スコア16

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

1回答

0リアクション

0クリップ

3085閲覧

投稿2016/07/14 07:43

編集2016/07/15 09:38

##環境
Ruby 2.1.0
Rails 4.1.0
geocoder 1.3.7
gmaps4rails 2.1.2

##GoogleMapsでマーカー位置座標の取得
Railsで店舗検索サイトを作成しています。
GoogleMaps表示にはgmaps4railsを用いています。

店舗情報は店舗が直接入力出来るようにしています。
gemgeocoderを用いて入力してもらった住所から緯度・経度を自動で取得し、GoogleMapsにマーカーを落とすようにしましたが実際の位置とはズレている事が多いです。

位置にズレがある場合は編集ページ(shop/edit.html.erb)で補正する方法はありませんでしょうか。
GoogleMapsに表示されるマーカーを直接動かして、その位置の緯度・経度を取得しデータベースに保存できればベストだと考えています。

マーカー位置をドラッグでの移動は出来ましたが、緯度・経度の再取得とデータベースでの更新方法が分からずにいます。

なんとなく、更新時もgeocoderが作動して住所から自動で取得された座標が反映されてしまっている気もしますが。。

shops_contrller.rb def edit @shop = Shop.find(params[:id]) @hash = Gmaps4rails.build_markers(@shop) do |shop, marker| marker.lat shop.latitude marker.lng shop.longitude marker.infowindow shop.name marker.json({ title: shop.name }) end respond_with(@shop) end
view/shops/edit.html.erb <script type="text/javascript"> handler = Gmaps.build('Google'); //データベースに保存されている座標を取得 handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){ var markers = handler.addMarkers(<%= raw @hash.to_json %>,{draggable: true}); handler.bounds.extendWith(markers); handler.fitMapToBounds(); }); //add markers to original json _.each(<%= raw @hash.to_json %>, function(json, index){ json.marker = markers[index]; }); //add dragend event to markers, triggered when you drop them _.each(<%= raw @hash.to_json %>, function(json){ google.maps.event.addListener(json.marker.getServiceObject(), "dragend", function(event) { var lat = event.latLng.lat(); var lng = event.latLng.lng(); console.log('Marker with id: ' + json.id + ' dropped hat lat: ' + lat + ' and lng: ' + lng) }); }); </script>

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。