geoscript 0.0.1.pre
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 +27 -0
 - data/lib/geoscript.rb +21 -0
 - data/lib/geoscript/geom.rb +12 -0
 - data/lib/geoscript/geom/bounds.rb +82 -0
 - data/lib/geoscript/geom/geom.rb +48 -0
 - data/lib/geoscript/geom/io/json.rb +15 -0
 - data/lib/geoscript/geom/io/wkb.rb +27 -0
 - data/lib/geoscript/geom/io/wkt.rb +16 -0
 - data/lib/geoscript/geom/linearring.rb +37 -0
 - data/lib/geoscript/geom/linestring.rb +62 -0
 - data/lib/geoscript/geom/multilinestring.rb +48 -0
 - data/lib/geoscript/geom/multipoint.rb +49 -0
 - data/lib/geoscript/geom/multipolygon.rb +48 -0
 - data/lib/geoscript/geom/point.rb +34 -0
 - data/lib/geoscript/geom/polygon.rb +51 -0
 - data/lib/geoscript/projection.rb +69 -0
 - data/lib/geoscript/util.rb +1 -0
 - data/lib/geoscript/util/bytes.rb +43 -0
 - data/lib/geoscript/version.rb +3 -0
 - data/lib/geotools/commons-pool-1.5.4.jar +0 -0
 - data/lib/geotools/gt-api-8.0-RC2.jar +0 -0
 - data/lib/geotools/gt-coverage-8.0-RC2.jar +0 -0
 - data/lib/geotools/gt-cql-8.0-RC2.jar +0 -0
 - data/lib/geotools/gt-epsg-hsql-8.0-RC2.jar +0 -0
 - data/lib/geotools/gt-geojson-8.0-RC2.jar +0 -0
 - data/lib/geotools/gt-main-8.0-RC2.jar +0 -0
 - data/lib/geotools/gt-metadata-8.0-RC2.jar +0 -0
 - data/lib/geotools/gt-opengis-8.0-RC2.jar +0 -0
 - data/lib/geotools/gt-property-8.0-RC2.jar +0 -0
 - data/lib/geotools/gt-referencing-8.0-RC2.jar +0 -0
 - data/lib/geotools/gt-render-8.0-RC2.jar +0 -0
 - data/lib/geotools/gt-swing-8.0-RC2.jar +0 -0
 - data/lib/geotools/hsqldb-1.8.0.7.jar +0 -0
 - data/lib/geotools/imageio-ext-tiff-1.1.4.jar +0 -0
 - data/lib/geotools/imageio-ext-utilities-1.1.4.jar +0 -0
 - data/lib/geotools/jai_codec-1.1.3.jar +0 -0
 - data/lib/geotools/jai_core-1.1.3.jar +0 -0
 - data/lib/geotools/jai_imageio-1.1.jar +0 -0
 - data/lib/geotools/jdom-1.0.jar +0 -0
 - data/lib/geotools/jgridshift-1.0.jar +0 -0
 - data/lib/geotools/json-simple-1.1.jar +0 -0
 - data/lib/geotools/jsr-275-1.0-beta-2.jar +0 -0
 - data/lib/geotools/jt-utils-1.2.0.jar +0 -0
 - data/lib/geotools/jt-zonalstats-1.2.0.jar +0 -0
 - data/lib/geotools/jts-1.12.jar +0 -0
 - data/lib/geotools/miglayout-3.7-swing.jar +0 -0
 - data/lib/geotools/vecmath-1.3.2.jar +0 -0
 - data/lib/geotools/xercesImpl-2.4.0.jar +0 -0
 - metadata +143 -0
 
    
        data/README.md
    ADDED
    
    | 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            geoscript-ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            GeoScript for JRuby
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'geoscript'
         
     | 
| 
      
 7 
     | 
    
         
            +
            # => true
         
     | 
| 
      
 8 
     | 
    
         
            +
            include GeoScript::Geom
         
     | 
| 
      
 9 
     | 
    
         
            +
            # => Object
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            p = Point.create -111.0, 45.7
         
     | 
| 
      
 12 
     | 
    
         
            +
            # => #<GeoScript::Geom::Point:0x7f4d4b79 @bounds=#<GeoScript::Geom::Bounds:0x50ecb7c8>>
         
     | 
| 
      
 13 
     | 
    
         
            +
            p.to_wkt
         
     | 
| 
      
 14 
     | 
    
         
            +
            # => "POINT (-111.0 45.7)"
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 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
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            poly = p2.buffer 100
         
     | 
| 
      
 24 
     | 
    
         
            +
            # => #<Java::ComVividsolutionsJtsGeom::Polygon:0x157106f7>
         
     | 
| 
      
 25 
     | 
    
         
            +
            poly.get_area
         
     | 
| 
      
 26 
     | 
    
         
            +
            # => 31214.451522458345
         
     | 
