【问题标题】:GeoCoding in Rails for polygon bounds [closed]Rails中用于多边形边界的地理编码[关闭]
【发布时间】:2014-10-06 03:42:13
【问题描述】:

是否有一种方法可以通过一些映射 API/gem 在 Rails 中定义地图区域/地图区域(带有多边形边界)并检测地址是否属于特定区域/区域。

【问题讨论】:

  • 我觉得这应该只是迁移到Software Recomendations而不是关闭。而且,范围也不是很大。答案是“使用 geokit。这是一个代码示例,说明您将如何使用它。”如下图所示。

标签: ruby-on-rails geolocation geocoding


【解决方案1】:

这很容易通过geokit 完成。

首先从 LatLng 构造一个多边形:

polygon = Geokit::Polygon.new([ 
  Geokit::LatLng.new(0,0), 
  Geokit::LatLng.new(10,0), 
  Geokit::LatLng.new(10,10), 
  Geokit::LatLng.new(20,10), 
  Geokit::LatLng.new(20,0), 
  Geokit::LatLng.new(30,0), 
  Geokit::LatLng.new(30,20), 
  Geokit::LatLng.new(0,20)
])

然后你可以测试多边形是否包含LatLng:

point = Geokit::LatLng.new(5,5)

polygon.contains?(point) # => true

【讨论】:

  • 包含?是边界方法。不能使用数组。但 Bounds 表示一个矩形边界,由 SW 和 NE 角定义。
  • 更正了代码。我忘了添加Geokit::Polygon.new。多边形也支持contains?
  • 没错,它有效!伟大的。谢谢
  • 哇,这太棒了!谢谢
  • @infused 如果我给出折线点而不是多边形点,这种方法是否有效?我试图阅读 geokit 和 geokit rails gem 的文档,但找不到关于 gem 如何创建多边形的太多信息。
猜你喜欢
  • 2014-08-05
  • 1970-01-01
  • 1970-01-01
  • 2020-10-13
  • 2013-04-30
  • 2020-05-26
  • 2013-04-25
  • 2017-11-13
  • 2019-10-03
相关资源
最近更新 更多