1

我已经安装了 geokit gem 和 geokit-rails 插件。我配置了插件,如下所示:http: //github.com/andre/geokit-rails。然后我生成了一个新模型——Location,它看起来像这样:

class Location < ActiveRecord::Base
acts_as_mappable :default_units => :kms
end

和一个控制器: 我还在我的数据库中设置了一个包含 lng 和 lat 列的 Locations 表,并将我的谷歌密钥放在 /config/initializers/geokit_config.rb 现在,尽管@a 给了我来自 YahooGeocoder 的正确结果(我也可以使用 GoogleGeocoder),@b 是一个空数组。我知道@a 是使用 Geokit gem 生成的,@b 是使用 Geokit-rails 插件生成的,所以问题肯定与插件有关。当我使用我得到“成功:错误”......我在这里做错了什么?
class TestController < ApplicationController
include GeoKit::Geocoders
include GeoKit::Mappable
def test1
@a=Geokit::Geocoders::YahooGeocoder.geocode 'Kaohsiung City, Taiwan' @b=Location.find(:all, :origin => '100 Spear st, San Francisco, CA', :within => 5)
end
end


@c=IpGeocoder.geocode('85.128.202.178')

4

1 回答 1

0

您是否仔细检查了您的位置集合以确保在该街道地址 5 公里范围内存在位置?如果您使用位置的明确纬度和经度进行类似的查找,会发生什么?

回复:@success=false,我在使用该 IP 时遇到了同样的问题(使用 IpGeocoder 和 MultiGeocoder)。

>> @c=IpGeocoder.geocode('85.128.202.178')
=> #<Geokit::GeoLoc:0x1038df5f0 @success=false, @city="(Unknown City)", @province=nil, @street_address=nil, @lng=nil, @full_address=nil, @state=nil, @country_code="PL", @all=[#<Geokit::GeoLoc:0x1038df5f0 ...>], @lat=nil, @precision="unknown", @provider="hostip", @zip=nil>
>> @c=IpGeocoder.geocode('74.125.93.104')
=> #<Geokit::GeoLoc:0x1038d3c28 @success=true, @city="Manila", @province=nil, @street_address=nil, @lng=120.95, @full_address=nil, @state=nil, @country_code="PH", @all=[#<Geokit::GeoLoc:0x1038d3c28 ...>], @lat=14.5833, @precision="unknown", @provider="hostip", @zip=nil>
于 2011-04-20T03:12:20.710 回答