如何确定lat / lon对是否位于shapefile多边形内部

时间:2018-01-15 23:32:11

标签: ruby-on-rails-5 postgis rgeo rgeo-shapefile

我在Rails 5应用程序中使用rgeorgeo-shapefile宝石。我的目标是加载邻域的shapefile并确定纬度/经度点位于哪个邻域。

在他们的文档中他们有这个例子。

require 'rgeo/shapefile'
name = "neighborhoods.shp"
RGeo::Shapefile::Reader.open(name) do |file|
  puts "File contains #{file.num_records} records."
  file.each do |record|
    puts "Record number #{record.index}:"
    puts "  Geometry: #{record.geometry.as_text}"
    puts "  Attributes: #{record.attributes.inspect}"
  end
  file.rewind
  record = file.next
  puts "First record geometry was: #{record.geometry.as_text}"
end

我不太确定如何从这个例子转向我想做的事情。

1 个答案:

答案 0 :(得分:0)

使用#within?方法。

point.within?(neighborhood)

点和邻域的坐标系需要相同。我认为对这些类型的操作使用直线投影更有效,但我过去也曾使用WGS成功使用它们,尽管我记得我已经为某些类型的重叠类型查询收到了错误消息在WGS / 4326中。 #within?应该可以正常工作。