Sha256: 0ca82fd68ea0d6af26eeb8f7f41430b60ef79757863dfaf8542e6d847967a7ac
Contents?: true
Size: 1.77 KB
Versions: 3
Compression:
Stored size: 1.77 KB
Contents
require 'geo_ruby/simple_features/geometry_collection' module GeoRuby module SimpleFeatures # Represents a group of line strings (see LineString). class MultiLineString < GeometryCollection def initialize(srid = DEFAULT_SRID, _with_z = false, _with_m = false) super(srid) end def binary_geometry_type #:nodoc: 5 end def points geometries.map(&:points).flatten end # Text representation of a multi line string def text_representation(allow_z = true, allow_m = true) #:nodoc: @geometries.collect { |line_string| '(' + line_string.text_representation(allow_z, allow_m) + ')' }.join(',') end # WKT geometry type def text_geometry_type #:nodoc: 'MULTILINESTRING' end def to_line_string(_join = true) LineString.from_points(points) end def to_coordinates geometries.map(&:to_coordinates) end def as_json(_options = {}) { type: 'MultiLineString', coordinates: to_coordinates } end # Creates a new multi line string from an array of line strings def self.from_line_strings(line_strings, srid = DEFAULT_SRID, with_z = false, with_m = false) multi_line_string = new(srid, with_z, with_m) multi_line_string.concat(line_strings) multi_line_string end # Creates a new multi line string from sequences of points : (((x,y)...(x,y)),((x,y)...(x,y))) def self.from_coordinates(point_sequences, srid = DEFAULT_SRID, with_z = false, with_m = false) multi_line_string = new(srid, with_z, with_m) multi_line_string.concat(point_sequences.collect { |points| LineString.from_coordinates(points, srid, with_z, with_m) }) multi_line_string end end end end
Version data entries
3 entries across 3 versions & 2 rubygems