geoscript 0.0.1.pre → 0.0.1

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.
data/README.md CHANGED
@@ -8,20 +8,18 @@ require 'geoscript'
8
8
  include GeoScript::Geom
9
9
  # => Object
10
10
 
11
- p = Point.create -111.0, 45.7
12
- # => #<GeoScript::Geom::Point:0x7f4d4b79 @bounds=#<GeoScript::Geom::Bounds:0x50ecb7c8>>
11
+ p = Point.new -111.0, 45.7
12
+ # => #<GeoScript::Geom::Point:0x636c4fcb>
13
13
  p.to_wkt
14
- # => "POINT (-111.0 45.7)"
14
+ # => "POINT (-111 45.7)"
15
15
 
16
16
  p2 = GeoScript::Projection.reproject p, 'epsg:4326', 'epsg:26912'
17
- # => #<Java::ComVividsolutionsJtsGeom::Point:0x2d547681>
18
- p2.x
19
- # => 500000.0
20
- p2.y
21
- # => 5060716.313515949
17
+ # => #<GeoScript::Geom::Point:0x6a55c240>
18
+ p2.to_wkt
19
+ # => "POINT (500000 5060716.313515949)"
22
20
 
23
21
  poly = p2.buffer 100
24
- # => #<Java::ComVividsolutionsJtsGeom::Polygon:0x157106f7>
22
+ # => #<GeoScript::Geom::Polygon:0x7b32aba9>
25
23
  poly.get_area
26
24
  # => 31214.451522458345
