Method: RGeo::Geos::FFIFactory#multi_point

Defined in:
lib/rgeo/geos/ffi_factory.rb

#multi_point(elems) ⇒ Object

See RGeo::Feature::Factory#multi_point



327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
# File 'lib/rgeo/geos/ffi_factory.rb', line 327

def multi_point(elems)
  elems = elems.to_a unless elems.is_a?(Array)
  elems = elems.map do |elem|
    RGeo::Feature.cast(
      elem,
      self,
      RGeo::Feature::Point,
      :force_new,
      :keep_subtype
    )
  end
  return unless elems.all?
  elems = elems.map(&:detach_fg_geom)
  klasses = Array.new(elems.size, FFIPointImpl)
  fg_geom = ::Geos::Utils.create_collection(::Geos::GeomTypes::GEOS_MULTIPOINT, elems)
  FFIMultiPointImpl.new(self, fg_geom, klasses)
end