Hi,
ich habe Freitag und gestern mit dem GeoKit herumgetestet und ein
Tutorial bearbeitet. Dieses beinhaltetet leider nur Adresse aus US, bzw.
aus San Francisco.
Jedesmal wenn ich eine deutsche Adresse zum geocodieren eingegebe,
bekomme ich einen Nil (kein Ergebnis) zurück (auch wenn ich z.B. Munich,
Germany übergebe).
Bei der Google Maps Hilfe habe ich dazu keine Informationen gefunden.
Wie muss ich Adresse aus Deutschland übergeben?
Am 03.02.2008 um 16:31 schrieb Knut L.:
Bei der Google Maps Hilfe habe ich dazu keine Informationen gefunden.
Wie muss ich Adresse aus Deutschland übergeben?
Muß man da nicht eh Länge/Breite angeben ?
Ich habe gerade eine map eingerichtet allerdings via google api.
Gruß
–
Posted via http://www.ruby-forum.com/.
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug
Werner L.
Lindenburger Allee 22 - 50931
Köln
0221.8805 635
http://www.webagentur-laude.de
Am 03.02.2008 um 16:31 schrieb Knut L.:
Jedesmal wenn ich eine deutsche Adresse zum geocodieren eingegebe,
bekomme ich einen Nil (kein Ergebnis) zurück (auch wenn ich z.B.
Munich,
Germany übergebe).
Ein Codeschnippsel wäre hiflreich.
Ich habe bei mir im Model folgendes stehen:
class Location < ActiveRecord::Base
acts_as_mappable :auto_geocode=>{:error_message=>‘Adresse nicht
gefunden’}
end
tut wunderbar, auch mit deutschen Adressen der Form:
“Straße Hausnummer, Stadt”
was sagen denn die logfiles?
mfg
Matthias_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug
Am 03.02.2008 um 16:51 schrieb Knut L.:
mein Code (Sandbox Beispiel) lautet:
[…]
server = XMLRPC::Client.new2(‘http://rpc.geocoder.us/service/xmlrpc’)
result = server.call2(‘geocode’, address)
Wenn Du das per XMLRPC machen willst, brauchst Du GeoKit nicht.
Ansonsten probier mal:
include GeoKit::Geocoders
location = GoogleGeocoder.geocode(address)
mfg
Matthias
Hi Matthias, hi Werner,
mein Code (Sandbox Beispiel) lautet:
class SandboxController < ApplicationController
def lookup_geocodes
your list of places. In a real app, this would come from the
database,
and have more robust descriptions
places = [{:address=>‘Munich, Germany’,:description=>‘Center’} ]
#{:address=>‘1401 Valencia St, San Francisco,
CA’,:description=>‘Valencia’},
{:address=>‘501 Cole St, San Francisco, CA’,:description=>‘Cole’},
#{:address=>‘150 Church st, San Francisco, CA’,:description=>‘Church’}
]
this loop will do the geo lookup for each place
places.each_with_index do |place,index|
# get the geocode by calling our own get_geocode(address) method
geocode = get_geocode place[:address]
# geo_code is now a hash with keys :latitude and :longitude
place these values back into our “database” (array of hashes)
place[:latitude]=geocode[:latitude]
place[:longitude]=geocode[:longitude]
end
#place the result in the session so we can use it for display
session[:places] = places
#let the user know the lookup went ok
render :text=> 'Looked up the geocodes for ‘+places.length.to_s+ ’
address and stored the result in the session . . .’
end
def show_google_map
all we’re going to do is loop through the @places array on the page
@places=session[:places]
end
private
def get_geocode(address)
logger.debug 'starting geocoder call for address: '+address
this is where we call the geocoding web service
server = XMLRPC::Client.new2(‘http://rpc.geocoder.us/service/xmlrpc’)
result = server.call2(‘geocode’, address)
logger.debug "Geocode call: "+result.inspect
return {:success=> true, :latitude=> result[1][0][‘lat’],
:longitude=> result[1][0][‘long’]}
end
end
Der Fehler ist (NIL):
You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.[]
Und die Logfiles vom Server steigen in Zeile 49 vom Controller Sandbox
aus:
return {:success=> true, :latitude=> result[1][0][‘lat’],
:longitude=> result[1][0][‘long’]}
Also scheint er mit die Adresse nicht zu finden. Die anderen Adresse,
die ich ausgeklammert habe, findet er ohne Probleme. Auch ein Beispiel
mit Brandenburgerstrasse, Hameln, Germany findet er nicht.
Matthias Aschenbach wrote:
Am 03.02.2008 um 16:51 schrieb Knut L.:
mein Code (Sandbox Beispiel) lautet:
[…]
server = XMLRPC::Client.new2(‘http://rpc.geocoder.us/service/xmlrpc’)
result = server.call2(‘geocode’, address)Wenn Du das per XMLRPC machen willst, brauchst Du GeoKit nicht.
Ansonsten probier mal:
include GeoKit::Geocoders
location = GoogleGeocoder.geocode(address)mfg
Matthias
Hallo Matthias,
sorry hatte die Antwort vergessen :(, bzw. hatte ich keine Zeit fürs
Ausprobieren (die Neueröffnung in Adressen in Deutschland mit GeoKIT decodieren? - DE - Ruby-Forum
ist keine Absicht).
Leider verstehe ich deine Änderungen (noch) nicht ganz, bzw. bin mir
nicht bewußt gewesen, dass es zu XMLRPC noch alternativen gibt.
Die Änderungen hatten aber auch kein Erfolg:
include GeoKit::Geocoders habe ich in die class sandbox eingefügt
(oben).
Nur ich weiss nicht, wie ich die Location location =
GoogleGeocoder.geocode(address) anwende. Kann ich die Methode einfach
gegen location = GoogleGeocoder.geocode(address) austauschen?
Wenn ich
return {:success=> true, :latitude=> result[1][0][‘lat’],
:longitude=> result[1][0][‘long’]}
auf
return {:success=> true, :latitude=> location[1][0][‘lat’],
:longitude=> location[1][0][‘long’]}
anpasse bekomme ich
undefined method `[]’ for #GeoKit::GeoLoc:0x47987c8
als Fehler :-/
Mache ich bei der Ãœbergabe etwas falsch?