class OGR::Point

Public Class Methods

new(geometry_ptr = nil, spatial_reference: nil) click to toggle source

@param [FFI::Pointer] geometry_ptr

# File lib/ogr/geometries/point.rb, line 8
def initialize(geometry_ptr = nil, spatial_reference: nil)
  geometry_ptr ||= OGR::Geometry.create(:wkbPoint)
  initialize_from_pointer(geometry_ptr)
  self.spatial_reference = spatial_reference if spatial_reference
end

Public Instance Methods

add_point(x, y) click to toggle source

Adds a point to a LineString or Point geometry.

@param x [Float] @param y [Float]

# File lib/ogr/geometries/point.rb, line 51
def add_point(x, y)
  FFI::OGR::API.OGR_G_AddPoint_2D(@c_pointer, x, y)
end
point() click to toggle source

@return [<Array<Float, Float>] [x, y].

# File lib/ogr/geometries/point.rb, line 29
def point
  return [] if empty?

  x_ptr = FFI::MemoryPointer.new(:double)
  y_ptr = FFI::MemoryPointer.new(:double)
  z_ptr = FFI::MemoryPointer.new(:double)
  FFI::OGR::API.OGR_G_GetPoint(@c_pointer, 0, x_ptr, y_ptr, z_ptr)

  [x_ptr.read_double, y_ptr.read_double]
end
Also aliased as: point_value
point_value()
Alias for: point
set_point(x, y) click to toggle source

@param x [Number] @param y [Number]

# File lib/ogr/geometries/point.rb, line 43
def set_point(x, y)
  FFI::OGR::API.OGR_G_SetPoint_2D(@c_pointer, 0, x, y)
end
x() click to toggle source

@return [Float]

# File lib/ogr/geometries/point.rb, line 15
def x
  return nil if empty?

  FFI::OGR::API.OGR_G_GetX(@c_pointer, 0)
end
y() click to toggle source

@return [Float]

# File lib/ogr/geometries/point.rb, line 22
def y
  return nil if empty?

  FFI::OGR::API.OGR_G_GetY(@c_pointer, 0)
end