- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个应用程序,我试图集成一些通用的地理定位功能,包括将一些纬度/经度坐标保存为数据库中的一个点。这样做的目的是允许用户使用他们的位置(由设备提供)或谷歌地图标记来选择他们的坐标。我已经成功地从 map 或设备获取坐标,但是我现在无法从它们创建一个点以保存到数据库中。
我已阅读文档并尝试将此代码添加到我的初始化程序中:
初始化器/rgeo.rb
require 'rgeo-activerecord'
RGeo::ActiveRecord::SpatialFactoryStore.instance.tap do |config|
# By default, use the GEOS implementation for spatial columns.
config.default = RGeo::Geos.factory_generator
# But use a geographic implementation for point columns.
config.register(RGeo::Geographic.spherical_factory(srid: 4326), geo_type: "point")
end
gem 文件:
gem 'activerecord-postgis-adapter'
gem 'rgeo'
gem 'rgeo-activerecord'
迁移:
def change
add_column :monuments, :grid_ref, :point, geographic: true
end
我在尝试创建点时在 Rails 控制台中收到此错误:
irb(main):004:0> m.grid_ref = "POINT(-122.193963 47.675086)"
ArgumentError: invalid value for Float(): "POINT(-122.193963 47.675086)"
from /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/postgresql/oid/point.rb:20:in `Float'
from /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/postgresql/oid/point.rb:20:in `block in type_cast'
from /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/postgresql/oid/point.rb:20:in `map'
from /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/postgresql/oid/point.rb:20:in `type_cast'
from /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/postgresql/oid/point.rb:18:in `type_cast'
from /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/type/value.rb:23:in `type_cast_from_database'
from /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/type/mutable.rb:5:in `type_cast_from_user'
from /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/attribute.rb:100:in `type_cast'
from /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/attribute.rb:42:in `original_value'
from /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/attribute.rb:37:in `value'
from /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/attribute.rb:46:in `value_for_database'
from /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/attribute_methods/dirty.rb:164:in `store_original_raw_attribute'
from /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/attribute_methods/dirty.rb:93:in `write_attribute'
from /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/attribute_methods.rb:50:in `__temp__76279646f5275666'
from (irb):4
from /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/commands/console.rb:110:in `start'
... 9 levels...
from /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:268:in `load'
from /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:268:in `block in load'
from /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:240:in `load_dependency'
from /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:268:in `load'
from /usr/local/lib/ruby/gems/2.2.0/gems/spring-1.6.4/lib/spring/commands/rails.rb:6:in `call'
from /usr/local/lib/ruby/gems/2.2.0/gems/spring-1.6.4/lib/spring/command_wrapper.rb:38:in `call'
from /usr/local/lib/ruby/gems/2.2.0/gems/spring-1.6.4/lib/spring/application.rb:185:in `block in serve'
from /usr/local/lib/ruby/gems/2.2.0/gems/spring-1.6.4/lib/spring/application.rb:156:in `fork'
from /usr/local/lib/ruby/gems/2.2.0/gems/spring-1.6.4/lib/spring/application.rb:156:in `serve'
from /usr/local/lib/ruby/gems/2.2.0/gems/spring-1.6.4/lib/spring/application.rb:131:in `block in run'
from /usr/local/lib/ruby/gems/2.2.0/gems/spring-1.6.4/lib/spring/application.rb:125:in `loop'
from /usr/local/lib/ruby/gems/2.2.0/gems/spring-1.6.4/lib/spring/application.rb:125:in `run'
from /usr/local/lib/ruby/gems/2.2.0/gems/spring-1.6.4/lib/spring/application/boot.rb:18:in `<top (required)>'
from /usr/local/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
我在阅读 this 后采用了这种方法表明模型隐式理解 WKT 字符串的演示,在内部将其转换为“点”对象。
最佳答案
找到解决方案。必须指定 SRID,geographic_factory 现在是 spherical_factory,点是在指定 SRID 的球形工厂上调用的方法。
目前,我已经实现了以下辅助方法,它适用于 rails 4.2.6、postgis 和 postgresql。
请注意工厂先取经度参数:)
def set_latlon(lat, lng)
factory = RGeo::Geographic.spherical_factory(srid: 4326)
# NOTE: this method takes the LNG parameter first!
self.latlon = factory.point(lng, lat)
end
继续前进,如果您正在遵循与我相同的空间配置教程,您会注意到以这种方式创建的行将失败。我通过用 :geographic
列替换 :point
列来解决这个问题。迁移代码如下。
class Location < ActiveRecord::Migration
def change
remove_column :locations, :latlon # formerly of type :point
add_column :locations, :latlon, :geography, limit: {:srid=>4326, :type=>"point", :geographic=>true}, null: false
end
end
关于ruby-on-rails - 尝试从纬度/经度创建点的 RGeo 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36775869/
所以:我有以下函数,改编自在线找到的公式,它采用两个纬度/经度坐标并计算它们之间的距离(以英里为单位)(沿着球形地球): public static double distance (double l
我有一个给定点(经度、纬度),我想获取给定点 5 英里半径范围内的所有点范围? 最佳答案 我只是在这里猜测,但我认为您需要找到一种不同的方法。如果您尝试使用 Foursquare、Google map
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 5 年前。
我找到了一些代码,用于将纬度/经度转换为给定图像上的像素,反之亦然。我将其移植到 JavaScript,但在纬度上得到了不正确的返回值。我测试了原始的、未修改的代码,它给出了同样的不准确之处。下面是带
我正在考虑使用 rChart/LeafLet 为我所在县的房屋销售创建一个 Shiny 的应用程序。在任何给定时间,都有数百套房屋出售。想要为所有人绘制街道地址到地理位置(纬度/经度)的 map 并将
是否有任何方法(任何 API 或任何 URL)仅通过传递区号(邮政编码)来查找经纬度? 最佳答案 Google map 地理编码器将仅根据邮政编码进行搜索。 这是一个例子:(和一个 fiddle 来查
我正在尝试使用 openlayers 中的方形多边形来获取边界框。我需要从框中获取 North、South、West 和 East 值。现在我正在使用: var topleft = vectors.f
下面的代码将在 map 中添加一个标记并在警报中显示其纬度/经度。 var note = document.getElementById('note'); var datepick = documen
如何将地址或城市转换为纬度/经度?我可以从哪些商业机构“租用”这项服务?这将用于具有全时互联网访问的 Windows PC 上的商业桌面应用程序。 最佳答案 Google 有一个地理编码 API,对于
我的地理位置字符串为 25°9'37"N 55°13'28"E。使用 JavaScript Regex 我想从上面的字符串中提取 Lat 和 Lng。谢谢。 最佳答案 Your first row c
考虑在 map 上有一个圆,其中心为 GLatLng (A),半径 (r) 以米为单位。 如何计算B位置的GLatLng?假设r平行于赤道。 使用 GLatLng.distanceFrom() 方法在
我有 CLLocation 对象,其中包含用户的当前位置,并且对于可以倾斜的矩形的每个角,我有 4 个纬度/经度对。现在我想检查 CLLocation 坐标是否在该矩形内。 以下是矩形的坐标 #def
我正在尝试使用以下代码获取用户当前的纬度/经度: LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SER
我在这里不合时宜,所以如果我没有正确/清楚地问这个问题,请原谅我。 我有一张用户表,每个用户都有经纬度。 我收到一个联邦机构的查询,它提供了这样的多边形或圆形: 38.47,-120.14 38.34
我刚刚开始使用 python 的 BeautifulSoup 包进行抓取。在我的代码中,我得到以下汤对象 >>> soupObj [u'$(function(){SEAT.PG.initDialog(
目前我想通过JDBC将我的GPS经纬度发送到MYSQL。为了检索 GPS 纬度,我使用了下面的代码,并且在 GPSTracker 类中有 GPS 跟踪器代码。这将在任何时候按下按钮来 toast 纬度
我想根据输入的源地址和目标地址画一条路线。我需要根据地址获取纬度/日志才能在 android 中绘制 map 。那么我如何根据输入的地址获取纬度/日志。 Geocoder geoCoder = ne
如何在 android map 上显示我从服务器收到的纬度和经度。我实现了 google map V2 但不知道如何在 map 上显示 gps 坐标。经过大量研究,我来到这里,但无法找到一个合理的解决
我的 Controller 中有以下代码。 .controller('MapCtrl', ['$scope', function initialize() {
我也四处搜寻,但没有发现任何真正有帮助的东西。情况如下: 假设我对城市和天气预报有一个简单的关系。我们可以与纬度和经度联系起来,因此我们可以得到以下结果: 城市表: cityId | name
我是一名优秀的程序员,十分优秀!