问题标签 [rgeo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - RGeo:将多边形投影到具有不同 SRID 的谷歌地图上
我有一个代表学区的多边形,它是从NYC Open Data导入的。我相信坐标在epsg 投影 2263 - nad83 / 纽约长岛
我无法将坐标转换为谷歌地图可用的格式。
这是我从原始 shapefile 导入多边形的代码:
在我的模型中:
在我的控制器中:
我知道我缺少关于如何转换坐标的一些东西,但我不确定从这里去哪里,即使在阅读了 Daniel Azuma 的优秀指南之后。有人知道怎么做吗?
ruby-on-rails - 当由 let 创建时,Rspec 模型方法返回 nil
好的,所以这看起来像是一个新手问,但是当我创建一个我的模型实例时let
,由于某种原因,它上面的所有 getter 方法都返回 nil。这是我的例子:
模型:
规格:
(#longlat 属性被注释掉,因为.centroid
在 RGeo 中对球形定义的多边形调用该方法是不行的。在我的待办事项列表中获得正确的投影与这个问题无关)并且规范失败像这样:
FWIW,这是 Rspec 日志:
作为参考,我可以Parcel.create
在 Rails 控制台中成功运行,并获取实例变量以返回非零值
我正在运行 rails 3.2,使用带有 postgis 2 的 postgres 9.3,并且严重依赖于 activerecord-postgis-adaptor、RGeo、activerecord-postgres-hstore 等。
有什么想法吗?
ruby-on-rails - 在 Rails 中使用 form_for 插入 lat/long 坐标
我正在使用 Rails 4.4.1、Ruby 2.1.2、RGeo 0.3.20 和 activerecord-mysql2spatial-adapter 0.4.3
我的问题可能很简单,因为我是 Ruby 和 Rails 的新手,但到目前为止我在网络上找不到任何有用的东西。
我想创建一个表单来在我的数据库中插入地理空间坐标,但我不知道如何访问 :latlon 字段 x 和 y。这是我的暂定代码:
访问 localhost:3000/cities/new url 时出现的错误是
任何人都知道如何创建一个表单来在我的数据库中插入 latlon.x 和 latlon.y 数据?
r - 自然邻域插值。计算多边形相交面积时出错
我正在尝试在 R 中编写此算法。它是否已经存在于任何包中?!?
这就是我所做的(在 SO 和各种博客文章的帮助下):
所以基本上我画了一次加一个点的voronoi tassellation,并尝试计算多边形之间的交点,问题是:max(int) 给0,好像没有插值,为什么会这样?面积计算gIntersection
正确吗?它们的价值非常小,我不知道度量单位。
编辑:新位置之前的流苏和之后的流苏。我不确定流苏返回的区域,这就是我认为错误所在的地方,但我不确定。
ruby-on-rails - 使用 PostGIS RGeo Lat/Lng 点将纬度保存为 -90
我正在使用地理空间坐标并在 rails 控制台中测试我的编码
看起来它正在将我的经度更改为 -90.0 而不是应该是 -93.291557312011719
任何帮助将不胜感激..尝试过
“点(#{lng} #{lat})”
和
“点(#{lng.to_f} #{lat.to_f})”
服务器信息
IRB 控制台
但如果我不想保存到数据库,我会得到这个
这是我的位置表
ruby-on-rails - 在 Heroku 上使用 activerecord-postgis-adapter 返回 nil 的 POINT
我正在使用 activerecord-postgis-adapter 将(纬度,经度)值保存为POINT
s。使用以下语法保存点:POINT( lat lng)
. 我的模型 ,Foo
有一个属性spot
,POINT
保存在其中。当部署到 Heroku 时,spot
在创建新的Foo
. 但是,它在以下情况下按预期工作:
- 在本地使用开发数据库(在生产和开发环境中)
- 在本地连接到生产数据库
- 在 Heroku 内的 rails 控制台中
activerecord-postgis-adapter 在本地和 Heroku (2.2.0) 上的版本相同。有没有人知道 Heroku 生产环境(不在控制台中出现)中可能导致这种情况的不同之处?
ruby - ActiveRecord 子查询内连接
我正在尝试将“原始”PostGIS SQL 查询转换为 Rails ActiveRecord 查询。我的目标是将两个连续的 ActiveRecord 查询(每个约 1 毫秒)转换为单个 ActiveRecord 查询(约 1 毫秒)。使用下面的 SQL,ActiveRecord::Base.connection.execute
我能够验证时间的减少。
因此,我的直接请求是帮助我将此查询转换为 ActiveRecord 查询(以及执行它的最佳方式)。
请注意,该值<postalcode>
是此查询中唯一的可变数据。显然,这里有两个模型User
和ZipCache
。User
与 没有直接关系ZipCache
。
当前的两步 ActiveRecord 查询如下所示。
gps - 将奇怪的 lat/lng 格式转换为十进制
我有一个设备以他们描述为“ddmm.mmmm”的格式向我报告其位置
它看起来像这样:
纬度:5108.5837 N 经度:00052.6334 E
任何人都知道如何将其转换为可以与 RGeo 一起使用的普通十进制数?
ruby-on-rails - 保存记录后,activerecord-postgis-adapter 返回字符串而不是几何
从数据库中检索几何列的值时出现问题。我保存一个RGeo::Cartesian::PolygonImpl
实例,重新加载记录,当我检索该值时,我得到一个String
而不是几何。
我的config/database.yml
有:
我的表具有以下列定义:
我的模型具有以下设置:
通过 Rails 控制台,我正在创建一个多边形并将其保存到数据库(为简洁起见,输出被删节):
此时,如果我得到 的值property.parcel
,我就正确地得到了RGeo::Cartesian::PolygonImpl
。但是,如果我现在重新加载记录,我会得到一个字符串:
现在,要注意的一件有趣的事情是,如果我#pluck
在 上使用ActiveRecord::Relation
,我确实得到了 RGeo 多边形:
因此,我认为 Rails 在通过列访问器访问时不知道将值转换为 Geometry 存在问题,但我不完全确定为什么会发生这种情况。
我的项目具有以下设置:
- 红宝石 2.1.5
- 导轨 4.1.8
- activerecord-postgis-适配器 2.2.1
- rgeo 0.3.20
- rgeo-activerecord 2.0.0
- Postgres 9.3.5
- 地理信息系统 2.1.4
ruby-on-rails - Heroku 上的未定义方法(使用 Puma)
我们将 Postgis 适配器与 Ruby on Rails 一起使用,并且我们正在尝试将 Puma on Heroku 用于我们的生产环境。我们的测试在开发系统上完美通过。此外,该服务器在除 Heroku 之外的所有生产服务器上都能完美运行,但是一旦我们在 Heroku + Puma(或 Unicron)上运行它,就会出现异常。
附带说明一下,当在 Heroku 上使用 Webrick 部署时,应用程序可以顺利运行。
当使用 puma(稍后尝试使用 unicorn)作为默认 Web 服务器时,一切都很顺利,但只有一件事:
我正在使用 RGeo gem 来跟踪一些蜂巢位置。当切换到 Puma (Unicorn) 时,在我的 Javascript 视图中调用@hive.current_location.lon
和@hive.current_location.lat
抛出错误:
ActionView::Template::Error (undefined method 'lon' and 'lat' for #<RGeo::Cartesian::PointImpl:0x007f700846c970>)
同时,我尝试通过以下方式访问 current_location 经纬度heroku run rails console
有趣的是,在 Heroku 控制台上获取 lat 和 long 值会返回正确的值。看来问题是由美洲狮和独角兽引起的。
有什么建议吗?