lib/ogr/spatial_reference_mixins/exporters.rb in ffi-gdal-1.0.0.beta5 vs lib/ogr/spatial_reference_mixins/exporters.rb in ffi-gdal-1.0.0.beta6
- old
+ new
@@ -6,12 +6,11 @@
def to_erm
projection_name = FFI::MemoryPointer.new(:string)
datum_name = FFI::MemoryPointer.new(:string)
units = FFI::MemoryPointer.new(:string)
- ogr_err = FFI::OGR::SRSAPI.OSRExportToERM(@c_pointer, projection_name,
- datum_name, units)
+ ogr_err = FFI::OGR::SRSAPI.OSRExportToERM(@c_pointer, projection_name, datum_name, units)
ogr_err.handle_result 'Required parameters (name, datum name, units) are not defined'
{
projection_name: projection_name.read_string,
datum_name: datum_name.read_string,
@@ -19,37 +18,24 @@
}
end
# @return [Array<String>]
def to_mapinfo
- return_ptr = FFI::MemoryPointer.new(:string)
- return_ptr_ptr = FFI::MemoryPointer.new(:pointer)
- return_ptr_ptr.write_pointer(return_ptr)
-
- ogr_err = FFI::OGR::SRSAPI.OSRExportToMICoordSys(@c_pointer,
- return_ptr_ptr)
+ return_ptr_ptr = GDAL._pointer_pointer(:string)
+ ogr_err = FFI::OGR::SRSAPI.OSRExportToMICoordSys(@c_pointer, return_ptr_ptr)
ogr_err.handle_result
return_ptr_ptr.get_array_of_string(0)
end
# @return [Hash]
def to_pci
- proj = FFI::MemoryPointer.new(:string)
- proj_ptr = FFI::MemoryPointer.new(:pointer)
- proj_ptr.write_pointer(proj)
+ proj_ptr = GDAL._pointer_pointer(:string)
+ units_ptr = GDAL._pointer_pointer(:string)
+ prj_params_ptr = GDAL._pointer_pointer(:double)
- units = FFI::MemoryPointer.new(:string)
- units_ptr = FFI::MemoryPointer.new(:pointer)
- units_ptr.write_pointer(units)
-
- prj_params = FFI::MemoryPointer.new(:double)
- prj_params_ptr = FFI::MemoryPointer.new(:pointer)
- prj_params_ptr.write_pointer(prj_params)
-
- ogr_err = FFI::OGR::SRSAPI.OSRExportToPCI(@c_pointer, proj_ptr,
- units_ptr, prj_params_ptr)
+ ogr_err = FFI::OGR::SRSAPI.OSRExportToPCI(@c_pointer, proj_ptr, units_ptr, prj_params_ptr)
ogr_err.handle_result
{
projection: proj_ptr.read_pointer.read_string,
units: units_ptr.read_pointer.read_string,
@@ -58,31 +44,25 @@
end
# @return [String]
# @raise [GDAL::UnsupportedOperation] If empty definition.
def to_proj4
- proj4 = FFI::MemoryPointer.new(:string)
- proj4_ptr = FFI::MemoryPointer.new(:pointer)
- proj4_ptr.write_pointer(proj4)
-
+ proj4_ptr = GDAL._pointer_pointer(:string)
ogr_err = FFI::OGR::SRSAPI.OSRExportToProj4(@c_pointer, proj4_ptr)
ogr_err.handle_result
- proj4_ptr.read_pointer.read_string
+ GDAL._read_pointer_pointer_safely(proj4_ptr, :string)
end
# @return [Hash]
def to_usgs
proj_sys = FFI::MemoryPointer.new(:long)
zone = FFI::MemoryPointer.new(:long)
datum = FFI::MemoryPointer.new(:long)
- prj_params = FFI::MemoryPointer.new(:double)
- prj_params_ptr = FFI::MemoryPointer.new(:pointer)
- prj_params_ptr.write_pointer(prj_params)
+ prj_params_ptr = GDAL._pointer_pointer(:double)
- ogr_err = FFI::OGR::SRSAPI.OSRExportToUSGS(@c_pointer, proj_sys,
- zone, prj_params_ptr, datum)
+ ogr_err = FFI::OGR::SRSAPI.OSRExportToUSGS(@c_pointer, proj_sys, zone, prj_params_ptr, datum)
ogr_err.handle_result
{
projection_system_code: proj_sys.read_long,
zone: zone.read_long,
@@ -91,41 +71,30 @@
}
end
# @return [String]
def to_wkt
- wkt_ptr = FFI::MemoryPointer.new(:string)
- wkt_ptr_ptr = FFI::MemoryPointer.new(:pointer)
- wkt_ptr_ptr.write_pointer(wkt_ptr)
-
+ wkt_ptr_ptr = GDAL._pointer_pointer(:string)
ogr_err = FFI::OGR::SRSAPI.OSRExportToWkt(@c_pointer, wkt_ptr_ptr)
ogr_err.handle_result
- wkt_ptr_ptr.read_pointer.read_string
+ GDAL._read_pointer_pointer_safely(wkt_ptr_ptr, :string)
end
# @param simplify [Boolean] +true+ strips off +AXIS+, +AUTHORITY+ and
# +EXTENSION+ nodes.
def to_pretty_wkt(simplify = false)
- wkt_ptr = FFI::MemoryPointer.new(:string)
- wkt_ptr_ptr = FFI::MemoryPointer.new(:pointer)
- wkt_ptr_ptr.write_pointer(wkt_ptr)
-
- ogr_err = FFI::OGR::SRSAPI.OSRExportToPrettyWkt(@c_pointer,
- wkt_ptr_ptr, simplify)
+ wkt_ptr_ptr = GDAL._pointer_pointer(:string)
+ ogr_err = FFI::OGR::SRSAPI.OSRExportToPrettyWkt(@c_pointer, wkt_ptr_ptr, simplify)
ogr_err.handle_result
- wkt_ptr_ptr.read_pointer.read_string
+ GDAL._read_pointer_pointer_safely(wkt_ptr_ptr, :string)
end
# @return [String]
def to_xml(dialect = nil)
- xml_ptr = FFI::MemoryPointer.new(:string)
- xml_ptr_ptr = FFI::MemoryPointer.new(:pointer)
- xml_ptr_ptr.write_pointer(xml_ptr)
-
- ogr_err = FFI::OGR::SRSAPI.OSRExportToXML(@c_pointer, xml_ptr_ptr,
- dialect)
+ xml_ptr_ptr = GDAL._pointer_pointer(:string)
+ ogr_err = FFI::OGR::SRSAPI.OSRExportToXML(@c_pointer, xml_ptr_ptr, dialect)
ogr_err.handle_result
xml_ptr_ptr.get_array_of_string(0).join
end
end