underpass 0.0.6 → 0.0.7
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 +5 -5
- data/lib/underpass/ql/parser.rb +17 -1
- data/lib/underpass/ql/shape.rb +5 -0
- data/lib/underpass/version.rb +1 -1
- metadata +71 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 11d35c1d3797aadc218d103eb479bff53656006e
|
4
|
+
data.tar.gz: 11274bfe826d9fad56468589b8684d700b05d65a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 841e51e09bfb4aff0878c796034d096bf73b660013ee65e0649708c238fa069b524958b3a36213e5d1aaecbaa1bbb5e7b604d4456a745e0bd631f03f7310bb57
|
7
|
+
data.tar.gz: 73a4d865183f8401e4dece8126f95fcd8b229d22a0a2d55e2e9d7b92b2a58bf39c067a9f4b75bf8ac06f2a2295b63502c6447f6b01b1fea878493ad67bf337a6
|
data/lib/underpass/ql/parser.rb
CHANGED
@@ -26,7 +26,7 @@ module Underpass
|
|
26
26
|
end
|
27
27
|
|
28
28
|
@ways.each_value do |way|
|
29
|
-
@matches <<
|
29
|
+
@matches << way_matches(way) if way.key?(:tags)
|
30
30
|
end
|
31
31
|
|
32
32
|
@matches
|
@@ -34,6 +34,18 @@ module Underpass
|
|
34
34
|
|
35
35
|
private
|
36
36
|
|
37
|
+
def way_matches(way)
|
38
|
+
if open_way?(way)
|
39
|
+
polygon_from_way(way, @nodes)
|
40
|
+
else
|
41
|
+
line_string_from_way(way, @nodes)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def open_way?(way)
|
46
|
+
Underpass::QL::Shape.open_way?(way)
|
47
|
+
end
|
48
|
+
|
37
49
|
def point_from_node(node)
|
38
50
|
Underpass::QL::Shape.point_from_node(node)
|
39
51
|
end
|
@@ -42,6 +54,10 @@ module Underpass
|
|
42
54
|
Underpass::QL::Shape.polygon_from_way(way, nodes)
|
43
55
|
end
|
44
56
|
|
57
|
+
def line_string_from_way(way, nodes)
|
58
|
+
Underpass::QL::Shape.line_string_from_way(way, nodes)
|
59
|
+
end
|
60
|
+
|
45
61
|
def extract_indexed_nodes(elements)
|
46
62
|
nodes = elements.select { |e| e[:type] == 'node' }
|
47
63
|
nodes.map { |e| [e[:id], e] }.to_h
|
data/lib/underpass/ql/shape.rb
CHANGED
@@ -5,6 +5,10 @@ module Underpass
|
|
5
5
|
# Contains factories for various RGeo shapes from ways and nodes parsed
|
6
6
|
# with the Parser class
|
7
7
|
class Shape
|
8
|
+
def self.open_way?(way)
|
9
|
+
way[:nodes].first == way[:nodes].last
|
10
|
+
end
|
11
|
+
|
8
12
|
def self.polygon_from_way(way, nodes)
|
9
13
|
f = RGeo::Geographic.spherical_factory(srid: 4326)
|
10
14
|
f.polygon(line_string_from_way(way, nodes))
|
@@ -26,6 +30,7 @@ module Underpass
|
|
26
30
|
|
27
31
|
# There should be some sort of 'decorator' to return an object
|
28
32
|
# with the shape and a copy of the tags as
|
33
|
+
# Bonus: try to make it RGeo::GeoJSON.encode compatible
|
29
34
|
# {
|
30
35
|
# tags: way[:tags],
|
31
36
|
# shape: shape
|
data/lib/underpass/version.rb
CHANGED
metadata
CHANGED
@@ -1,55 +1,115 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: underpass
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Janos Rusiczki
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-05-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rgeo
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 2.0.0
|
20
17
|
- - "~>"
|
21
18
|
- !ruby/object:Gem::Version
|
22
19
|
version: '2.0'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 2.0.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '2.0'
|
27
30
|
- - ">="
|
28
31
|
- !ruby/object:Gem::Version
|
29
32
|
version: 2.0.0
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: guard
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
30
37
|
- - "~>"
|
31
38
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
39
|
+
version: 2.15.0
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 2.15.0
|
43
|
+
type: :development
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 2.15.0
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 2.15.0
|
33
53
|
- !ruby/object:Gem::Dependency
|
34
|
-
name: rspec
|
54
|
+
name: guard-rspec
|
35
55
|
requirement: !ruby/object:Gem::Requirement
|
36
56
|
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: 4.7.3
|
37
60
|
- - ">="
|
38
61
|
- !ruby/object:Gem::Version
|
39
|
-
version:
|
62
|
+
version: 4.7.3
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
40
67
|
- - "~>"
|
41
68
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
69
|
+
version: 4.7.3
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: 4.7.3
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: guard-rubocop
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 1.3.0
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.3.0
|
43
83
|
type: :development
|
44
84
|
prerelease: false
|
45
85
|
version_requirements: !ruby/object:Gem::Requirement
|
46
86
|
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.3.0
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: 1.3.0
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: rspec
|
95
|
+
requirement: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - "~>"
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '3.8'
|
47
100
|
- - ">="
|
48
101
|
- !ruby/object:Gem::Version
|
49
102
|
version: 3.8.0
|
103
|
+
type: :development
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
50
107
|
- - "~>"
|
51
108
|
- !ruby/object:Gem::Version
|
52
109
|
version: '3.8'
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: 3.8.0
|
53
113
|
- !ruby/object:Gem::Dependency
|
54
114
|
name: simplecov
|
55
115
|
requirement: !ruby/object:Gem::Requirement
|
@@ -102,7 +162,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
102
162
|
- !ruby/object:Gem::Version
|
103
163
|
version: '0'
|
104
164
|
requirements: []
|
105
|
-
|
165
|
+
rubyforge_project:
|
166
|
+
rubygems_version: 2.6.14
|
106
167
|
signing_key:
|
107
168
|
specification_version: 4
|
108
169
|
summary: A library that translates Overpass API responses into RGeo objects
|