ich benutze zurzeot geopy um die lat und lng Werte von einem Ort zu bekommen, bestehend aus Stadt, Straße und eventuell Hausnummer.
Ich habe eine Datenbank, in der ich Zimmer speichere, zu diesen Zimmern speichere ich auch die Adressen, von da kommen auch Stadt, Straße etc.
Mit Geopy bekomme ich dann lat und lng, diese brauche ich um mit Hilfe von Flask GoogleMaps Marker auf die Karte zu setzen wo sich die Zimmer befinden.
An und für sich klappt auch alles wunderbar, nur bekomme ich ab und zu den "GeocoderTimedOut: Service timed out" Error, ich habe auch schon viel dazu recherschiert und man soll damit Leben, ebentuell timeout höher setzten oder in eine rekursive Schleife schieben mit einer bestimmt Anzahl Versuchen bis es klappt, aber in meiner Datenbank sind nur 8 Zimmer... und später werden es hunderte, ich kann doch dann nicht einfach viel ignorieren?
Gibt es da Alternativen? Ist das so langsam, weil es ein free service ist? Gibt es etwas, wo man bezahlt und einen schneller und zuverlässigen Service bekommt?
Das ist die Problemschleife, hier erstelle ich alle Marker von allen Zimmer, die geladen werden und in der Schleife gibts TimeOuts. Ich mache zwei seperate Listen, da es Benutzer gibt, die bazahlt haben und nicht bezahlt haben und die bezahlten Marker sollen einfach schöner aussehen.
Code: Alles auswählen
markerlist = []
markerlist_bezahlt = []
for room in all_rooms_in_city:
if room.stadt == findroomcity.lower():
try:
location2 = geolocator.geocode(room.stadt + " " + room.strasse + " " + room.hausnr, timeout=2)
for user in all_users:
if user.id == room.users_id:
if user.bezahlt == False:
markerlist.append((location2.latitude, location2.longitude))
else:
markerlist_bezahlt.append((location2.latitude, location2.longitude))
except GeocoderTimedOut as e:
print "in der schleife timeout", e
except AttributeError as e:
print "in der schleife attributeerror", e
#print markerlist, markerlist_bezahlt
mymap.markers['static/img/Map-Marker-Marker-Outside-small.png'] = markerlist
mymap.markers['static/img/Map-Marker-Marker-Outside-Pink.png'] = markerlist_bezahlt