質問編集履歴

2

誤字を訂正しました。

2016/07/15 09:38

投稿

besuko
besuko

スコア16

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,11 @@
4
4
 
5
5
  Rails 4.1.0
6
6
 
7
+ geocoder 1.3.7
8
+
7
9
  gmaps4rails 2.1.2
10
+
11
+
8
12
 
9
13
 
10
14
 
@@ -18,19 +22,21 @@
18
22
 
19
23
  店舗情報は店舗が直接入力出来るようにしています。
20
24
 
21
- gem```geocoder```を用いて入力してもらった住所から緯度・経度を取得し、GoogleMapsにマーカーを落とすようにしましたが実際の位置とはズレている事が多いです。
25
+ gem```geocoder```を用いて入力してもらった住所から緯度・経度を自動で取得し、GoogleMapsにマーカーを落とすようにしましたが実際の位置とはズレている事が多いです。
22
26
 
23
27
 
24
28
 
25
- 位置にズレがある場合は入力画面、もしくは確認画面で補正する方法はありませんでしょうか。
29
+ 位置にズレがある場合は編集ページ(shop/edit.html.erb)で補正する方法はありませんでしょうか。
26
30
 
27
- その際表示するGoogleMaps上でマーカーを直接動かして頂き、その位置の緯度・経度を取得しデータベースに保存できればベストだと考えています。
31
+ GoogleMapsに表示されるマーカーを直接動かして、その位置の緯度・経度を取得しデータベースに保存できればベストだと考えています。
28
32
 
29
33
 
30
34
 
31
- マーカー位置をドラッグでの移動は出来ましたが、際の座標取得方法が分からずにいます。
35
+ マーカー位置をドラッグでの移動は出来ましたが、緯度・経度取得とデータベースでの更新方法が分からずにいます。
32
36
 
37
+
38
+
33
- 座標の取得と、取得た座標をデータベースへの保存方法を教え頂けせんでょうか
39
+ なんなく更新時も```geocoder```が作動して住所から自動で取得された座標が反映されっている気もますが
34
40
 
35
41
 
36
42
 

1

教えて頂きました解答例を元にedit\.html\.erbの内容を訂正致しました→【ruby on rails - Create Draggable Markers and save them in th

2016/07/15 09:38

投稿

besuko
besuko

スコア16

test CHANGED
@@ -1 +1 @@
1
- 【Gmaps4Rails】マーカー位置から座標取得と保存
1
+ 【Gmaps4Rails】マーカー位置から座標取得と保存方法を知りたい
test CHANGED
@@ -64,30 +64,52 @@
64
64
 
65
65
  ```
66
66
 
67
- shops/show.html.erb
67
+ view/shops/edit.html.erb
68
68
 
69
- <div style='width: 800px;'>
69
+ <script type="text/javascript">
70
70
 
71
- <div id="map" style='width: 800px; height: 400px;'></div>
71
+ handler = Gmaps.build('Google');
72
72
 
73
- </div>
73
+ //データベースに保存されている座標を取得
74
+
75
+ handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
76
+
77
+ var markers = handler.addMarkers(<%= raw @hash.to_json %>,{draggable: true});
78
+
79
+ handler.bounds.extendWith(markers);
80
+
81
+ handler.fitMapToBounds();
82
+
83
+ });
74
84
 
75
85
 
76
86
 
77
- <script type="text/javascript">
87
+ //add markers to original json
78
88
 
79
- handler = Gmaps.build('Google');
89
+ _.each(<%= raw @hash.to_json %>, function(json, index){
80
90
 
81
- handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
91
+ json.marker = markers[index];
82
92
 
83
- markers = handler.addMarkers(<%=raw @hash.to_json %>,{draggable: true});
93
+ });
84
94
 
85
- handler.bounds.extendWith(markers);
86
95
 
87
- handler.fitMapToBounds();
88
96
 
89
- });
97
+ //add dragend event to markers, triggered when you drop them
90
98
 
99
+ _.each(<%= raw @hash.to_json %>, function(json){
100
+
101
+ google.maps.event.addListener(json.marker.getServiceObject(), "dragend", function(event) {
102
+
103
+ var lat = event.latLng.lat();
104
+
105
+ var lng = event.latLng.lng();
106
+
107
+ console.log('Marker with id: ' + json.id + ' dropped hat lat: ' + lat + ' and lng: ' + lng)
108
+
109
+ });
110
+
111
+ });
112
+
91
- </script>
113
+ </script>
92
114
 
93
115
  ```