質問編集履歴

9

addressでループを回す

2017/09/11 05:59

投稿

Manamin
Manamin

スコア14

test CHANGED
File without changes
test CHANGED
@@ -238,15 +238,15 @@
238
238
 
239
239
  }
240
240
 
241
-
241
+ address.each do |element|
242
-
242
+
243
- result = address["types"] & check_items
243
+ result = element["types"] & check_items
244
-
244
+
245
- next if result.empty?
245
+ next if result.empty?
246
-
246
+
247
- place[result[0]] = result["long_name"]
247
+ place[result[0]] = element["long_name"]
248
-
248
+
249
- answer.push(place)
249
+ end
250
250
 
251
251
 
252
252
 

8

API keyを削除

2017/09/11 05:59

投稿

Manamin
Manamin

スコア14

test CHANGED
File without changes
test CHANGED
@@ -134,13 +134,7 @@
134
134
 
135
135
 
136
136
 
137
- # API_KEY = 'AIzaSyDEhtQbIdDR_5KQjMBgIPSoEb2IELXYTG0'
138
-
139
- # API_KEY = 'AIzaSyDVUuLJdMwQA_WPJRAJM2ngyKrUK4r_ROw'
137
+ API_KEY = 'Your API Key'
140
-
141
- API_KEY = 'AIzaSyDRK0rZvGzZ2lvu-jW3A3TAExcuEnE5wiU'
142
-
143
- # API_KEY = 'AIzaSyB379FMFKJO5sx58uIVkuAfl6SE9ie08gA'
144
138
 
145
139
 
146
140
 

7

追記

2017/09/11 04:34

投稿

Manamin
Manamin

スコア14

test CHANGED
File without changes
test CHANGED
@@ -117,3 +117,151 @@
117
117
 
118
118
 
119
119
  よろしくお願いします。
120
+
121
+
122
+
123
+
124
+
125
+ 追記
126
+
127
+ ```ruby
128
+
129
+ require 'net/https'
130
+
131
+ require 'uri'
132
+
133
+ require 'json'
134
+
135
+
136
+
137
+ # API_KEY = 'AIzaSyDEhtQbIdDR_5KQjMBgIPSoEb2IELXYTG0'
138
+
139
+ # API_KEY = 'AIzaSyDVUuLJdMwQA_WPJRAJM2ngyKrUK4r_ROw'
140
+
141
+ API_KEY = 'AIzaSyDRK0rZvGzZ2lvu-jW3A3TAExcuEnE5wiU'
142
+
143
+ # API_KEY = 'AIzaSyB379FMFKJO5sx58uIVkuAfl6SE9ie08gA'
144
+
145
+
146
+
147
+ lat = '3.1528496'
148
+
149
+ lng = '101.7015546'
150
+
151
+ rad = '50000'
152
+
153
+
154
+
155
+ # types = 'train_station'
156
+
157
+ # types = 'university'
158
+
159
+ # types = 'school'
160
+
161
+ # types = 'shopping_mall'
162
+
163
+ # types = 'hospital'
164
+
165
+ types = 'bus_station'
166
+
167
+ # types = 'subway_station'
168
+
169
+ # types = 'department_store'
170
+
171
+
172
+
173
+
174
+
175
+ language = 'en'
176
+
177
+
178
+
179
+ uri = URI.parse "https://maps.googleapis.com/maps/api/place/radarsearch/json?location=#{lat},#{lng}&radius=#{rad}&types=#{types}&language=en&key=#{API_KEY}"
180
+
181
+
182
+
183
+ request = Net::HTTP::Get.new(uri.request_uri)
184
+
185
+ response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
186
+
187
+ http.request(request)
188
+
189
+ end
190
+
191
+
192
+
193
+ body = JSON.parse response.body
194
+
195
+ results = body['results']
196
+
197
+
198
+
199
+ results.each do |result|
200
+
201
+ place_id = result['place_id']
202
+
203
+
204
+
205
+ uri2 = URI.parse "https://maps.googleapis.com/maps/api/place/details/json?placeid=#{place_id}&language=en&key=#{API_KEY}"
206
+
207
+
208
+
209
+ request = Net::HTTP::Get.new(uri2.request_uri)
210
+
211
+ response = Net::HTTP.start(uri2.host, uri2.port, use_ssl: uri2.scheme == 'https') do |http|
212
+
213
+ http.request(request)
214
+
215
+ end
216
+
217
+
218
+
219
+ detail = JSON.parse response.body
220
+
221
+ place_detail = detail['result']
222
+
223
+ location = place_detail['geometry']['location']
224
+
225
+ address = place_detail['address_components']
226
+
227
+ check_items = ["street_number", "route", "locality", "administrative_area_level_2", "administrative_area_level_1"]
228
+
229
+ place = {}
230
+
231
+
232
+
233
+ answer = {
234
+
235
+ name:place_detail['name'],
236
+
237
+ lat: location['lat'],
238
+
239
+ lng:location['lng'],
240
+
241
+ address:place_detail['formatted_address'],
242
+
243
+ types:place_detail['types']
244
+
245
+ }
246
+
247
+
248
+
249
+ result = address["types"] & check_items
250
+
251
+ next if result.empty?
252
+
253
+ place[result[0]] = result["long_name"]
254
+
255
+ answer.push(place)
256
+
257
+
258
+
259
+ File.open('./place.json', 'a') do |file|
260
+
261
+ file.puts JSON.pretty_generate(answer)
262
+
263
+ end
264
+
265
+ end
266
+
267
+ ```

