underpass 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 38e561ec9d01ca1013783c0ea8cedb34b00d52938db669d3f5feb4a10d7fd155
4
- data.tar.gz: a99031218fec8de7c13d48df9c54e222445a2eb9dbb3399b1ab0605fe390d263
2
+ SHA1:
3
+ metadata.gz: 11d35c1d3797aadc218d103eb479bff53656006e
4
+ data.tar.gz: 11274bfe826d9fad56468589b8684d700b05d65a
5
5
  SHA512:
6
- metadata.gz: 0d89ebcb48cb6309caee1947acde9f8c946568256017cf4387155952ed2c4e13dbfc8a1d226b4127db7580fe7b70ad7c7250094124f2b9b81eef26338db650e6
7
- data.tar.gz: 9ea52cceb5fcf0edb4ee634a4c012e6ffbc65c288be0f632fe77639f87aa6b4cee8996315eda23612515bc88cc72abd928f872249cbef95efb3f7e0712747cfe
6
+ metadata.gz: 841e51e09bfb4aff0878c796034d096bf73b660013ee65e0649708c238fa069b524958b3a36213e5d1aaecbaa1bbb5e7b604d4456a745e0bd631f03f7310bb57
7
+ data.tar.gz: 73a4d865183f8401e4dece8126f95fcd8b229d22a0a2d55e2e9d7b92b2a58bf39c067a9f4b75bf8ac06f2a2295b63502c6447f6b01b1fea878493ad67bf337a6
@@ -26,7 +26,7 @@ module Underpass
26
26
  end
27
27
 
28
28
  @ways.each_value do |way|
29
- @matches << polygon_from_way(way, @nodes) if way.key?(:tags)
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
@@ -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
@@ -13,7 +13,7 @@ module Underpass
13
13
  module VERSION
14
14
  MAJOR = 0
15
15
  MINOR = 0
16
- PATCH = 6
16
+ PATCH = 7
17
17
 
18
18
  STRING = [MAJOR, MINOR, PATCH].join('.')
19
19
  end
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.6
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-04-14 00:00:00.000000000 Z
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: '2.0'
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: 3.8.0
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: '3.8'
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
- rubygems_version: 3.0.1
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