在RGEO中偏移创建点

  • 本文关键字:创建 RGEO ruby rgeo
  • 更新时间 :
  • 英文 :


我正在编写一个相对简单的应用程序,其中我正在使用rgeo来计算全球点之间的距离。我正在使用RGeo::Geographic.spherical_factory

现在,我希望能够通过将偏移添加到现有点来创建一个新点。例如,我希望能够找到位于现有点以东500米和200米以东500米处的经度和纬度。

我应该怎么做?

也许会有所帮助:

a = move_point(-72.4861, 44.1853, 0, 0)     # POINT (-72.4861 44.18529999999999)
b = move_point(-72.4861, 44.1853, 100, 0)   # POINT (-72.48520168471588 44.18529999999999)
c = move_point(-72.4861, 44.1853, 0, 100)   # POINT (-72.4861 44.18594416889434)
puts a.distance(b)
puts a.distance(c)

给你

99.99999999906868
99.99999999906868

注意:我不确定RGeo::Geographic.simple_mercator_factoryRGeo::Geographic.spherical_factory之间的区别是否在这里。

require 'rgeo'
def move_point(lon, lat, x_offset_meters, y_offset_meters)
  wgs84 = RGeo::Geographic.simple_mercator_factory.point(lon, lat)
  wgs84_factory = wgs84.factory
  webmercator = wgs84_factory.project wgs84
  webmercator_factory = webmercator.factory
  webmercator_moved = webmercator_factory.point(webmercator.x+x_offset_meters, webmercator.y+y_offset_meters)
  wgs84_factory.unproject webmercator_moved
end

从如何移动rgeo

相关内容

  • 没有找到相关文章

最新更新