Class: GeoRuby::SimpleFeatures::MultiPolygon
- Inherits:
-
GeometryCollection
- Object
- Geometry
- GeometryCollection
- GeoRuby::SimpleFeatures::MultiPolygon
- Defined in:
- lib/geo_ruby/simple_features/multi_polygon.rb
Overview
Represents a group of polygons (see Polygon).
Instance Attribute Summary
Attributes inherited from GeometryCollection
Attributes inherited from Geometry
Class Method Summary collapse
-
.from_coordinates(point_sequence_sequences, srid = DEFAULT_SRID, with_z = false, with_m = false) ⇒ Object
Creates a multi polygon from sequences of points : ((((x,y)…(x,y)),((x,y)…(x,y)),((x,y)…(x,y))).
-
.from_polygons(polygons, srid = DEFAULT_SRID, with_z = false, with_m = false) ⇒ Object
Creates a multi polygon from an array of polygons.
Instance Method Summary collapse
- #as_json(_options = {}) ⇒ Object
-
#binary_geometry_type ⇒ Object
:nodoc:.
-
#initialize(srid = DEFAULT_SRID, _with_z = false, _with_m = false) ⇒ MultiPolygon
constructor
A new instance of MultiPolygon.
- #points ⇒ Object
-
#text_geometry_type ⇒ Object
WKT geometry type.
-
#text_representation(allow_z = true, allow_m = true) ⇒ Object
Text representation of a MultiPolygon.
- #to_coordinates ⇒ Object
Methods inherited from GeometryCollection
#==, #binary_representation, #bounding_box, from_geometries, #georss_gml_representation, #georss_simple_representation, #georss_w3cgeo_representation, #kml_representation, #m_range, #method_missing
Methods inherited from Geometry
#as_ewkb, #as_ewkt, #as_georss, #as_hex_ewkb, #as_hex_wkb, #as_kml, #as_wkb, #as_wkt, #bounding_box, #envelope, from_ewkb, from_ewkt, from_geojson, from_georss, from_georss_with_tags, from_hex_ewkb, from_kml, #m_range, #to_json
Constructor Details
#initialize(srid = DEFAULT_SRID, _with_z = false, _with_m = false) ⇒ MultiPolygon
Returns a new instance of MultiPolygon.
7 8 9 |
# File 'lib/geo_ruby/simple_features/multi_polygon.rb', line 7 def initialize(srid = DEFAULT_SRID, _with_z = false, _with_m = false) super(srid) end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class GeoRuby::SimpleFeatures::GeometryCollection
Class Method Details
.from_coordinates(point_sequence_sequences, srid = DEFAULT_SRID, with_z = false, with_m = false) ⇒ Object
Creates a multi polygon from sequences of points : ((((x,y)…(x,y)),((x,y)…(x,y)),((x,y)…(x,y)))
48 49 50 51 52 |
# File 'lib/geo_ruby/simple_features/multi_polygon.rb', line 48 def self.from_coordinates(point_sequence_sequences, srid = DEFAULT_SRID, with_z = false, with_m = false) multi_polygon = new(srid, with_z, with_m) multi_polygon.concat(point_sequence_sequences.collect { |point_sequences| Polygon.from_coordinates(point_sequences, srid, with_z, with_m) }) multi_polygon end |
.from_polygons(polygons, srid = DEFAULT_SRID, with_z = false, with_m = false) ⇒ Object
Creates a multi polygon from an array of polygons
41 42 43 44 45 |
# File 'lib/geo_ruby/simple_features/multi_polygon.rb', line 41 def self.from_polygons(polygons, srid = DEFAULT_SRID, with_z = false, with_m = false) multi_polygon = new(srid, with_z, with_m) multi_polygon.concat(polygons) multi_polygon end |
Instance Method Details
#as_json(_options = {}) ⇒ Object
35 36 37 38 |
# File 'lib/geo_ruby/simple_features/multi_polygon.rb', line 35 def as_json( = {}) { type: 'MultiPolygon', coordinates: to_coordinates } end |
#binary_geometry_type ⇒ Object
:nodoc:
11 12 13 |
# File 'lib/geo_ruby/simple_features/multi_polygon.rb', line 11 def binary_geometry_type #:nodoc: 6 end |
#points ⇒ Object
15 16 17 18 19 |
# File 'lib/geo_ruby/simple_features/multi_polygon.rb', line 15 def points @points ||= geometries.reduce([]) do |arr, r| arr.concat(r.rings.map(&:points).flatten) end end |
#text_geometry_type ⇒ Object
WKT geometry type
27 28 29 |
# File 'lib/geo_ruby/simple_features/multi_polygon.rb', line 27 def text_geometry_type #:nodoc: 'MULTIPOLYGON' end |
#text_representation(allow_z = true, allow_m = true) ⇒ Object
Text representation of a MultiPolygon
22 23 24 |
# File 'lib/geo_ruby/simple_features/multi_polygon.rb', line 22 def text_representation(allow_z = true, allow_m = true) #:nodoc: @geometries.map { |polygon| '(' + polygon.text_representation(allow_z, allow_m) + ')' }.join(',') end |
#to_coordinates ⇒ Object
31 32 33 |
# File 'lib/geo_ruby/simple_features/multi_polygon.rb', line 31 def to_coordinates geometries.map(&:to_coordinates) end |