| 
      
 27 
     | 
    
         
            +
            ```
         
     | 
    
        data/lib/geoscript.rb
    ADDED
    
    | 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            $:.push File.expand_path(File.join(File.dirname(__FILE__), 'geoscript'))
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'java'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Dir.entries(File.join(File.expand_path(File.dirname(__FILE__)), 'geotools')).sort.each do |entry|
         
     | 
| 
      
 6 
     | 
    
         
            +
              if entry =~ /.jar$/
         
     | 
| 
      
 7 
     | 
    
         
            +
                $CLASSPATH << File.join(File.expand_path(File.dirname(__FILE__)), "/geotools/#{entry}")
         
     | 
| 
      
 8 
     | 
    
         
            +
              end
         
     | 
| 
      
 9 
     | 
    
         
            +
            end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            java_import org.geotools.factory.Hints
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            unless java.lang.System.get_property("org.geotools.referencing.forceXY") == "true"
         
     | 
| 
      
 14 
     | 
    
         
            +
              java.lang.System.set_property "org.geotools.referencing.forceXY", "true"
         
     | 
| 
      
 15 
     | 
    
         
            +
            end
         
     | 
| 
      
 16 
     | 
    
         
            +
            Hints.put_system_default Hints::FORCE_LONGITUDE_FIRST_AXIS_ORDER, java.lang.Boolean.new(true)
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            require 'geoscript/version'
         
     | 
| 
      
 19 
     | 
    
         
            +
            require 'geoscript/util'
         
     | 
| 
      
 20 
     | 
    
         
            +
            require 'geoscript/projection'
         
     | 
| 
      
 21 
     | 
    
         
            +
            require 'geoscript/geom'
         
     | 
| 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'geom/io/json'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'geom/io/wkt'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'geom/io/wkb'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'geom/geom'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'geom/bounds'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'geom/point'
         
     | 
| 
      
 7 
     | 
    
         
            +
            require 'geom/multipoint'
         
     | 
| 
      
 8 
     | 
    
         
            +
            require 'geom/linestring'
         
     | 
| 
      
 9 
     | 
    
         
            +
            require 'geom/multilinestring'
         
     | 
| 
      
 10 
     | 
    
         
            +
            require 'geom/linearring'
         
     | 
| 
      
 11 
     | 
    
         
            +
            require 'geom/polygon'
         
     | 
| 
      
 12 
     | 
    
         
            +
            require 'geom/multipolygon'
         
     | 
| 
         @@ -0,0 +1,82 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            java_import com.vividsolutions.jts.geom.Envelope
         
     | 
| 
      
 2 
     | 
    
         
            +
            java_import org.geotools.geometry.jts.ReferencedEnvelope
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module GeoScript
         
     | 
| 
      
 5 
     | 
    
         
            +
              module Geom
         
     | 
| 
      
 6 
     | 
    
         
            +
                class Bounds < ReferencedEnvelope
         
     | 
| 
      
 7 
     | 
    
         
            +
                  include GeoScript::Geom
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  def initialize(*args);end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  def self.create(env, proj = nil)
         
     | 
| 
      
 12 
     | 
    
         
            +
                    projection = GeoScript::Projection.new proj if proj
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                    if env.kind_of? Envelope
         
     | 
| 
      
 15 
     | 
    
         
            +
                      if projection
         
     | 
| 
      
 16 
     | 
    
         
            +
                        bounds = Bounds.new env, projection
         
     | 
| 
      
 17 
     | 
    
         
            +
                      elsif env.respond_to? :crs
         
     | 
| 
      
 18 
     | 
    
         
            +
                        if env.crs
         
     | 
| 
      
 19 
     | 
    
         
            +
                          bounds = Bounds.new env, env.crs
         
     | 
| 
      
 20 
     | 
    
         
            +
                        else
         
     | 
| 
      
 21 
     | 
    
         
            +
                          bounds = Bounds.new env, nil
         
     | 
| 
      
 22 
     | 
    
         
            +
                        end
         
     | 
| 
      
 23 
     | 
    
         
            +
                      else
         
     | 
| 
      
 24 
     | 
    
         
            +
                        bounds = Bounds.new env, nil
         
     | 
| 
      
 25 
     | 
    
         
            +
                      end
         
     | 
| 
      
 26 
     | 
    
         
            +
                    else
         
     | 
| 
      
 27 
     | 
    
         
            +
                      if env.kind_of? Hash
         
     | 
| 
      
 28 
     | 
    
         
            +
                        if projection
         
     | 
| 
      
 29 
     | 
    
         
            +
                          bounds = Bounds.new env[:x_min], env[:x_max], env[:y_min], env[:y_max], projection
         
     | 
| 
      
 30 
     | 
    
         
            +
                        else
         
     | 
| 
      
 31 
     | 
    
         
            +
                          bounds = Bounds.new env[:x_min], env[:x_max], env[:y_min], env[:y_max], nil
         
     | 
| 
      
 32 
     | 
    
         
            +
                        end
         
     | 
| 
      
 33 
     | 
    
         
            +
                      elsif env.kind_of? Array
         
     | 
| 
      
 34 
     | 
    
         
            +
                        if projection
         
     | 
| 
      
 35 
     | 
    
         
            +
                          bounds = Bounds.new env[0], env[1], env[2], env[3], projection
         
     | 
| 
      
 36 
     | 
    
         
            +
                        else
         
     | 
| 
      
 37 
     | 
    
         
            +
                          bounds = Bounds.new env[0], env[1], env[2], env[3]
         
     | 
| 
      
 38 
     | 
    
         
            +
                        end
         
     | 
| 
      
 39 
     | 
    
         
            +
                      else
         
     | 
| 
      
 40 
     | 
    
         
            +
                        bounds = Bounds.new
         
     | 
| 
      
 41 
     | 
    
         
            +
                      end
         
     | 
| 
      
 42 
     | 
    
         
            +
                    end
         
     | 
| 
      
 43 
     | 
    
         
            +
                    
         
     | 
| 
      
 44 
     | 
    
         
            +
                    bounds
         
     | 
| 
      
 45 
     | 
    
         
            +
                  end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                  def get_west
         
     | 
| 
      
 48 
     | 
    
         
            +
                    self.min_x
         
     | 
| 
      
 49 
     | 
    
         
            +
                  end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                  def get_south
         
     | 
| 
      
 52 
     | 
    
         
            +
                    self.min_y
         
     | 
| 
      
 53 
     | 
    
         
            +
                  end
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                  def get_east
         
     | 
| 
      
 56 
     | 
    
         
            +
                    self.max_x
         
     | 
| 
      
 57 
     | 
    
         
            +
                  end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                  def get_north
         
     | 
| 
      
 60 
     | 
    
         
            +
                    self.max_y
         
     | 
| 
      
 61 
     | 
    
         
            +
                  end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
                  def get_projection
         
     | 
| 
      
 64 
     | 
    
         
            +
                    crs = self.coordinate_reference_system
         
     | 
| 
      
 65 
     | 
    
         
            +
                    GeoScript::Projection.new crs if crs
         
     | 
| 
      
 66 
     | 
    
         
            +
                  end
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                  def self.scale(bounds, factor)
         
     | 
| 
      
 69 
     | 
    
         
            +
                    width = self.width * (factor - 1) / 2
         
     | 
| 
      
 70 
     | 
    
         
            +
                    height = self.height * (factor - 1) / 2
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                    Bounds.new self.west - width, self.south - height, self.east + width, self.north + height
         
     | 
| 
      
 73 
     | 
    
         
            +
                  end
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                  def expand(other_bounds);end
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
                  def to_polygon;end
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
                  def tile(resolution);end
         
     | 
| 
      
 80 
     | 
    
         
            +
                end
         
     | 
| 
      
 81 
     | 
    
         
            +
              end
         
     | 
| 
      
 82 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,48 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            java_import java.awt.geom.AffineTransform
         
     | 
| 
      
 2 
     | 
    
         
            +
            java_import com.vividsolutions.jts.geom.GeometryFactory
         
     | 
| 
      
 3 
     | 
    
         
            +
            java_import com.vividsolutions.jts.geom.Geometry
         
     | 
| 
      
 4 
     | 
    
         
            +
            java_import com.vividsolutions.jts.geom.prep.PreparedGeometryFactory
         
     | 
| 
      
 5 
     | 
    
         
            +
            java_import com.vividsolutions.jts.simplify.DouglasPeuckerSimplifier
         
     | 
| 
      
 6 
     | 
    
         
            +
            java_import com.vividsolutions.jts.triangulate.DelaunayTriangulationBuilder
         
     | 
| 
      
 7 
     | 
    
         
            +
            java_import com.vividsolutions.jts.triangulate.VoronoiDiagramBuilder
         
     | 
| 
      
 8 
     | 
    
         
            +
            java_import com.vividsolutions.jts.operation.buffer.BufferParameters
         
     | 
| 
      
 9 
     | 
    
         
            +
            java_import com.vividsolutions.jts.operation.buffer.BufferOp
         
     | 
| 
      
 10 
     | 
    
         
            +
            java_import org.geotools.geometry.jts.JTS
         
     | 
| 
      
 11 
     | 
    
         
            +
            java_import org.geotools.referencing.operation.transform.AffineTransform2D
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            module GeoScript
         
     | 
| 
      
 14 
     | 
    
         
            +
              module Geom
         
     | 
| 
      
 15 
     | 
    
         
            +
                GEOM_FACTORY = GeometryFactory.new
         
     | 
| 
      
 16 
     | 
    
         
            +
                PREP_FACTORY = PreparedGeometryFactory.new
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                def self.prepare(geom)
         
     | 
| 
      
 19 
     | 
    
         
            +
                  PREP_FACTORY.create(geom)
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                def self.simplify(geom, tolerance)
         
     | 
| 
      
 23 
     | 
    
         
            +
                  DouglasPeuckerSimplifier.simplify(geom, tolerance)
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                def self.buffer(geom, distance, single_sided = false)
         
     | 
| 
      
 27 
     | 
    
         
            +
                  buffer_params = BufferParameters.new
         
     | 
| 
      
 28 
     | 
    
         
            +
                  buffer_params.set_single_sided(single_sided)
         
     | 
| 
      
 29 
     | 
    
         
            +
                  BufferOp.buffer_op(geom, distance, buffer_params)
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                def self.get_bounds(geom)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  Bounds.create geom.get_envelope_internal
         
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                def self.enhance(geom)
         
     | 
| 
      
 37 
     | 
    
         
            +
                  geom.bounds = Geom.get_bounds geom
         
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                def self.to_wkt(geom)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  GeoScript::Geom::IO.write_wkt geom
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                def self.from_wkt(wkt)
         
     | 
| 
      
 45 
     | 
    
         
            +
                  GeoScript::Geom::IO.read_wkt wkt
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
              end
         
     | 
| 
      
 48 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            java_import org.geotools.geojson.geom.GeometryJSON
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module GeoScript
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Geom
         
     | 
| 
      
 5 
     | 
    
         
            +
                module IO
         
     | 
| 
      
 6 
     | 
    
         
            +
                  def self.write_json(geom)
         
     | 
| 
      
 7 
     | 
    
         
            +
                    GeometryJSON.new.to_string geom
         
     | 
| 
      
 8 
     | 
    
         
            +
                  end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  def self.read_json(json)
         
     | 
| 
      
 11 
     | 
    
         
            +
                    GeometryJSON.new.read json.to_java
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            java_import com.vividsolutions.jts.io.WKBReader
         
     | 
| 
      
 2 
     | 
    
         
            +
            java_import com.vividsolutions.jts.io.WKBWriter
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module GeoScript
         
     | 
| 
      
 5 
     | 
    
         
            +
              module Geom
         
     | 
| 
      
 6 
     | 
    
         
            +
                module IO
         
     | 
| 
      
 7 
     | 
    
         
            +
                  include GeoScript::Util
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  def self.write_wkb(geom)
         
     | 
| 
      
 10 
     | 
    
         
            +
                    wkb = WKBWriter.new.write geom
         
     | 
| 
      
 11 
     | 
    
         
            +
                    WKBWriter.bytes_to_hex wkb
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                  def self.read_wkb(wkb)
         
     | 
| 
      
 15 
     | 
    
         
            +
                    if wkb.kind_of? String
         
     | 
| 
      
 16 
     | 
    
         
            +
                      wkb = WKBReader.hex_to_bytes wkb
         
     | 
| 
      
 17 
     | 
    
         
            +
                    elsif wkb.kind_of? Array
         
     | 
| 
      
 18 
     | 
    
         
            +
                      # .to_java(java.lang.Byte) does not seem to work
         
     | 
| 
      
 19 
     | 
    
         
            +
                      # this is very hacky
         
     | 
| 
      
 20 
     | 
    
         
            +
                      wkb = WKBWriter.bytes_to_hex wkb
         
     | 
| 
      
 21 
     | 
    
         
            +
                      wkb = WKBReader.hex_to_bytes wkb
         
     | 
| 
      
 22 
     | 
    
         
            +
                    end
         
     | 
| 
      
 23 
     | 
    
         
            +
                    WKBReader.new.read wkb
         
     | 
| 
      
 24 
     | 
    
         
            +
                  end
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
              end
         
     | 
| 
      
 27 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            java_import com.vividsolutions.jts.io.WKTReader
         
     | 
| 
      
 2 
     | 
    
         
            +
            java_import com.vividsolutions.jts.io.WKTWriter
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module GeoScript
         
     | 
| 
      
 5 
     | 
    
         
            +
              module Geom
         
     | 
| 
      
 6 
     | 
    
         
            +
                module IO
         
     | 
| 
      
 7 
     | 
    
         
            +
                  def self.read_wkt(wkt)
         
     | 
| 
      
 8 
     | 
    
         
            +
                    WKTReader.new.read wkt
         
     | 
| 
      
 9 
     | 
    
         
            +
                  end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  def self.write_wkt(geom)
         
     | 
| 
      
 12 
     | 
    
         
            +
                    WKTWriter.new.write geom
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,37 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            java_import com.vividsolutions.jts.geom.Coordinate
         
     | 
| 
      
 2 
     | 
    
         
            +
            JTSLinearRing = com.vividsolutions.jts.geom.LinearRing
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module GeoScript
         
     | 
| 
      
 5 
     | 
    
         
            +
              module Geom
         
     | 
| 
      
 6 
     | 
    
         
            +
                class LinearRing < JTSLinearRing
         
     | 
| 
      
 7 
     | 
    
         
            +
                  include GeoScript::Geom
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  attr_accessor :bounds
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  def initialize(*args);end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  def self.create(*coords)
         
     | 
| 
      
 14 
     | 
    
         
            +
                    if coords.size == 1
         
     | 
| 
      
 15 
     | 
    
         
            +
                      linear_ring = LinearRing.new coords.first.coordinate_sequence if coords.first.kind_of? LinearRing
         
     | 
| 
      
 16 
     | 
    
         
            +
                    else
         
     | 
| 
      
 17 
     | 
    
         
            +
                      line_string = LineString.create *coords
         
     | 
| 
      
 18 
     | 
    
         
            +
                      linear_ring = LinearRing.new line_string.coordinate_sequence, GEOM_FACTORY
         
     | 
| 
      
 19 
     | 
    
         
            +
                    end
         
     | 
| 
      
 20 
     | 
    
         
            +
                    GeoScript::Geom.enhance linear_ring
         
     | 
| 
      
 21 
     | 
    
         
            +
                    linear_ring
         
     | 
| 
      
 22 
     | 
    
         
            +
                  end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                  def to_wkt
         
     | 
| 
      
 25 
     | 
    
         
            +
                    IO.write_wkt self
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                  def to_wkb
         
     | 
| 
      
 29 
     | 
    
         
            +
                    IO.write_wkb self
         
     | 
| 
      
 30 
     | 
    
         
            +
                  end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                  def to_json
         
     | 
| 
      
 33 
     | 
    
         
            +
                    IO.write_json self
         
     | 
| 
      
 34 
     | 
    
         
            +
                  end
         
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
              end
         
     | 
| 
      
 37 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,62 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            java_import com.vividsolutions.jts.geom.Coordinate
         
     | 
| 
      
 2 
     | 
    
         
            +
            JTSLineString = com.vividsolutions.jts.geom.LineString
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module GeoScript
         
     | 
| 
      
 5 
     | 
    
         
            +
              module Geom
         
     | 
| 
      
 6 
     | 
    
         
            +
                class LineString < JTSLineString
         
     | 
| 
      
 7 
     | 
    
         
            +
                  include GeoScript::Geom
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  attr_accessor :bounds
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  def initialize(*args);end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  def self.create(*coords)
         
     | 
| 
      
 14 
     | 
    
         
            +
                    if coords.size == 1
         
     | 
| 
      
 15 
     | 
    
         
            +
                      if coords.first.kind_of? LineString
         
     | 
| 
      
 16 
     | 
    
         
            +
                        ls = coords.first
         
     | 
| 
      
 17 
     | 
    
         
            +
                      elsif coords.kind_of? Array
         
     | 
| 
      
 18 
     | 
    
         
            +
                        if coords.first.kind_of? Array
         
     | 
| 
      
 19 
     | 
    
         
            +
                          l = []
         
     | 
| 
      
 20 
     | 
    
         
            +
                          coords.first.each do |coord|
         
     | 
| 
      
 21 
     | 
    
         
            +
                            l << Coordinate.new(coord[0], coord[1])
         
     | 
| 
      
 22 
     | 
    
         
            +
                            l.last.z = coord[2] if coord[2]
         
     | 
| 
      
 23 
     | 
    
         
            +
                          end
         
     | 
| 
      
 24 
     | 
    
         
            +
                          if l.size > 0
         
     | 
| 
      
 25 
     | 
    
         
            +
                            ls = GEOM_FACTORY.create_line_string l.to_java(com.vividsolutions.jts.geom.Coordinate)
         
     | 
| 
      
 26 
     | 
    
         
            +
                          end
         
     | 
| 
      
 27 
     | 
    
         
            +
                        end
         
     | 
| 
      
 28 
     | 
    
         
            +
                      end
         
     | 
| 
      
 29 
     | 
    
         
            +
                    else
         
     | 
| 
      
 30 
     | 
    
         
            +
                      l = []
         
     | 
| 
      
 31 
     | 
    
         
            +
                      coords.each do |coord|
         
     | 
| 
      
 32 
     | 
    
         
            +
                        l << Coordinate.new(coord[0], coord[1])
         
     | 
| 
      
 33 
     | 
    
         
            +
                        l.last.z = coord[2] if coord[2]
         
     | 
| 
      
 34 
     | 
    
         
            +
                      end
         
     | 
| 
      
 35 
     | 
    
         
            +
                      if l.size > 0
         
     | 
| 
      
 36 
     | 
    
         
            +
                        ls = GEOM_FACTORY.create_line_string l.to_java(com.vividsolutions.jts.geom.Coordinate)
         
     | 
| 
      
 37 
     | 
    
         
            +
                      end
         
     | 
| 
      
 38 
     | 
    
         
            +
                    end
         
     | 
| 
      
 39 
     | 
    
         
            +
                    
         
     | 
| 
      
 40 
     | 
    
         
            +
                    if ls
         
     | 
| 
      
 41 
     | 
    
         
            +
                      line_string = LineString.new ls.coordinate_sequence, GEOM_FACTORY
         
     | 
| 
      
 42 
     | 
    
         
            +
                      GeoScript::Geom.enhance line_string
         
     | 
| 
      
 43 
     | 
    
         
            +
                      line_string
         
     | 
| 
      
 44 
     | 
    
         
            +
                    else
         
     | 
| 
      
 45 
     | 
    
         
            +
                      raise 'LineString could not be created. Check inputs.'
         
     | 
| 
      
 46 
     | 
    
         
            +
                    end
         
     | 
| 
      
 47 
     | 
    
         
            +
                  end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                  def to_wkt
         
     | 
| 
      
 50 
     | 
    
         
            +
                    IO.write_wkt self
         
     | 
| 
      
 51 
     | 
    
         
            +
                  end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                  def to_wkb
         
     | 
| 
      
 54 
     | 
    
         
            +
                    IO.write_wkb self
         
     | 
| 
      
 55 
     | 
    
         
            +
                  end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                  def to_json
         
     | 
| 
      
 58 
     | 
    
         
            +
                    IO.write_json self
         
     | 
| 
      
 59 
     | 
    
         
            +
                  end
         
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
      
 61 
     | 
    
         
            +
              end
         
     | 
| 
      
 62 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,48 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            JTSMultiLineString = com.vividsolutions.jts.geom.MultiLineString
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module GeoScript
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Geom
         
     | 
| 
      
 5 
     | 
    
         
            +
                class MultiLineString < JTSMultiLineString
         
     | 
| 
      
 6 
     | 
    
         
            +
                  include GeoScript::Geom
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                  attr_accessor :bounds
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  def initialize(*args);end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                  def self.create(*line_strings)
         
     | 
| 
      
 13 
     | 
    
         
            +
                    strings = []
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    if line_strings.first.kind_of? MultiLineString
         
     | 
| 
      
 16 
     | 
    
         
            +
                      multi_line_string_geom = line_strings.first
         
     | 
| 
      
 17 
     | 
    
         
            +
                      for i in range(0...multi_line_string_geom.num_geometries)
         
     | 
| 
      
 18 
     | 
    
         
            +
                        strings << multi_line_string_geom.get_geometry_n(i)
         
     | 
| 
      
 19 
     | 
    
         
            +
                      end
         
     | 
| 
      
 20 
     | 
    
         
            +
                    else
         
     | 
| 
      
 21 
     | 
    
         
            +
                      line_strings.each do |line_string|
         
     | 
| 
      
 22 
     | 
    
         
            +
                        if line_string.kind_of? LineString
         
     | 
| 
      
 23 
     | 
    
         
            +
                          strings << line_string
         
     | 
| 
      
 24 
     | 
    
         
            +
                        else
         
     | 
| 
      
 25 
     | 
    
         
            +
                          strings << LineString.create(*line_string)
         
     | 
| 
      
 26 
     | 
    
         
            +
                        end
         
     | 
| 
      
 27 
     | 
    
         
            +
                      end
         
     | 
| 
      
 28 
     | 
    
         
            +
                    end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 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
         
     | 
| 
      
 33 
     | 
    
         
            +
                  end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                  def to_wkt
         
     | 
| 
      
 36 
     | 
    
         
            +
                    IO.write_wkt self
         
     | 
| 
      
 37 
     | 
    
         
            +
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                  def to_wkb
         
     | 
| 
      
 40 
     | 
    
         
            +
                    IO.write_wkb self
         
     | 
| 
      
 41 
     | 
    
         
            +
                  end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                  def to_json
         
     | 
| 
      
 44 
     | 
    
         
            +
                    IO.write_json self
         
     | 
| 
      
 45 
     | 
    
         
            +
                  end
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
              end
         
     | 
| 
      
 48 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,49 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            JTSMultiPoint = com.vividsolutions.jts.geom.MultiPoint
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module GeoScript
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Geom
         
     | 
| 
      
 5 
     | 
    
         
            +
                class MultiPoint < JTSMultiPoint
         
     | 
| 
      
 6 
     | 
    
         
            +
                  include GeoScript::Geom
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                  attr_accessor :bounds
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  def intitialize(*args);end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                  def self.create(*points)
         
     | 
| 
      
 13 
     | 
    
         
            +
                    feature_points = []
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    if points.first.kind_of? MultiPoint
         
     | 
| 
      
 16 
     | 
    
         
            +
                      multi_point_geom = points.first
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                      for i in (0...multi_point_geom.num_geometries)
         
     | 
| 
      
 19 
     | 
    
         
            +
                        feature_points << multi_point_geom.get_geometry_n(i)
         
     | 
| 
      
 20 
     | 
    
         
            +
                      end
         
     | 
| 
      
 21 
     | 
    
         
            +
                    else
         
     | 
| 
      
 22 
     | 
    
         
            +
                      points.each do |point|
         
     | 
| 
      
 23 
     | 
    
         
            +
                        if point.kind_of? Point
         
     | 
| 
      
 24 
     | 
    
         
            +
                          feature_points << point
         
     | 
| 
      
 25 
     | 
    
         
            +
                        else
         
     | 
| 
      
 26 
     | 
    
         
            +
                          feature_points << Point.create(*point)
         
     | 
| 
      
 27 
     | 
    
         
            +
                        end
         
     | 
| 
      
 28 
     | 
    
         
            +
                      end
         
     | 
| 
      
 29 
     | 
    
         
            +
                    end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 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
         
     | 
| 
      
 34 
     | 
    
         
            +
                  end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                  def to_wkt
         
     | 
| 
      
 37 
     | 
    
         
            +
                    IO.write_wkt self
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                  def to_wkb
         
     | 
| 
      
 41 
     | 
    
         
            +
                    IO.write_wkb self
         
     | 
| 
      
 42 
     | 
    
         
            +
                  end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                  def to_json
         
     | 
| 
      
 45 
     | 
    
         
            +
                    IO.write_json self
         
     | 
| 
      
 46 
     | 
    
         
            +
                  end
         
     | 
| 
      
 47 
     | 
    
         
            +
                end
         
     | 
| 
      
 48 
     | 
    
         
            +
              end
         
     | 
| 
      
 49 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,48 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            JTSMultiPolygon = com.vividsolutions.jts.geom.MultiPolygon
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module GeoScript
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Geom
         
     | 
| 
      
 5 
     | 
    
         
            +
                class MultiPolygon < JTSMultiPolygon
         
     | 
| 
      
 6 
     | 
    
         
            +
                  include GeoScript::Geom
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                  attr_accessor :bounds
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  def initialize(*args);end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                  def self.create(*polygons)
         
     | 
| 
      
 13 
     | 
    
         
            +
                    polys = []
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    if polygons.first.kind_of? MultiPolygon
         
     | 
| 
      
 16 
     | 
    
         
            +
                      multi_polygon = polygons.first
         
     | 
| 
      
 17 
     | 
    
         
            +
                      for i in range(0...multi_polygon.num_geometries)
         
     | 
| 
      
 18 
     | 
    
         
            +
                        polys << multi_polygon.get_geometry_n(i)
         
     | 
| 
      
 19 
     | 
    
         
            +
                      end
         
     | 
| 
      
 20 
     | 
    
         
            +
                    else
         
     | 
| 
      
 21 
     | 
    
         
            +
                      polygons.each do |polygon|
         
     | 
| 
      
 22 
     | 
    
         
            +
                        if polygon.kind_of? Polygon
         
     | 
| 
      
 23 
     | 
    
         
            +
                          polys << polygon
         
     | 
| 
      
 24 
     | 
    
         
            +
                        else
         
     | 
| 
      
 25 
     | 
    
         
            +
                          polys << Polygon.create(*polygon)
         
     | 
| 
      
 26 
     | 
    
         
            +
                        end
         
     | 
| 
      
 27 
     | 
    
         
            +
                      end
         
     | 
| 
      
 28 
     | 
    
         
            +
                    end
         
     | 
| 
      
 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
         
     | 
| 
      
 33 
     | 
    
         
            +
                  end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                  def to_wkt
         
     | 
| 
      
 36 
     | 
    
         
            +
                    IO.write_wkt self
         
     | 
| 
      
 37 
     | 
    
         
            +
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                  def to_wkb
         
     | 
| 
      
 40 
     | 
    
         
            +
                    IO.write_wkb self
         
     | 
| 
      
 41 
     | 
    
         
            +
                  end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                  def to_json
         
     | 
| 
      
 44 
     | 
    
         
            +
                    IO.write_json self
         
     | 
| 
      
 45 
     | 
    
         
            +
                  end
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
              end
         
     | 
| 
      
 48 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,34 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            java_import com.vividsolutions.jts.geom.Coordinate
         
     | 
| 
      
 2 
     | 
    
         
            +
            JTSPoint = com.vividsolutions.jts.geom.Point
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module GeoScript
         
     | 
| 
      
 5 
     | 
    
         
            +
              module Geom
         
     | 
| 
      
 6 
     | 
    
         
            +
                class Point < JTSPoint
         
     | 
| 
      
 7 
     | 
    
         
            +
                  include GeoScript::Geom
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  attr_accessor :bounds
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  def initialize(*args);end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 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
         
     | 
| 
      
 19 
     | 
    
         
            +
                  end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  def to_wkt
         
     | 
| 
      
 22 
     | 
    
         
            +
                    IO.write_wkt self
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                  def to_wkb
         
     | 
| 
      
 26 
     | 
    
         
            +
                    IO.write_wkb self
         
     | 
| 
      
 27 
     | 
    
         
            +
                  end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                  def to_json
         
     | 
| 
      
 30 
     | 
    
         
            +
                    IO.write_json self
         
     | 
| 
      
 31 
     | 
    
         
            +
                  end
         
     | 
| 
      
 32 
     | 
    
         
            +
                end
         
     | 
| 
      
 33 
     | 
    
         
            +
              end
         
     | 
| 
      
 34 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,51 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            JTSPolygon = com.vividsolutions.jts.geom.Polygon
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module GeoScript
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Geom
         
     | 
| 
      
 5 
     | 
    
         
            +
                class Polygon < JTSPolygon
         
     | 
| 
      
 6 
     | 
    
         
            +
                  include GeoScript::Geom
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                  attr_accessor :bounds
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  def initialize(*args);end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                  def self.create(*rings)
         
     | 
| 
      
 13 
     | 
    
         
            +
                    if rings.first.kind_of? Polygon
         
     | 
| 
      
 14 
     | 
    
         
            +
                      interior_rings = []
         
     | 
| 
      
 15 
     | 
    
         
            +
                      num_rings = rings.first.num_interior_ring
         
     | 
| 
      
 16 
     | 
    
         
            +
                      for i in (0...num_rings)
         
     | 
| 
      
 17 
     | 
    
         
            +
                        interior_rings << rings.first.get_interior_ring_n(i)
         
     | 
| 
      
 18 
     | 
    
         
            +
                      end
         
     | 
| 
      
 19 
     | 
    
         
            +
                      poly = Polygon.new rings.first.exterior_ring, interior_rings, GEOM_FACTORY
         
     | 
| 
      
 20 
     | 
    
         
            +
                    else
         
     | 
| 
      
 21 
     | 
    
         
            +
                      linear_rings = []
         
     | 
| 
      
 22 
     | 
    
         
            +
                      rings.each do |ring|
         
     | 
| 
      
 23 
     | 
    
         
            +
                        if ring.kind_of? LinearRing
         
     | 
| 
      
 24 
     | 
    
         
            +
                          linear_rings << ring
         
     | 
| 
      
 25 
     | 
    
         
            +
                        else
         
     | 
| 
      
 26 
     | 
    
         
            +
                          linear_rings << LinearRing.create(*ring)
         
     | 
| 
      
 27 
     | 
    
         
            +
                        end
         
     | 
| 
      
 28 
     | 
    
         
            +
                      end
         
     | 
| 
      
 29 
     | 
    
         
            +
                      
         
     | 
| 
      
 30 
     | 
    
         
            +
                      shell = linear_rings.first
         
     | 
| 
      
 31 
     | 
    
         
            +
                      holes = linear_rings[1..linear_rings.size].to_java(com.vividsolutions.jts.geom.LinearRing)
         
     | 
| 
      
 32 
     | 
    
         
            +
                      poly = Polygon.new shell, holes, GEOM_FACTORY
         
     | 
| 
      
 33 
     | 
    
         
            +
                    end
         
     | 
| 
      
 34 
     | 
    
         
            +
                    GeoScript::Geom.enhance poly
         
     | 
| 
      
 35 
     | 
    
         
            +
                    poly
         
     | 
| 
      
 36 
     | 
    
         
            +
                  end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                  def to_wkt
         
     | 
| 
      
 39 
     | 
    
         
            +
                    IO.write_wkt self
         
     | 
| 
      
 40 
     | 
    
         
            +
                  end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                  def to_wkb
         
     | 
| 
      
 43 
     | 
    
         
            +
                    IO.write_wkb self
         
     | 
| 
      
 44 
     | 
    
         
            +
                  end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                  def to_json
         
     | 
| 
      
 47 
     | 
    
         
            +
                    IO.write_json self
         
     | 
| 
      
 48 
     | 
    
         
            +
                  end
         
     | 
| 
      
 49 
     | 
    
         
            +
                end
         
     | 
| 
      
 50 
     | 
    
         
            +
              end
         
     | 
| 
      
 51 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,69 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            java_import org.geotools.geometry.jts.GeometryCoordinateSequenceTransformer
         
     | 
| 
      
 2 
     | 
    
         
            +
            java_import org.geotools.referencing.CRS
         
     | 
| 
      
 3 
     | 
    
         
            +
            java_import org.opengis.referencing.crs.CoordinateReferenceSystem
         
     | 
| 
      
 4 
     | 
    
         
            +
            java_import org.geotools.factory.Hints
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            module GeoScript
         
     | 
| 
      
 7 
     | 
    
         
            +
              class Projection
         
     | 
| 
      
 8 
     | 
    
         
            +
                attr_accessor :crs
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                def initialize(proj)
         
     | 
| 
      
 11 
     | 
    
         
            +
                  if proj.kind_of? CoordinateReferenceSystem
         
     | 
| 
      
 12 
     | 
    
         
            +
                    @crs = proj
         
     | 
| 
      
 13 
     | 
    
         
            +
                  elsif proj.kind_of? GeoScript::Projection
         
     | 
| 
      
 14 
     | 
    
         
            +
                    @crs = proj.crs
         
     | 
| 
      
 15 
     | 
    
         
            +
                  elsif proj.kind_of? String
         
     | 
| 
      
 16 
     | 
    
         
            +
                    @crs = CRS.decode proj
         
     | 
| 
      
 17 
     | 
    
         
            +
                    
         
     | 
| 
      
 18 
     | 
    
         
            +
                    if @crs.nil?
         
     | 
| 
      
 19 
     | 
    
         
            +
                      @crs = CRS.parseWKT proj
         
     | 
| 
      
 20 
     | 
    
         
            +
                      
         
     | 
| 
      
 21 
     | 
    
         
            +
                      if @crs.nil?
         
     | 
| 
      
 22 
     | 
    
         
            +
                        raise "Unable to determine projection from #{proj}"
         
     | 
| 
      
 23 
     | 
    
         
            +
                      end
         
     | 
| 
      
 24 
     | 
    
         
            +
                    end
         
     | 
| 
      
 25 
     | 
    
         
            +
                  end
         
     | 
| 
      
 26 
     | 
    
         
            +
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                def get_id
         
     | 
| 
      
 29 
     | 
    
         
            +
                  CRS.lookup_identifier(@crs, true).to_s
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                def get_wkt
         
     | 
| 
      
 33 
     | 
    
         
            +
                  @crs.to_s
         
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                def get_bounds
         
     | 
| 
      
 37 
     | 
    
         
            +
                  env = CRS.get_envelope @crs
         
     | 
| 
      
 38 
     | 
    
         
            +
                  if env
         
     | 
| 
      
 39 
     | 
    
         
            +
                    min = env.get_minimum
         
     | 
| 
      
 40 
     | 
    
         
            +
                    max = env.get_maximum
         
     | 
| 
      
 41 
     | 
    
         
            +
                    GeoScript::Geom::Bounds.create min.first, min.last, max.first, max.last
         
     | 
| 
      
 42 
     | 
    
         
            +
                  end
         
     | 
| 
      
 43 
     | 
    
         
            +
                end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                def get_geobounds
         
     | 
| 
      
 46 
     | 
    
         
            +
                  box = CRS.get_geographic_bounding_box @crs
         
     | 
| 
      
 47 
     | 
    
         
            +
                  if box
         
     | 
| 
      
 48 
     | 
    
         
            +
                    GeoScript::Geom::Bounds.create box.west_bound_longitude, box.south_bound_latitude, box.east_bound_longitude, box.north_bound_latitude, 'epsg:4326'
         
     | 
| 
      
 49 
     | 
    
         
            +
                  end
         
     | 
| 
      
 50 
     | 
    
         
            +
                end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                def transform(obj, dest)
         
     | 
| 
      
 53 
     | 
    
         
            +
                  from_crs = @crs
         
     | 
| 
      
 54 
     | 
    
         
            +
                  to_crs = Projection.new(dest).crs
         
     | 
| 
      
 55 
     | 
    
         
            +
                  transform = CRS.find_math_transform(from_crs, to_crs)
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                  if obj.kind_of? Array
         
     | 
| 
      
 58 
     | 
    
         
            +
                  else
         
     | 
| 
      
 59 
     | 
    
         
            +
                    geometry_transform = GeometryCoordinateSequenceTransformer.new
         
     | 
| 
      
 60 
     | 
    
         
            +
                    geometry_transform.math_transform = transform
         
     | 
| 
      
 61 
     | 
    
         
            +
                    geometry_transform.transform obj
         
     | 
| 
      
 62 
     | 
    
         
            +
                  end
         
     | 
| 
      
 63 
     | 
    
         
            +
                end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                def self.reproject(obj, from_crs, to_crs)
         
     | 
| 
      
 66 
     | 
    
         
            +
                  Projection.new(from_crs).transform obj, to_crs
         
     | 
| 
      
 67 
     | 
    
         
            +
                end
         
     | 
| 
      
 68 
     | 
    
         
            +
              end
         
     | 
| 
      
 69 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'util/bytes.rb'
         
     | 
| 
         @@ -0,0 +1,43 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            JInt = java.lang.Integer
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module GeoScript
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Util
         
     | 
| 
      
 5 
     | 
    
         
            +
                class Bytes
         
     | 
| 
      
 6 
     | 
    
         
            +
                  def self.decode(str, base) # str.to_java_bytes
         
     | 
| 
      
 7 
     | 
    
         
            +
                    #n = Math.log(256, base).ceil
         
     | 
| 
      
 8 
     | 
    
         
            +
                    #bytes = []
         
     | 
| 
      
 9 
     | 
    
         
            +
                    #(0...str.size).step(n) do |i|
         
     | 
| 
      
 10 
     | 
    
         
            +
                    #  bytes << string_to_byte(str[i...(i + n)].join(''), base)
         
     | 
| 
      
 11 
     | 
    
         
            +
                    #end
         
     | 
| 
      
 12 
     | 
    
         
            +
                    #bytes.to_java java.lang.Byte
         
     | 
| 
      
 13 
     | 
    
         
            +
                    str.to_java_bytes
         
     | 
| 
      
 14 
     | 
    
         
            +
                  end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                  def self.encode(bytes, base) # bytes.from_java_bytes
         
     | 
| 
      
 17 
     | 
    
         
            +
                    #bytes_array = []
         
     | 
| 
      
 18 
     | 
    
         
            +
                    #
         
     | 
| 
      
 19 
     | 
    
         
            +
                    #bytes.each do |byte|
         
     | 
| 
      
 20 
     | 
    
         
            +
                    #  bytes_array << byte_to_string(byte, base)
         
     | 
| 
      
 21 
     | 
    
         
            +
                    #end
         
     | 
| 
      
 22 
     | 
    
         
            +
                    #
         
     | 
| 
      
 23 
     | 
    
         
            +
                    #bytes_array.join ''
         
     | 
| 
      
 24 
     | 
    
         
            +
                    bytes.from_java_bytes
         
     | 
| 
      
 25 
     | 
    
         
            +
                  end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                  def self.byte_to_string(byte, base)
         
     | 
| 
      
 28 
     | 
    
         
            +
                    n = Math.log(256, base).ceil
         
     | 
| 
      
 29 
     | 
    
         
            +
                    s = byte < 0 ? JInt.to_string(((b.abs ^ 0xff) + 0x01), base) : JInt.to_string(b, base)
         
     | 
| 
      
 30 
     | 
    
         
            +
                    "%0#{n}d" % s
         
     | 
| 
      
 31 
     | 
    
         
            +
                  end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                  def self.string_to_byte(string, base)
         
     | 
| 
      
 34 
     | 
    
         
            +
                    int = string.to_i(base)
         
     | 
| 
      
 35 
     | 
    
         
            +
                    if int > 128
         
     | 
| 
      
 36 
     | 
    
         
            +
                      -1 * ((int ^ 0xff) + 0x01)
         
     | 
| 
      
 37 
     | 
    
         
            +
                    else
         
     | 
| 
      
 38 
     | 
    
         
            +
                      int
         
     | 
| 
      
 39 
     | 
    
         
            +
                    end
         
     | 
| 
      
 40 
     | 
    
         
            +
                  end
         
     | 
| 
      
 41 
     | 
    
         
            +
                end
         
     | 
| 
      
 42 
     | 
    
         
            +
              end
         
     | 
| 
      
 43 
     | 
    
         
            +
            end
         
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,143 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: geoscript
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              prerelease: 6
         
     | 
| 
      
 5 
     | 
    
         
            +
              version: 0.0.1.pre
         
     | 
| 
      
 6 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 7 
     | 
    
         
            +
            authors:
         
     | 
| 
      
 8 
     | 
    
         
            +
            - Scooter Wadsworth
         
     | 
| 
      
 9 
     | 
    
         
            +
            autorequire:
         
     | 
| 
      
 10 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 11 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-07-30 00:00:00.000000000 Z
         
     | 
| 
      
 13 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 14 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 15 
     | 
    
         
            +
              name: rake
         
     | 
| 
      
 16 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 17 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 18 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 19 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 20 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 21 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 22 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 23 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 24 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 25 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 27 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 28 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 29 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 30 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 31 
     | 
    
         
            +
              name: rspec
         
     | 
| 
      
 32 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 33 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 34 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 35 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 36 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 37 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 38 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 39 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 40 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 41 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 42 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 43 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 44 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 45 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 46 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 47 
     | 
    
         
            +
              name: guard-rspec
         
     | 
| 
      
 48 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 49 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 50 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 51 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 52 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 53 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 54 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 55 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 56 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 57 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 58 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 59 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 60 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 61 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 62 
     | 
    
         
            +
            description: GeoScript for JRuby - makes using GeoTools from JRuby easier and more fun.
         
     | 
| 
      
 63 
     | 
    
         
            +
            email:
         
     | 
| 
      
 64 
     | 
    
         
            +
            - scooterwadsworth@gmail.com
         
     | 
| 
      
 65 
     | 
    
         
            +
            executables: []
         
     | 
| 
      
 66 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 67 
     | 
    
         
            +
            extra_rdoc_files: []
         
     | 
| 
      
 68 
     | 
    
         
            +
            files:
         
     | 
| 
      
 69 
     | 
    
         
            +
            - README.md
         
     | 
| 
      
 70 
     | 
    
         
            +
            - lib/geoscript.rb
         
     | 
| 
      
 71 
     | 
    
         
            +
            - lib/geoscript/geom.rb
         
     | 
| 
      
 72 
     | 
    
         
            +
            - lib/geoscript/projection.rb
         
     | 
| 
      
 73 
     | 
    
         
            +
            - lib/geoscript/util.rb
         
     | 
| 
      
 74 
     | 
    
         
            +
            - lib/geoscript/version.rb
         
     | 
| 
      
 75 
     | 
    
         
            +
            - lib/geoscript/geom/bounds.rb
         
     | 
| 
      
 76 
     | 
    
         
            +
            - lib/geoscript/geom/geom.rb
         
     | 
| 
      
 77 
     | 
    
         
            +
            - lib/geoscript/geom/linearring.rb
         
     | 
| 
      
 78 
     | 
    
         
            +
            - lib/geoscript/geom/linestring.rb
         
     | 
| 
      
 79 
     | 
    
         
            +
            - lib/geoscript/geom/multilinestring.rb
         
     | 
| 
      
 80 
     | 
    
         
            +
            - lib/geoscript/geom/multipoint.rb
         
     | 
| 
      
 81 
     | 
    
         
            +
            - lib/geoscript/geom/multipolygon.rb
         
     | 
| 
      
 82 
     | 
    
         
            +
            - lib/geoscript/geom/point.rb
         
     | 
| 
      
 83 
     | 
    
         
            +
            - lib/geoscript/geom/polygon.rb
         
     | 
| 
      
 84 
     | 
    
         
            +
            - lib/geoscript/geom/io/json.rb
         
     | 
| 
      
 85 
     | 
    
         
            +
            - lib/geoscript/geom/io/wkb.rb
         
     | 
| 
      
 86 
     | 
    
         
            +
            - lib/geoscript/geom/io/wkt.rb
         
     | 
| 
      
 87 
     | 
    
         
            +
            - lib/geoscript/util/bytes.rb
         
     | 
| 
      
 88 
     | 
    
         
            +
            - lib/geotools/commons-pool-1.5.4.jar
         
     | 
| 
      
 89 
     | 
    
         
            +
            - lib/geotools/gt-api-8.0-RC2.jar
         
     | 
| 
      
 90 
     | 
    
         
            +
            - lib/geotools/gt-coverage-8.0-RC2.jar
         
     | 
| 
      
 91 
     | 
    
         
            +
            - lib/geotools/gt-cql-8.0-RC2.jar
         
     | 
| 
      
 92 
     | 
    
         
            +
            - lib/geotools/gt-epsg-hsql-8.0-RC2.jar
         
     | 
| 
      
 93 
     | 
    
         
            +
            - lib/geotools/gt-geojson-8.0-RC2.jar
         
     | 
| 
      
 94 
     | 
    
         
            +
            - lib/geotools/gt-main-8.0-RC2.jar
         
     | 
| 
      
 95 
     | 
    
         
            +
            - lib/geotools/gt-metadata-8.0-RC2.jar
         
     | 
| 
      
 96 
     | 
    
         
            +
            - lib/geotools/gt-opengis-8.0-RC2.jar
         
     | 
| 
      
 97 
     | 
    
         
            +
            - lib/geotools/gt-property-8.0-RC2.jar
         
     | 
| 
      
 98 
     | 
    
         
            +
            - lib/geotools/gt-referencing-8.0-RC2.jar
         
     | 
| 
      
 99 
     | 
    
         
            +
            - lib/geotools/gt-render-8.0-RC2.jar
         
     | 
| 
      
 100 
     | 
    
         
            +
            - lib/geotools/gt-swing-8.0-RC2.jar
         
     | 
| 
      
 101 
     | 
    
         
            +
            - lib/geotools/hsqldb-1.8.0.7.jar
         
     | 
| 
      
 102 
     | 
    
         
            +
            - lib/geotools/imageio-ext-tiff-1.1.4.jar
         
     | 
| 
      
 103 
     | 
    
         
            +
            - lib/geotools/imageio-ext-utilities-1.1.4.jar
         
     | 
| 
      
 104 
     | 
    
         
            +
            - lib/geotools/jai_codec-1.1.3.jar
         
     | 
| 
      
 105 
     | 
    
         
            +
            - lib/geotools/jai_core-1.1.3.jar
         
     | 
| 
      
 106 
     | 
    
         
            +
            - lib/geotools/jai_imageio-1.1.jar
         
     | 
| 
      
 107 
     | 
    
         
            +
            - lib/geotools/jdom-1.0.jar
         
     | 
| 
      
 108 
     | 
    
         
            +
            - lib/geotools/jgridshift-1.0.jar
         
     | 
| 
      
 109 
     | 
    
         
            +
            - lib/geotools/json-simple-1.1.jar
         
     | 
| 
      
 110 
     | 
    
         
            +
            - lib/geotools/jsr-275-1.0-beta-2.jar
         
     | 
| 
      
 111 
     | 
    
         
            +
            - lib/geotools/jt-utils-1.2.0.jar
         
     | 
| 
      
 112 
     | 
    
         
            +
            - lib/geotools/jt-zonalstats-1.2.0.jar
         
     | 
| 
      
 113 
     | 
    
         
            +
            - lib/geotools/jts-1.12.jar
         
     | 
| 
      
 114 
     | 
    
         
            +
            - lib/geotools/miglayout-3.7-swing.jar
         
     | 
| 
      
 115 
     | 
    
         
            +
            - lib/geotools/vecmath-1.3.2.jar
         
     | 
| 
      
 116 
     | 
    
         
            +
            - lib/geotools/xercesImpl-2.4.0.jar
         
     | 
| 
      
 117 
     | 
    
         
            +
            homepage: https://github.com/scooterw/geoscript-ruby
         
     | 
| 
      
 118 
     | 
    
         
            +
            licenses:
         
     | 
| 
      
 119 
     | 
    
         
            +
            - MIT
         
     | 
| 
      
 120 
     | 
    
         
            +
            post_install_message:
         
     | 
| 
      
 121 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 122 
     | 
    
         
            +
            require_paths:
         
     | 
| 
      
 123 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 124 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 125 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 126 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
      
 127 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 128 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 129 
     | 
    
         
            +
              none: false
         
     | 
| 
      
 130 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 131 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 132 
     | 
    
         
            +
              - - ! '>'
         
     | 
| 
      
 133 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 134 
     | 
    
         
            +
                  version: 1.3.1
         
     | 
| 
      
 135 
     | 
    
         
            +
              none: false
         
     | 
| 
      
 136 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 137 
     | 
    
         
            +
            rubyforge_project:
         
     | 
| 
      
 138 
     | 
    
         
            +
            rubygems_version: 1.8.24
         
     | 
| 
      
 139 
     | 
    
         
            +
            signing_key:
         
     | 
| 
      
 140 
     | 
    
         
            +
            specification_version: 3
         
     | 
| 
      
 141 
     | 
    
         
            +
            summary: GeoScript is a library for making use of GeoTools from JRuby easier and more fun.
         
     | 
| 
      
 142 
     | 
    
         
            +
            test_files: []
         
     | 
| 
      
 143 
     | 
    
         
            +
            ...
         
     |