geocoder_here_maps 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +3 -0
- data/Gemfile.lock +2 -2
- data/geocoder_here_maps.gemspec +1 -1
- data/lib/geocoder/lookups/concerns/here_lookup_default_methods.rb +43 -0
- data/lib/geocoder/lookups/here_calculate_route.rb +40 -0
- data/lib/geocoder/lookups/here_suggest.rb +34 -0
- data/lib/geocoder/results/here_calculate_route.rb +60 -0
- data/lib/{geocoder_here_maps/geocoder/results/here_autocomplete.rb → geocoder/results/here_suggest.rb} +2 -2
- data/lib/geocoder_here_maps.rb +9 -3
- data/lib/geocoder_here_maps/here.rb +13 -0
- data/lib/geocoder_here_maps/version.rb +1 -1
- metadata +12 -9
- data/lib/.DS_Store +0 -0
- data/lib/geocoder_here_maps/geocoder/lookups/here_autocomplete.rb +0 -53
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 93381dfd6734e4661e3de0282bedc8c00fb7fc98
|
4
|
+
data.tar.gz: a8ae075605a5bb0bbc97586eaa9655d7dcd6efd4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 620c2318236c37f907bc3ebcb33017e3f3676f2bd3f7547540738d339fb0f836b910227f6dd9fb2a936fe7a8070c088a8443219725fae5d1a3f1c33dd7f065bf
|
7
|
+
data.tar.gz: 854a8f3a9c7c6d98839b04d83cc41de3150dff7979e08dc9c7c9148abaaa02761c80e98ae8dde7032942c030d327f13778c8d19f74ee540480c187a01ee325ef
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
data/geocoder_here_maps.gemspec
CHANGED
@@ -0,0 +1,43 @@
|
|
1
|
+
module Geocoder::Lookup
|
2
|
+
module HereLookupDefaultMethods
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
def handle
|
6
|
+
:here
|
7
|
+
end
|
8
|
+
|
9
|
+
def required_api_key_parts
|
10
|
+
["app_id", "app_code"]
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def query_url_here_options(query)
|
16
|
+
options = {
|
17
|
+
app_id: api_key,
|
18
|
+
app_code: api_code,
|
19
|
+
language: (query.language || configuration.language)
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
def api_key
|
24
|
+
if (a = configuration.api_key)
|
25
|
+
return a.first if a.is_a?(Array)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def api_code
|
30
|
+
if (a = configuration.api_key)
|
31
|
+
return a.last if a.is_a?(Array)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def domain
|
36
|
+
if configuration.cit
|
37
|
+
'cit.api.here.com'
|
38
|
+
else
|
39
|
+
'api.here.com'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Geocoder::Lookup
|
2
|
+
class HereCalculateRoute < Base
|
3
|
+
include HereLookupDefaultMethods
|
4
|
+
|
5
|
+
def name
|
6
|
+
"HereCalculateRoute"
|
7
|
+
end
|
8
|
+
|
9
|
+
private
|
10
|
+
|
11
|
+
def base_query_url(query)
|
12
|
+
"#{protocol}://route.#{domain}/routing/7.2/calculateroute.json?"
|
13
|
+
end
|
14
|
+
|
15
|
+
def results(query)
|
16
|
+
return [] unless doc = fetch_data(query)
|
17
|
+
return [] unless doc["response"] && doc["response"]["route"]
|
18
|
+
|
19
|
+
r = doc["response"]["route"]
|
20
|
+
|
21
|
+
if r.is_a?(Array)
|
22
|
+
return r
|
23
|
+
else
|
24
|
+
return []
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def query_url_params(query)
|
29
|
+
super.merge(query_url_here_options(query)).merge(
|
30
|
+
waypoints_hash(query.to_param)
|
31
|
+
)
|
32
|
+
end
|
33
|
+
|
34
|
+
def waypoints_hash(waypoints)
|
35
|
+
waypoints.each_with_object({}).with_index do |(point, hash), index|
|
36
|
+
hash["waypoint#{index}"] = point.join(',')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Geocoder::Lookup
|
2
|
+
class HereSuggest < Base
|
3
|
+
include HereLookupDefaultMethods
|
4
|
+
|
5
|
+
def name
|
6
|
+
"HereSuggest"
|
7
|
+
end
|
8
|
+
|
9
|
+
private
|
10
|
+
|
11
|
+
def base_query_url(query)
|
12
|
+
"#{protocol}://autocomplete.geocoder.#{domain}/6.2/suggest.json?"
|
13
|
+
end
|
14
|
+
|
15
|
+
def results(query)
|
16
|
+
return [] unless doc = fetch_data(query)
|
17
|
+
return [] unless doc['suggestions']
|
18
|
+
|
19
|
+
r = doc['suggestions']
|
20
|
+
|
21
|
+
if r.is_a?(Array)
|
22
|
+
return r
|
23
|
+
else
|
24
|
+
return []
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def query_url_params(query)
|
29
|
+
super.merge(query_url_here_options(query)).merge(
|
30
|
+
query: query.sanitized_text
|
31
|
+
)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
module Geocoder::Result
|
2
|
+
class HereCalculateRoute
|
3
|
+
# data (hash) fetched from geocoding service
|
4
|
+
attr_accessor :data
|
5
|
+
|
6
|
+
# true if result came from cache, false if from request to geocoding
|
7
|
+
# service; nil if cache is not configured
|
8
|
+
attr_accessor :cache_hit
|
9
|
+
|
10
|
+
##
|
11
|
+
# Takes a hash of data from a parsed geocoding service response.
|
12
|
+
#
|
13
|
+
def initialize(data)
|
14
|
+
@data = data
|
15
|
+
@cache_hit = nil
|
16
|
+
end
|
17
|
+
|
18
|
+
def waypoint
|
19
|
+
@data['waypoint']
|
20
|
+
end
|
21
|
+
|
22
|
+
def leg
|
23
|
+
@data['leg']
|
24
|
+
end
|
25
|
+
|
26
|
+
def shape
|
27
|
+
@data['shape']
|
28
|
+
end
|
29
|
+
|
30
|
+
def maneuver
|
31
|
+
leg['maneuver']
|
32
|
+
end
|
33
|
+
|
34
|
+
def mode
|
35
|
+
@data['mode']
|
36
|
+
end
|
37
|
+
|
38
|
+
def distance
|
39
|
+
summary_data['distance']
|
40
|
+
end
|
41
|
+
|
42
|
+
def travel_time
|
43
|
+
summary_data['travelTime']
|
44
|
+
end
|
45
|
+
|
46
|
+
def traffic_time
|
47
|
+
summary_data['trafficTime']
|
48
|
+
end
|
49
|
+
|
50
|
+
def base_time
|
51
|
+
summary_data['baseTime']
|
52
|
+
end
|
53
|
+
|
54
|
+
private # ----------------------------------------------------------------
|
55
|
+
|
56
|
+
def summary_data
|
57
|
+
@data['summary']
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
data/lib/geocoder_here_maps.rb
CHANGED
@@ -1,12 +1,18 @@
|
|
1
1
|
require 'geocoder'
|
2
2
|
require "geocoder_here_maps/version"
|
3
|
-
require "
|
4
|
-
require "geocoder_here_maps/
|
3
|
+
require "geocoder/lookups/concerns/here_lookup_default_methods.rb"
|
4
|
+
require "geocoder_here_maps/here"
|
5
|
+
|
6
|
+
require "geocoder/lookups/here_suggest"
|
7
|
+
require "geocoder/results/here_suggest"
|
8
|
+
|
9
|
+
require "geocoder/lookups/here_calculate_route"
|
10
|
+
require "geocoder/results/here_calculate_route"
|
5
11
|
|
6
12
|
module GeocoderHereMaps
|
7
13
|
class << self
|
8
14
|
def load
|
9
|
-
Geocoder::Lookup.street_services
|
15
|
+
Geocoder::Lookup.street_services += %i[here_suggest here_calculate_route]
|
10
16
|
end
|
11
17
|
end
|
12
18
|
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require "geocoder/lookups/here"
|
2
|
+
|
3
|
+
module Geocoder::Lookup
|
4
|
+
Here.class_eval do
|
5
|
+
include HereLookupDefaultMethods
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def base_query_url(query)
|
10
|
+
"#{protocol}://#{if query.reverse_geocode? then 'reverse.' end}geocoder.#{domain}/6.2/#{if query.reverse_geocode? then 'reverse' end}geocode.json?"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: geocoder_here_maps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arpit Jain
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -56,16 +56,16 @@ dependencies:
|
|
56
56
|
name: geocoder
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 1.5.1
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 1.5.1
|
69
69
|
description:
|
70
70
|
email:
|
71
71
|
- arpit@bigbinary.com
|
@@ -86,11 +86,14 @@ files:
|
|
86
86
|
- bin/console
|
87
87
|
- bin/setup
|
88
88
|
- geocoder_here_maps.gemspec
|
89
|
-
- lib
|
89
|
+
- lib/geocoder/lookups/concerns/here_lookup_default_methods.rb
|
90
|
+
- lib/geocoder/lookups/here_calculate_route.rb
|
91
|
+
- lib/geocoder/lookups/here_suggest.rb
|
92
|
+
- lib/geocoder/results/here_calculate_route.rb
|
93
|
+
- lib/geocoder/results/here_suggest.rb
|
90
94
|
- lib/geocoder_here_maps.rb
|
91
95
|
- lib/geocoder_here_maps/.DS_Store
|
92
|
-
- lib/geocoder_here_maps/
|
93
|
-
- lib/geocoder_here_maps/geocoder/results/here_autocomplete.rb
|
96
|
+
- lib/geocoder_here_maps/here.rb
|
94
97
|
- lib/geocoder_here_maps/version.rb
|
95
98
|
homepage: ''
|
96
99
|
licenses:
|
data/lib/.DS_Store
DELETED
Binary file
|
@@ -1,53 +0,0 @@
|
|
1
|
-
module GeocoderHereMaps
|
2
|
-
class Geocoder::Lookup::HereAutocomplete < Geocoder::Lookup::Here
|
3
|
-
def name
|
4
|
-
"HereAutocomplete"
|
5
|
-
end
|
6
|
-
|
7
|
-
def query_url(query)
|
8
|
-
base_query_url(query) + url_query_string(query)
|
9
|
-
end
|
10
|
-
|
11
|
-
private
|
12
|
-
|
13
|
-
def base_query_url(query)
|
14
|
-
"#{protocol}://autocomplete.geocoder.api.here.com/6.2/suggest.json?"
|
15
|
-
end
|
16
|
-
|
17
|
-
def results(query)
|
18
|
-
return [] unless doc = fetch_data(query)
|
19
|
-
return [] unless doc['suggestions']
|
20
|
-
|
21
|
-
r = doc['suggestions']
|
22
|
-
|
23
|
-
if r.is_a?(Array)
|
24
|
-
return r
|
25
|
-
else
|
26
|
-
return []
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def query_url_here_options(query)
|
31
|
-
options = {
|
32
|
-
app_id: api_key,
|
33
|
-
app_code: api_code,
|
34
|
-
language: (query.language || configuration.language)
|
35
|
-
}
|
36
|
-
|
37
|
-
unless (country = query.options[:country]).nil?
|
38
|
-
options[:country] = country
|
39
|
-
end
|
40
|
-
|
41
|
-
unless (mapview = query.options[:bounds]).nil?
|
42
|
-
options[:mapview] = mapview.map{ |point| "%f,%f" % point }.join(';')
|
43
|
-
end
|
44
|
-
options
|
45
|
-
end
|
46
|
-
|
47
|
-
def query_url_params(query)
|
48
|
-
super.merge(query_url_here_options(query)).merge(
|
49
|
-
query: query.sanitized_text
|
50
|
-
)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|