Module: BaiduApi::Geocoding
- Extended by:
- Geocoding
- Included in:
- Geocoding
- Defined in:
- lib/baidu_api/geocoding.rb,
lib/baidu_api/geocoding/version.rb,
lib/baidu_api/geocoding/v2/geocoder.rb,
lib/baidu_api/geocoding/configuration.rb
Defined Under Namespace
Modules: Exceptions, V2
Classes: Configuration
Constant Summary
collapse
- VERSION =
"1.1.1"
Instance Method Summary
collapse
Instance Method Details
#config ⇒ Object
20
21
22
|
# File 'lib/baidu_api/geocoding.rb', line 20
def config
@@config || fail(ArgumentError, 'Please setup API with BaiduApi::Geocoding.setup(options) before starting!')
end
|
#fetch_accepted_data(data) ⇒ Object
37
38
39
40
41
42
|
# File 'lib/baidu_api/geocoding.rb', line 37
def fetch_accepted_data(data)
%w(ak sk version address city coordtype location pois).inject({}) do |ret, item|
ret[item.intern] = fetch_data(data, item)
ret
end
end
|
#fetch_data(data, key) ⇒ Object
44
45
46
|
# File 'lib/baidu_api/geocoding.rb', line 44
def fetch_data(data, key)
data.fetch(key.intern) { data.fetch(key.to_s, config[key]) }
end
|
#geocode(data = {}) ⇒ Object
24
25
26
27
28
29
|
# File 'lib/baidu_api/geocoding.rb', line 24
def geocode(data = {})
data = fetch_accepted_data(data)
version = data.delete(:version).upcase
geocoder = Object.const_get("BaiduApi::Geocoding::#{version}::Geocoder") rescue fail(ArgumentError, "API version #{version} doesn't exist!")
geocoder.geocode(data)
end
|
#geocode!(data = {}) ⇒ Object
31
32
33
34
35
|
# File 'lib/baidu_api/geocoding.rb', line 31
def geocode!(data = {})
ret = geocode(data)
raise BaiduApi::Geocoding::Exceptions::Failed.new(ret) if ret['status'] != 0
ret
end
|
#setup(options = {}) {|@@config| ... } ⇒ Object
options:
:ak
:sk
:output default: json
:version default: v2
15
16
17
18
|
# File 'lib/baidu_api/geocoding.rb', line 15
def setup(options = {})
@@config = BaiduApi::Geocoding::Configuration.new(options)
yield @@config if block_given?
end
|