質問するログイン新規登録

質問編集履歴

9

addressでループを回す

2017/09/11 05:59

投稿

Manamin
Manamin

スコア14

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を削除

2017/09/11 05:59

投稿

Manamin
Manamin

スコア14

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
- # API_KEY = 'AIzaSyDVUuLJdMwQA_WPJRAJM2ngyKrUK4r_ROw'
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

追記

2017/09/11 04:34

投稿

Manamin
Manamin

スコア14

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

わかりにくい部分の訂正

2017/09/11 04:33

投稿

Manamin
Manamin

スコア14

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

5

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

2017/09/08 08:43

投稿

Manamin
Manamin

スコア14

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

コードの追記

2017/09/08 08:41

投稿

Manamin
Manamin

スコア14

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

文の変更

2017/09/08 08:37

投稿

Manamin
Manamin

スコア14

title CHANGED
File without changes
body CHANGED
@@ -44,14 +44,16 @@
44
44
  }
45
45
  }
46
46
  ```
47
- 最初は以下のようにして表示させたのですが、street_number等の小さい単位のキーがない場合があると配列の順番が変わり、項目ごとに表示できずずれてしまうので、typesの中身で指定したいです。(nilの時はif文などで表示させないようにする予定です)
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

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

2017/09/08 08:33

投稿

Manamin
Manamin

スコア14

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
  address = place_detail['address_components']
50
50
  street_number:address[0]['long_name'],

1

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

2017/09/08 08:31

投稿

Manamin
Manamin

スコア14

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
+ よろしくお願いします。