質問編集履歴
9
addressでループを回す
title
CHANGED
File without changes
|
body
CHANGED
@@ -118,12 +118,12 @@
|
|
118
118
|
address:place_detail['formatted_address'],
|
119
119
|
types:place_detail['types']
|
120
120
|
}
|
121
|
+
address.each do |element|
|
122
|
+
result = element["types"] & check_items
|
123
|
+
next if result.empty?
|
124
|
+
place[result[0]] = element["long_name"]
|
125
|
+
end
|
121
126
|
|
122
|
-
result = address["types"] & check_items
|
123
|
-
next if result.empty?
|
124
|
-
place[result[0]] = result["long_name"]
|
125
|
-
answer.push(place)
|
126
|
-
|
127
127
|
File.open('./place.json', 'a') do |file|
|
128
128
|
file.puts JSON.pretty_generate(answer)
|
129
129
|
end
|
8
API keyを削除
title
CHANGED
File without changes
|
body
CHANGED
@@ -66,10 +66,7 @@
|
|
66
66
|
require 'uri'
|
67
67
|
require 'json'
|
68
68
|
|
69
|
-
# API_KEY = 'AIzaSyDEhtQbIdDR_5KQjMBgIPSoEb2IELXYTG0'
|
70
|
-
|
69
|
+
API_KEY = 'Your API Key'
|
71
|
-
API_KEY = 'AIzaSyDRK0rZvGzZ2lvu-jW3A3TAExcuEnE5wiU'
|
72
|
-
# API_KEY = 'AIzaSyB379FMFKJO5sx58uIVkuAfl6SE9ie08gA'
|
73
70
|
|
74
71
|
lat = '3.1528496'
|
75
72
|
lng = '101.7015546'
|
7
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -57,4 +57,78 @@
|
|
57
57
|
}
|
58
58
|
```
|
59
59
|
|
60
|
-
よろしくお願いします。
|
60
|
+
よろしくお願いします。
|
61
|
+
|
62
|
+
|
63
|
+
追記
|
64
|
+
```ruby
|
65
|
+
require 'net/https'
|
66
|
+
require 'uri'
|
67
|
+
require 'json'
|
68
|
+
|
69
|
+
# API_KEY = 'AIzaSyDEhtQbIdDR_5KQjMBgIPSoEb2IELXYTG0'
|
70
|
+
# API_KEY = 'AIzaSyDVUuLJdMwQA_WPJRAJM2ngyKrUK4r_ROw'
|
71
|
+
API_KEY = 'AIzaSyDRK0rZvGzZ2lvu-jW3A3TAExcuEnE5wiU'
|
72
|
+
# API_KEY = 'AIzaSyB379FMFKJO5sx58uIVkuAfl6SE9ie08gA'
|
73
|
+
|
74
|
+
lat = '3.1528496'
|
75
|
+
lng = '101.7015546'
|
76
|
+
rad = '50000'
|
77
|
+
|
78
|
+
# types = 'train_station'
|
79
|
+
# types = 'university'
|
80
|
+
# types = 'school'
|
81
|
+
# types = 'shopping_mall'
|
82
|
+
# types = 'hospital'
|
83
|
+
types = 'bus_station'
|
84
|
+
# types = 'subway_station'
|
85
|
+
# types = 'department_store'
|
86
|
+
|
87
|
+
|
88
|
+
language = 'en'
|
89
|
+
|
90
|
+
uri = URI.parse "https://maps.googleapis.com/maps/api/place/radarsearch/json?location=#{lat},#{lng}&radius=#{rad}&types=#{types}&language=en&key=#{API_KEY}"
|
91
|
+
|
92
|
+
request = Net::HTTP::Get.new(uri.request_uri)
|
93
|
+
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
|
94
|
+
http.request(request)
|
95
|
+
end
|
96
|
+
|
97
|
+
body = JSON.parse response.body
|
98
|
+
results = body['results']
|
99
|
+
|
100
|
+
results.each do |result|
|
101
|
+
place_id = result['place_id']
|
102
|
+
|
103
|
+
uri2 = URI.parse "https://maps.googleapis.com/maps/api/place/details/json?placeid=#{place_id}&language=en&key=#{API_KEY}"
|
104
|
+
|
105
|
+
request = Net::HTTP::Get.new(uri2.request_uri)
|
106
|
+
response = Net::HTTP.start(uri2.host, uri2.port, use_ssl: uri2.scheme == 'https') do |http|
|
107
|
+
http.request(request)
|
108
|
+
end
|
109
|
+
|
110
|
+
detail = JSON.parse response.body
|
111
|
+
place_detail = detail['result']
|
112
|
+
location = place_detail['geometry']['location']
|
113
|
+
address = place_detail['address_components']
|
114
|
+
check_items = ["street_number", "route", "locality", "administrative_area_level_2", "administrative_area_level_1"]
|
115
|
+
place = {}
|
116
|
+
|
117
|
+
answer = {
|
118
|
+
name:place_detail['name'],
|
119
|
+
lat: location['lat'],
|
120
|
+
lng:location['lng'],
|
121
|
+
address:place_detail['formatted_address'],
|
122
|
+
types:place_detail['types']
|
123
|
+
}
|
124
|
+
|
125
|
+
result = address["types"] & check_items
|
126
|
+
next if result.empty?
|
127
|
+
place[result[0]] = result["long_name"]
|
128
|
+
answer.push(place)
|
129
|
+
|
130
|
+
File.open('./place.json', 'a') do |file|
|
131
|
+
file.puts JSON.pretty_generate(answer)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
```
|
6
わかりにくい部分の訂正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
JSON形式で返ってきた値の表示
|
1
|
+
JSON形式で返ってきた値の表示方法
|
body
CHANGED
File without changes
|
5
わかりにくい部分を追加しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -44,7 +44,7 @@
|
|
44
44
|
}
|
45
45
|
}
|
46
46
|
```
|
47
|
-
最初は以下のようにして表示させたのですが、street_number等の小さい単位のキーがない場合、配列の順番の関係で項目ごとに表示できずずれてしまうので、typesの中身で指定したいです。(nilの時はif文などで表示させないようにする予定です)
|
47
|
+
最初は以下のようにして表示させたのですが、複数のデータを扱う際にstreet_number等の小さい単位のキーがない場合があり、配列の順番の関係で項目ごとに表示できずずれてしまうので、typesの中身で指定したいです。(nilの時はif文などで表示させないようにする予定です)
|
48
48
|
```ruby
|
49
49
|
place_detail = detail['result']
|
50
50
|
address = place_detail['address_components']
|
4
コードの追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -46,6 +46,7 @@
|
|
46
46
|
```
|
47
47
|
最初は以下のようにして表示させたのですが、street_number等の小さい単位のキーがない場合、配列の順番の関係で項目ごとに表示できずずれてしまうので、typesの中身で指定したいです。(nilの時はif文などで表示させないようにする予定です)
|
48
48
|
```ruby
|
49
|
+
place_detail = detail['result']
|
49
50
|
address = place_detail['address_components']
|
50
51
|
answer = {
|
51
52
|
street_number:address[0]['long_name'],
|
3
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -44,14 +44,16 @@
|
|
44
44
|
}
|
45
45
|
}
|
46
46
|
```
|
47
|
-
最初は以下のようにして表示させたのですが、street_number等の小さい単位のキーがない場合
|
47
|
+
最初は以下のようにして表示させたのですが、street_number等の小さい単位のキーがない場合、配列の順番の関係で項目ごとに表示できずずれてしまうので、typesの中身で指定したいです。(nilの時はif文などで表示させないようにする予定です)
|
48
48
|
```ruby
|
49
49
|
address = place_detail['address_components']
|
50
|
+
answer = {
|
50
51
|
street_number:address[0]['long_name'],
|
51
52
|
route:address[1]['long_name'],
|
52
53
|
locality:address[2]['long_name'],
|
53
54
|
area_level_2:address[3]['long_name'],
|
54
55
|
area_level_1:address[4]['long_name']
|
56
|
+
}
|
55
57
|
```
|
56
58
|
|
57
59
|
よろしくお願いします。
|
2
文章のわかりにくい部分を変えました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -44,7 +44,7 @@
|
|
44
44
|
}
|
45
45
|
}
|
46
46
|
```
|
47
|
-
最初は以下のようにして表示させたのですが、street_number
|
47
|
+
最初は以下のようにして表示させたのですが、street_number等の小さい単位のキーがない場合があると配列の順番が変わり、項目ごとに表示できずずれてしまうので、typesの中身で指定したいです。(nilの時はif文などで表示させないようにする予定です)
|
48
48
|
```ruby
|
49
49
|
address = place_detail['address_components']
|
50
50
|
street_number:address[0]['long_name'],
|
1
間違えて途中で送信してしまいました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -44,7 +44,7 @@
|
|
44
44
|
}
|
45
45
|
}
|
46
46
|
```
|
47
|
-
|
47
|
+
最初は以下のようにして表示させたのですが、street_numberのカラム等がなかったりする場合があるとずれてしまうので、typesの中身で指定したいです。(nilの時はif文などで表示させないようにする予定です)
|
48
48
|
```ruby
|
49
49
|
address = place_detail['address_components']
|
50
50
|
street_number:address[0]['long_name'],
|
@@ -52,4 +52,6 @@
|
|
52
52
|
locality:address[2]['long_name'],
|
53
53
|
area_level_2:address[3]['long_name'],
|
54
54
|
area_level_1:address[4]['long_name']
|
55
|
-
```
|
55
|
+
```
|
56
|
+
|
57
|
+
よろしくお願いします。
|