質問編集履歴
9
addressでループを回す
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 =
|
243
|
+
result = element["types"] & check_items
|
244
|
-
|
244
|
+
|
245
|
-
next if result.empty?
|
245
|
+
next if result.empty?
|
246
|
-
|
246
|
+
|
247
|
-
place[result[0]] =
|
247
|
+
place[result[0]] = element["long_name"]
|
248
|
-
|
248
|
+
|
249
|
-
|
249
|
+
end
|
250
250
|
|
251
251
|
|
252
252
|
|
8
API keyを削除
test
CHANGED
File without changes
|
test
CHANGED
@@ -134,13 +134,7 @@
|
|
134
134
|
|
135
135
|
|
136
136
|
|
137
|
-
# API_KEY = 'AIzaSyDEhtQbIdDR_5KQjMBgIPSoEb2IELXYTG0'
|
138
|
-
|
139
|
-
|
137
|
+
API_KEY = 'Your API Key'
|
140
|
-
|
141
|
-
API_KEY = 'AIzaSyDRK0rZvGzZ2lvu-jW3A3TAExcuEnE5wiU'
|
142
|
-
|
143
|
-
# API_KEY = 'AIzaSyB379FMFKJO5sx58uIVkuAfl6SE9ie08gA'
|
144
138
|
|
145
139
|
|
146
140
|
|
7
追記
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
わかりにくい部分の訂正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
JSON形式で返ってきた値の表示
|
1
|
+
JSON形式で返ってきた値の表示方法
|
test
CHANGED
File without changes
|
5
わかりにくい部分を追加しました
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
コードの追記
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
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -90,11 +90,13 @@
|
|
90
90
|
|
91
91
|
```
|
92
92
|
|
93
|
-
最初は以下のようにして表示させたのですが、street_number等の小さい単位のキーがない場合
|
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
文章のわかりにくい部分を変えました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -90,7 +90,7 @@
|
|
90
90
|
|
91
91
|
```
|
92
92
|
|
93
|
-
最初は以下のようにして表示させたのですが、street_numberの
|
93
|
+
最初は以下のようにして表示させたのですが、street_number等の小さい単位のキーがない場合があると配列の順番が変わり、項目ごとに表示できずずれてしまうので、typesの中身で指定したいです。(nilの時はif文などで表示させないようにする予定です)
|
94
94
|
|
95
95
|
```ruby
|
96
96
|
|
1
間違えて途中で送信してしまいました。
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
|
+
よろしくお願いします。
|