RoR - Geokit插件:为什么Location.find给我一个空数组? (位置是“acts_as_mappable”的模型)

时间:2010-01-19 04:15:53

标签: geokit

我已经安装了geokit gem和geokit-rails插件。我按照此处所示配置了插件:http://github.com/andre/geokit-rails。然后我生成了一个新模型 - Location,如下所示:

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

和控制器:
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


我还在我的数据库中设置了一个包含lng和lat列的Locations表,并将我的google键放在/config/initializers/geokit_config.rb中 现在,尽管@a给了我来自YahooGeocoder的正确结果(我也可以使用GoogleGeocoder),@ b是一个空数组。我知道@a是使用Geokit gem和@b使用Geokit-rails插件生成的,所以问题肯定与插件有关。当我使用@c=IpGeocoder.geocode('85.128.202.178')时,我得到“成功:错误”......我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

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

Re:@ 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>