Skip to content

Instantly share code, notes, and snippets.

@johnjohndoe
Last active December 19, 2015 19:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save johnjohndoe/6007016 to your computer and use it in GitHub Desktop.
Save johnjohndoe/6007016 to your computer and use it in GitHub Desktop.
Simple Ruby script to demonstrate using Ruby bindings to access gdal's API. Source: http://groups.open.org.nz/groups/geomash/messages/topic/1cM3o6EkTv0sjbeG460Qfw
# Simple Ruby script to demonstrate using Ruby bindings to access gdal's API
#
# Author: andrewfa
# Date: Mar 19, 2012
# Source: http://groups.open.org.nz/groups/geomash/messages/topic/1cM3o6EkTv0sjbeG460Qfw
require 'rubygems'
require 'gdal-ruby/ogr'
filename = './nz-primary-road-parcels.shp'
dataset = Gdal::Ogr.open(filename)
number_of_layers = dataset.get_layer_count
print "Number of Layers : #{number_of_layers}\n"
number_of_layers.times do |layer_index|
layer = dataset.get_layer(layer_index)
print "Feature Count : #{layer.get_feature_count}\n"
layer.get_feature_count.times do |feature_index|
feature = layer.get_feature(feature_index)
print "Feature - #{feature_index}\n"
geoms = feature.get_geometry_ref()
# get number of geometries
geoms.get_geometry_count.times do |geometry_index|
geom = geoms.get_geometry_ref(geometry_index)
geom.get_point_count.times do |point_index|
x = geom.get_x(point_index)
y = geom.get_y(point_index)
z = geom.get_z(point_index)
print "X: #{x}, Y: #{y}, Z: #{z}\n"
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment