2017-05-29 58 views
1

我很努力地使用Ruby的GEOS庫,我只是想用IRB創建一個簡單的點。 require geos返回true,以便安裝正常工作。但我並不真正瞭解documentation,並且在github頁面上沒有任何幫助。Geos ruby​​ - 創建點

我試圖Geos::Point.new('POINT(0 0)')但它返回一個TypeError: allocator undefined for Geos::Point

回答

2

GEOS是一個C++庫。查看那裏的文檔以瞭解所需的Ruby語法並沒有什麼幫助。

您需要這個rgeo寶石。

這裏有一個很好的教程:"Geo-Rails Part 3: Spatial Data Types with RGeo"

舉個例子:

# gem install rgeo 
require 'rgeo' 

factory = RGeo::Cartesian.factory 

point = factory.point(0, 0) 
puts point 
# POINT (0.0 0.0) 

square = factory.parse_wkt("POLYGON((1 0, 0 1, -1 0, 0 -1, 1 0))") 
puts square 
# POLYGON ((1.0 0.0, 0.0 1.0, -1.0 0.0, 0.0 -1.0, 1.0 0.0)) 

puts square.contains?(point) 
# true