Tag: rails geocoder

使用Geocoder gem通过IP搜索位置无法正常使用rails 4

我在我的rails应用程序中添加了geocoder gem,但是当我通过IP搜索位置时它没有正确响应。 问题是它返回的是nil数组。 Geocoding API’s response was not valid JSON. [] 但有时候它有效,我不知道为什么。 我做了什么: 的Gemfile gem ‘geocoder’ 初始化/ geocoder.rb Geocoder.configure( :timeout => 20, :lookup => :google, #:ip_lookup => :google, #:api_key => “xxxx-xxx”, :units => :km ) application_controller.rb def current_location if Rails.env.development? geo_data = Geocoder.search(‘50.131.44.114’) else geo_data = Geocoder.search(request.remote_ip) end [geo_data[0].city, geo_data[0].country_code ].compact.join(‘, ‘) end

Google地图 – 将其设置为与Rails 5一起使用 – 地理编码器不进行地理编码

我已经尝试了4年多来尝试找出在我的Rails应用程序中使用谷歌地图的方法。 我目前正在尝试使用Rails 5。 我最近发布了这个呼救声。 我收到的建议对我没有用,所以我现在再试一次,看看别人是否知道一些事情。 Rails 5,Gmaps4Rails – 设置 我有组织和地址的模型。 协会是: 组织 has_many :addresses, as: :addressable accepts_nested_attributes_for :addresses, reject_if: :all_blank, allow_destroy: true 地址 belongs_to :addressable, :polymorphic => true, optional: true 我不再试图用gmaps4rails gem来解决这个问题了。 我从我的gem文件中删除了它。 我仍然有地理编码器gem。 在我的地址控制器中,我有 def index @addresses = Address.all end def show end 在我的组织控制器中,我有 def index @organisations = Organisation.all authorize @organisations end def show […]

接收错误PG :: UndefinedColumn:ERROR:使用Geocoder的near方法时,mymodels.distance列不存在

使用此查询时(与Railscasts第273集中相同): @locations = Location.near(params[:search], 50, :order => :distance) 或者,更简洁: @mymodels = MyModel.near(address, distance, order: :distance) 我收到错误: PG::UndefinedColumn: ERROR: column mymodels.distance does not exist 应该通过Geocoder gem将distance列添加到结果中,但它似乎不会出现在结果中(因此我得到上述错误)。

Ruby Geocoder可以在reverse_geocode调用中返回街道名称吗?

如果模型中包含after_validation :reverse_geocode行,则地理编码器 gem将自动反转地理编码。 这导致一长串文本被保存为地址,但格式类似于“街道名称,城市名称,县名,州名,邮政编码,国家名称”。 我只对这个特定项目的街道名称感兴趣,所以我想知道是否有办法修改after_validation调用以仅保存该信息。 如果我手动执行反向地理编码,我可以访问结果中的road值: place = Place.first result = Geocoder.search(“#{place.latitude},#{place.longitude}”) street = result[0].data[‘address’][‘road’] 我可以设置我自己的自定义after_validation ,但是如果geocoder已经提供了这个function,我宁愿不重复function。 或者,如果有一种完全不同的方式可以将纬度/经度转换为街道名称,我会有兴趣听到它。 如果此选项还包括地址编号或地址范围,则可以。

Ruby On Rails – Geocoder – 接近条件

我在我的应用程序中使用GeoCoder。 现在我需要在我的数据库中搜索接近某个位置或具有特定属性集的对象。 我想在一个数据库查询中执行此操作,因为数据库非常庞大。 我想有类似的东西 Spot.near([lat,long],distance).where(“visited = ?”,true). 距离和被访问属性应与OR组合,而不是与AND组合。 有谁知道如何做到这一点? 谢谢!

使用地理编码器gemvalidation经度/纬度

我跟着这个Geocoder Railscast并且我正在玩它以查看我是否可以添加validation到Geocoder Gem返回的经度和纬度坐标,用户输入的错误地址不会返回任何经度和纬度坐标。 我能够通过下面的代码将其工作到一定程度但是当我输入正确的地址时,它会在用户第一次提交表单时向用户提供validation错误,即使经度和纬度坐标返回的位置也是如此。 用户第二次提交表单时,它的工作原理。 我怀疑这种情况正在发生,因为当用户提交表单时,没有经度和纬度坐标,但是第二次是因为地理编码器gem返回了坐标。 我的代码有问题或者我应该以不同的方式接近它吗? 模型 class Location {message: “Not a valid location on Google Maps, please check name address & country fields” } geocoded_by :address after_validation :geocode, :if => :address_changed? def address [name, address1, country].compact.join(‘ ‘) end def address_changed? attrs = %w(name address1 country) attrs.any?{|a| send “#{a}_changed?”} end end 终端OutPut => Booting […]

地理编码器:如何通过距离获得所有结果和订单?

我知道如何使用near方法在一定范围内获得所有结果,但是如何获得所有结果并按距离排序? 我知道我可以这样做: Location.near(my_location, 999999, order: ‘distance’) 但是,我宁愿完全跳过半径检查,只需按距离排序所有结果。

Geocoder使用两个地址

rails 4.1.3使用Geocoder gem的应用程序在模型上具有以下属性 t.decimal :origin_lon, :precision => 15, :scale => 10 t.decimal :origin_lat, :precision => 15, :scale => 10 t.point :origin_lonlat, :srid => 3857 t.decimal :destination_lon, :precision => 15, :scale => 10 t.decimal :destination_lat, :precision => 15, :scale => 10 t.point :destination_lonlat, :srid => 3857 该模型定义为 geocoded_by :origin, :latitude => :origin_lat, :longitude => :origin_lon geocoded_by […]

地理编码api对IP地址的响应速度不够快

在我的生产服务器中,我使用了Geocoder gem。 但是,以下代码无法在服务器控制台中运行。 Geocoder.search(“192.168.1.4”) 我已经配置了geocoder.rb文件超时30秒。 但它仍然给出了错误地理编码api没有足够快的响应 令人惊讶的是,每当我运行Geocoder.search(“San Francisco, CA”)它都会在几秒钟内得出结果。 我该怎么办?

Geocoder Gem无法在生产环境中工作

因此,我使用Geocoder根据用户在提交表单时提供的地址提取纬度和经度坐标。 我这样做是为了让我可以使用Google Maps API绘制标记。 这在开发中非常有效 – 零问题。 然而,当我推向生产时,Geocoder不会生成纬度和经度。 我检查了生产日志,没有错误。 我还检查确保gem不仅仅是为了开发安装而且我已经在我的生产机器上重新启动了unicorn和nginx。 关于可能发生什么的任何想法? 这是我正在执行此任务的模型的模型代码 – class Order true validates :street, :presence => true validates :city, :presence => true validates :zipcode, :presence => true def address [street, city, state, “United States”].compact.join(‘, ‘) end geocoded_by :address after_validation :geocode end ============更新============= 所以在提出建议之后,我在我的生产机器上打开了rails控制台 – bundle exec rails console production 跑了 – […]