27
25
  ```
@@ -6,42 +6,38 @@ module GeoScript
6
6
  class Bounds < ReferencedEnvelope
7
7
  include GeoScript::Geom
8
8
 
9
- def initialize(*args);end
10
-
11
- def self.create(env, proj = nil)
9
+ def initialize(env, proj = nil)
12
10
  projection = GeoScript::Projection.new proj if proj
13
11
 
14
12
  if env.kind_of? Envelope
15
13
  if projection
16
- bounds = Bounds.new env, projection
14
+ super(env, projection)
17
15
  elsif env.respond_to? :crs
18
16
  if env.crs
19
- bounds = Bounds.new env, env.crs
17
+ super(env, env.crs)
20
18
  else
21
- bounds = Bounds.new env, nil
19
+ super(env, nil)
22
20
  end
23
21
  else
24
- bounds = Bounds.new env, nil
22
+ super(env, nil)
25
23
  end
26
24
  else
27
25
  if env.kind_of? Hash
28
26
  if projection
29
- bounds = Bounds.new env[:x_min], env[:x_max], env[:y_min], env[:y_max], projection
27
+ super(env[:x_min], env[:x_max], env[:y_min], env[:y_max], projection)
30
28
  else
31
- bounds = Bounds.new env[:x_min], env[:x_max], env[:y_min], env[:y_max], nil
29
+ super(env[:x_min], env[:x_max], env[:y_min], env[:y_max], nil)
32
30
  end
33
31
  elsif env.kind_of? Array
34
32
  if projection
35
- bounds = Bounds.new env[0], env[1], env[2], env[3], projection
33
+ super(env[0], env[1], env[2], env[3], projection)
36
34
  else
37
- bounds = Bounds.new env[0], env[1], env[2], env[3]
35
+ super(env[0], env[1], env[2], env[3])
38
36
  end
39
37
  else
40
- bounds = Bounds.new
38
+ super()
41
39
  end
42
40
  end
43
-
44
- bounds
45
41
  end
46
42
 
47
43
  def get_west
@@ -30,7 +30,7 @@ module GeoScript
30
30
  end
31
31
 
32
32
  def self.get_bounds(geom)
33
- Bounds.create geom.get_envelope_internal
33
+ Bounds.new geom.get_envelope_internal
34
34
  end
35
35
 
36
36
  def self.enhance(geom)
@@ -8,17 +8,17 @@ module GeoScript
8
8
 
9
9
  attr_accessor :bounds
10
10
 
11
- def initialize(*args);end
12
-
13
- def self.create(*coords)
11
+ def initialize(*coords)
14
12
  if coords.size == 1
15
- linear_ring = LinearRing.new coords.first.coordinate_sequence if coords.first.kind_of? LinearRing
13
+ super(coords.first.coordinate_sequence) if coords.first.kind_of? LinearRing
16
14
  else
17
- line_string = LineString.create *coords
18
- linear_ring = LinearRing.new line_string.coordinate_sequence, GEOM_FACTORY
15
+ line_string = LineString.new *coords
16
+ super(line_string.coordinate_sequence, GEOM_FACTORY)
19
17
  end
20
- GeoScript::Geom.enhance linear_ring
21
- linear_ring
18
+ end
19
+
20
+ def buffer(dist)
21
+ Polygon.new super
22
22
  end
23
23
 
24
24
  def to_wkt
@@ -8,12 +8,9 @@ module GeoScript
8
8
 
9
9
  attr_accessor :bounds
10
10
 
11
- def initialize(*args);end
12
-
13
- def self.create(*coords)
11
+ def initialize(*coords)
14
12
  if coords.size == 1
15
- if coords.first.kind_of? LineString
16
- ls = coords.first
13
+ if coords.first.kind_of? JTSLineString
17
14
  elsif coords.kind_of? Array
18
15
  if coords.first.kind_of? Array
19
16
  l = []
@@ -36,16 +33,18 @@ module GeoScript
36
33
  ls = GEOM_FACTORY.create_line_string l.to_java(com.vividsolutions.jts.geom.Coordinate)
37
34
  end
38
35
  end
39
-
36
+
40
37
  if ls
41
- line_string = LineString.new ls.coordinate_sequence, GEOM_FACTORY
42
- GeoScript::Geom.enhance line_string
43
- line_string
38
+ super(ls.coordinate_sequence, GEOM_FACTORY)
44
39
  else
45
40
  raise 'LineString could not be created. Check inputs.'
46
41
  end
47
42
  end
48
43
 
44
+ def buffer(dist)
45
+ Polygon.new super
46
+ end
47
+
49
48
  def to_wkt
50
49
  IO.write_wkt self
51
50
  end
@@ -7,12 +7,10 @@ module GeoScript
7
7
 
8
8
  attr_accessor :bounds
9
9
 
10
- def initialize(*args);end
11
-
12
- def self.create(*line_strings)
10
+ def initialize(*line_strings)
13
11
  strings = []
14
12
 
15
- if line_strings.first.kind_of? MultiLineString
13
+ if line_strings.first.kind_of? JTSMultiLineString
16
14
  multi_line_string_geom = line_strings.first
17
15
  for i in range(0...multi_line_string_geom.num_geometries)
18
16
  strings << multi_line_string_geom.get_geometry_n(i)
@@ -22,14 +20,16 @@ module GeoScript
22
20
  if line_string.kind_of? LineString
23
21
  strings << line_string
24
22
  else
25
- strings << LineString.create(*line_string)
23
+ strings << LineString.new(*line_string)
26
24
  end
27
25
  end
28
26
  end
29
27
 
30
- multi_line_string = MultiLineString.new strings.to_java(com.vividsolutions.jts.geom.LineString), GEOM_FACTORY
31
- GeoScript::Geom.enhance multi_line_string
32
- multi_line_string
28
+ super(strings.to_java(com.vividsolutions.jts.geom.LineString), GEOM_FACTORY)
29
+ end
30
+
31
+ def buffer(dist)
32
+ Polygon.new super
33
33
  end
34
34
 
35
35
  def to_wkt
@@ -7,14 +7,11 @@ module GeoScript
7
7
 
8
8
  attr_accessor :bounds
9
9
 
10
- def intitialize(*args);end
11
-
12
- def self.create(*points)
10
+ def initialize(*points)
13
11
  feature_points = []
14
12
 
15
- if points.first.kind_of? MultiPoint
16
- multi_point_geom = points.first
17
-
13
+ if points.first.kind_of? JTSMultiPoint
14
+ multi_point_geom = point.first
18
15
  for i in (0...multi_point_geom.num_geometries)
19
16
  feature_points << multi_point_geom.get_geometry_n(i)
20
17
  end
@@ -23,14 +20,16 @@ module GeoScript
23
20
  if point.kind_of? Point
24
21
  feature_points << point
25
22
  else
26
- feature_points << Point.create(*point)
23
+ feature_points << Point.new(*point)
27
24
  end
28
25
  end
29
26
  end
30
27
 
31
- multi_point = MultiPoint.new feature_points.to_java(com.vividsolutions.jts.geom.Point), GEOM_FACTORY
32
- GeoScript::Geom.enhance multi_point
33
- multi_point
28
+ super(feature_points.to_java(com.vividsolutions.jts.geom.Point), GEOM_FACTORY)
29
+ end
30
+
31
+ def buffer(dist)
32
+ Polygon.new super
34
33
  end
35
34
 
36
35
  def to_wkt
@@ -7,29 +7,28 @@ module GeoScript
7
7
 
8
8
  attr_accessor :bounds
9
9
 
10
- def initialize(*args);end
11
-
12
- def self.create(*polygons)
10
+ def initialize(*polygons)
13
11
  polys = []
14
12
 
15
- if polygons.first.kind_of? MultiPolygon
13
+ if polygons.first.kind_of? JTSMultiPolygon
16
14
  multi_polygon = polygons.first
17
15
  for i in range(0...multi_polygon.num_geometries)
18
16
  polys << multi_polygon.get_geometry_n(i)
19
17
  end
20
18
  else
21
19
  polygons.each do |polygon|
22
- if polygon.kind_of? Polygon
20
+ if polygon.kind_of? Java::ComVividsolutionsJtsGeom::Polygon
23
21
  polys << polygon
24
22
  else
25
- polys << Polygon.create(*polygon)
23
+ polys << Polygon.new(*polygon)
26
24
  end
27
25
  end
28
26
  end
27
+ super(polys.to_java(com.vividsolutions.jts.geom.Polygon), GEOM_FACTORY)
28
+ end
29
29
 
30
- multi_poly = MultiPolygon.new polys.to_java(com.vividsolutions.jts.geom.Polygon), GEOM_FACTORY
31
- GeoScript::Geom.enhance multi_poly
32
- multi_poly
30
+ def buffer(dist)
31
+ Polygon.new super
33
32
  end
34
33
 
35
34
  def to_wkt
@@ -8,14 +8,19 @@ module GeoScript
8
8
 
9
9
  attr_accessor :bounds
10
10
 
11
- def initialize(*args);end
11
+ def initialize(*coords)
12
+ if coords.first.kind_of? JTSPoint
13
+ p = coords.first
14
+ else
15
+ c = Coordinate.new coords[0], coords[1]
16
+ c.z = coords[2] if coords[2]
17
+ p = GEOM_FACTORY.create_point c
18
+ end
19
+ super p.coordinate_sequence, GEOM_FACTORY
20
+ end
12
21
 
13
- def self.create(x, y = nil, z = nil)
14
- c = Coordinate.new x, y
15
- p = GEOM_FACTORY.create_point c
16
- point = Point.new p.coordinate_sequence, GEOM_FACTORY
17
- GeoScript::Geom.enhance point
18
- point
22
+ def buffer(dist)
23
+ Polygon.new super
19
24
  end
20
25
 
21
26
  def to_wkt
@@ -7,32 +7,33 @@ module GeoScript
7
7
 
8
8
  attr_accessor :bounds
9
9
 
10
- def initialize(*args);end
11
-
12
- def self.create(*rings)
13
- if rings.first.kind_of? Polygon
10
+ def initialize(*rings)
11
+ if rings.first.kind_of? JTSPolygon
14
12
  interior_rings = []
15
13
  num_rings = rings.first.num_interior_ring
16
14
  for i in (0...num_rings)
17
15
  interior_rings << rings.first.get_interior_ring_n(i)
18
16
  end
19
- poly = Polygon.new rings.first.exterior_ring, interior_rings, GEOM_FACTORY
17
+ shell = rings.first.exterior_ring
18
+ holes = interior_rings.to_java(com.vividsolutions.jts.geom.LinearRing)
20
19
  else
21
20
  linear_rings = []
22
21
  rings.each do |ring|
23
22
  if ring.kind_of? LinearRing
24
23
  linear_rings << ring
25
24
  else
26
- linear_rings << LinearRing.create(*ring)
25
+ linear_rings << LinearRing.new(*ring)
27
26
  end
28
27
  end
29
28
 
30
29
  shell = linear_rings.first
31
30
  holes = linear_rings[1..linear_rings.size].to_java(com.vividsolutions.jts.geom.LinearRing)
32
- poly = Polygon.new shell, holes, GEOM_FACTORY
33
31
  end
34
- GeoScript::Geom.enhance poly
35
- poly
32
+ super(shell, holes, GEOM_FACTORY)
33
+ end
34
+
35
+ def buffer(dist)
36
+ Polygon.new super
36
37
  end
37
38
 
38
39
  def to_wkt
@@ -58,7 +58,24 @@ module GeoScript
58
58
  else
59
59
  geometry_transform = GeometryCoordinateSequenceTransformer.new
60
60
  geometry_transform.math_transform = transform
61
- geometry_transform.transform obj
61
+ new_geom = geometry_transform.transform obj
62
+ # not entirely comfortable with this
63
+ case new_geom.class.to_s
64
+ when 'Java::ComVividsolutionsJtsGeom::Point'
65
+ GeoScript::Geom::Point.new new_geom
66
+ when 'Java::ComVividsolutionsJtsGeom::Polygon'
67
+ GeoScript::Geom::Polygon.new new_geom
68
+ when 'Java::ComVividsolutionsJtsGeom::MultiPoint'
69
+ GeoScript::Geom::MultiPoint.create new_geom
70
+ when 'Java::ComVividsolutionsJtsGeom::MultiPolygon'
71
+ GeoScript::Geom::MultiPolygon.create new_geom
72
+ when 'Java::ComVividsolutionsJtsGeom::LineString'
73
+ GeoScript::Geom::LineString.create new_geom
74
+ when 'Java::ComVividsolutionsJtsGeom::MultiLineString'
75
+ GeoScript::Geom::MultiLineString.create new_geom
76
+ when 'Java::ComVividsolutionsJtsGeom::LinearRing'
77
+ GeoScript::Geom::LinearRing.create new_geom
78
+ end
62
79
  end
63
80
  end
64
81
 
@@ -1,3 +1,3 @@
1
1
  module GeoScript
2
- VERSION = '0.0.1.pre'
2
+ VERSION = '0.0.1'
3
3
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geoscript
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: 6
5
- version: 0.0.1.pre
4
+ prerelease:
5
+ version: 0.0.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Scooter Wadsworth
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-30 00:00:00.000000000 Z
12
+ date: 2012-08-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -129,9 +129,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
129
129
  none: false
130
130
  required_rubygems_version: !ruby/object:Gem::Requirement
131
131
  requirements:
132
- - - ! '>'
132
+ - - ! '>='
133
133
  - !ruby/object:Gem::Version
134
- version: 1.3.1
134
+ version: '0'
135
135
  none: false
136
136
  requirements: []
137
137
  rubyforge_project: