11

https://github.com/alexreisner/geocoder

我找不到从 IP 地址显示访问者所在城市的文档?我知道如何使用 HTML5,但我想使用地理编码器的值。谢谢

4

4 回答 4

8

我花了几个小时才意识到答案很简单:

request.location.city

地理编码器页面有这个例子,但我认为我需要声明请求,但不,不需要更多。

如果您没有地理编码器,则必须安装 gem,但除此之外什么都没有。

于 2013-12-19T20:36:06.223 回答
6

我是怎么做到的——

location = Geokit::Geocoders::IpGeocoder.geocode(source_ip)
city = location.city
country = location.country

这里,source_ip 是一个字符串对象。

于 2012-04-09T16:56:22.013 回答
1
# app/models/user.rb
geocoded_by :ip_address,
  :latitude => :lat, :longitude => :lon
after_validation :geocode

来自地理编码器站点的片段。

于 2012-04-09T14:33:03.893 回答
1

你可以用两种不同的方式来做

1)如果您可以将访问者城市/地址作为字符串获取,则地理编码器将自动将其转换为纬度和经度

class Message < ActiveRecord::Base
  geocoded_by :full_address
  after_validation :geocode

  def full_address
    "#{city}, Sri Lanka"
  end

end

2) 否则您将不得不跟踪访问者的 ip,例如在“地理编码器”gem的主页中

注意:您可以使用 near by 方法,如下所示

<Active Record Object List>.near(<City Name>, <distance>, :order => :distance)

Ex: @messages = @messages.near("colombo", 10, :order => :distance)

并且在railscasts中有一个由 ryan 制作的超级大屏幕

于 2012-04-09T15:06:07.203 回答