首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在RGeo中通过偏移创建点

在RGeo中通过偏移创建点
EN

Stack Overflow用户
提问于 2014-01-29 21:21:11
回答 1查看 335关注 0票数 1

我正在写一个相对简单的应用程序,其中我使用RGeo来计算地球上的点之间的距离。我正在使用RGeo::Geographic.spherical_factory来完成这项工作。

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

我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2014-07-11 08:04:30

也许这会有帮助:

代码语言:javascript
复制
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)

这给了你

代码语言:javascript
复制
99.99999999906868
99.99999999906868

注意:我不确定RGeo::Geographic.simple_mercator_factoryRGeo::Geographic.spherical_factory之间有什么不同。

代码语言:javascript
复制
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

来自How to move a point in Rgeo

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21432349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档