2010-01-19 14 views
1

我已經安裝了geokit gem和geokit-rails插件。我如下所示配置插件:http://github.com/andre/geokit-rails。然後,我產生一種新的模式 - 位置,它看起來像這樣:RoR - Geokit插件:爲什麼Location.find會給我一個空數組? (位置是「acts_as_mappable」的模型)

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列在我的數據庫並把我的谷歌鍵在/config/initializers/geokit_config.rb 而現在,儘管@a給了我來自YahooGeocoder的正確結果(我也可以使用GoogleGeocoder),@ b是一個空數組。我知道@a是使用Geokit gem和@b使用Geokit-rails插件生成的,所以問題肯定與插件有關。當我使用@c=IpGeocoder.geocode('85.128.202.178')時,我得到「成功:錯誤」......我在這裏做錯了什麼?

回答

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> 
相關問題