2010-01-19 8 views
1

J'ai installé geokit gem et le plugin geokit-rails. J'ai configuré le plugin comme montré ici: http://github.com/andre/geokit-rails. Ensuite, je généré un nouveau modèle - Lieu, qui ressemble à ceci:RoR - Geokit plugin: pourquoi Location.find me redonne un tableau vide? (Location est un modèle qui "acts_as_mappable")

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

et un contrôleur:
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


J'ai aussi mis en place une table Emplacements avec les deux méthaniers et des colonnes lat dans ma base de données et mettre ma clé google dans /config/initializers/geokit_config.rb Et maintenant, altough @a me donne des résultats corrects de YahooGeocoder (je peux aussi utiliser GoogleGeocoder), @b est un tableau vide. Je sais que @a est généré en utilisant Geokit gem et @b en utilisant le plugin Geokit-rails, donc le problème est définitivement lié au plugin. Quand j'utilise @c=IpGeocoder.geocode('85.128.202.178') je reçois "succès: faux" ... Qu'est-ce que je fais mal ici?

Répondre

0

Avez-vous vérifié votre collection Location pour vous assurer qu'il existe un emplacement à moins de 5 kilomètres de cette adresse? Que se passe-t-il si vous effectuez une recherche similaire avec une latitude et une longitude explicites d'un emplacement?

Re: @ succès = faux, j'ai le même problème avec cette adresse IP (en utilisant IpGeocoder et 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>