6

わかりにくい部分の訂正

2017/09/11 04:33

投稿

Manamin
Manamin

スコア14

test CHANGED
@@ -1 +1 @@
1
- JSON形式で返ってきた値の表示の指定
1
+ JSON形式で返ってきた値の表示方法
test CHANGED
File without changes

5

わかりにくい部分を追加しました

2017/09/08 08:43

投稿

Manamin
Manamin

スコア14

test CHANGED
File without changes
test CHANGED
@@ -90,7 +90,7 @@
90
90
 
91
91
  ```
92
92
 
93
- 最初は以下のようにして表示させたのですが、street_number等の小さい単位のキーがない場合、配列の順番の関係で項目ごとに表示できずずれてしまうので、typesの中身で指定したいです。(nilの時はif文などで表示させないようにする予定です)
93
+ 最初は以下のようにして表示させたのですが、複数のデータを扱う際にstreet_number等の小さい単位のキーがない場合があり、配列の順番の関係で項目ごとに表示できずずれてしまうので、typesの中身で指定したいです。(nilの時はif文などで表示させないようにする予定です)
94
94
 
95
95
  ```ruby
96
96
 

4

コードの追記

2017/09/08 08:41

投稿

Manamin
Manamin

スコア14

test CHANGED
File without changes
test CHANGED
@@ -94,6 +94,8 @@
94
94
 
95
95
  ```ruby
96
96
 
97
+ place_detail = detail['result']
98
+
97
99
  address = place_detail['address_components']
98
100
 
99
101
  answer = {

3

文の変更

2017/09/08 08:37

投稿

Manamin
Manamin

スコア14

test CHANGED
File without changes
test CHANGED
@@ -90,11 +90,13 @@
90
90
 
91
91
  ```
92
92
 
93
- 最初は以下のようにして表示させたのですが、street_number等の小さい単位のキーがない場合があると配列の順番が変わり、項目ごとに表示できずずれてしまうので、typesの中身で指定したいです。(nilの時はif文などで表示させないようにする予定です)
93
+ 最初は以下のようにして表示させたのですが、street_number等の小さい単位のキーがない場合配列の順番の関係で項目ごとに表示できずずれてしまうので、typesの中身で指定したいです。(nilの時はif文などで表示させないようにする予定です)
94
94
 
95
95
  ```ruby
96
96
 
97
97
  address = place_detail['address_components']
98
+
99
+ answer = {
98
100
 
99
101
  street_number:address[0]['long_name'],
100
102
 
@@ -106,6 +108,8 @@
106
108
 
107
109
  area_level_1:address[4]['long_name']
108
110
 
111
+ }
112
+
109
113
  ```
110
114
 
111
115
 

2

文章のわかりにくい部分を変えました。

2017/09/08 08:33

投稿

Manamin
Manamin

スコア14

test CHANGED
File without changes
test CHANGED
@@ -90,7 +90,7 @@
90
90
 
91
91
  ```
92
92
 
93
- 最初は以下のようにして表示させたのですが、street_numberのカラム等がなかったりする場合があるとずれてしまうので、typesの中身で指定したいです。(nilの時はif文などで表示させないようにする予定です)
93
+ 最初は以下のようにして表示させたのですが、street_number小さい単位のキーがな場合があると配列の順番が変わり、項目ごとに表示できれてしまうので、typesの中身で指定したいです。(nilの時はif文などで表示させないようにする予定です)
94
94
 
95
95
  ```ruby
96
96
 

1

間違えて途中で送信してしまいました。

2017/09/08 08:31

投稿

Manamin
Manamin

スコア14

test CHANGED
File without changes
test CHANGED
@@ -90,7 +90,7 @@
90
90
 
91
91
  ```
92
92
 
93
-
93
+ 最初は以下のようにして表示させたのですが、street_numberのカラム等がなかったりする場合があるとずれてしまうので、typesの中身で指定したいです。(nilの時はif文などで表示させないようにする予定です)
94
94
 
95
95
  ```ruby
96
96
 
@@ -107,3 +107,7 @@
107
107
  area_level_1:address[4]['long_name']
108
108
 
109
109
  ```
110
+
111
+
112
+
113
+ よろしくお願いします。