Kurze Beschreibung der SYSTOPIA OSM-Extension¶
Die OSM-Extension erweitert die in CiviCRM nativen Geocoding-Optionen. Nativ können Koordinaten für Adressen von Yahoo oder Google abgerufen werden. Mit der OSM-Extension können Koordinaten auch von Open-Street-Map bezogen werden.
Allgemeine Funktionsweise¶
Die Funktionsweise entspricht den nativen Geo-Coding-Optionen: * Beim Anlegen oder Aktualisieren von Adressen wird ein Hook aufgerufen, der die zugehörigen Koordinaten entsprechend der Geocoding-Konfiguration von einem Server herunter lädt. * Außerdem steht ein "Scheduled Job" zur Verfügung, der das Ermitteln aller noch fehlenden Daten anstößt.
Allgemeine Anwendung¶
- OSM-Extension installieren und aktivieren.
- Unter "Administer"->"System Settings"->"Mapping and Geocoding"
für "Geocoding Provider" "OpenStreetMapCoding" auswählen.
- Beim Anlegen oder Verändern von Adress-Daten werden die Koordinaten ermittelt und gespeichert.
- Unter "Administer"->"System Settings"->"Scheduled Jobs" "Geocode and Parse Addresses" konfigurieren und aktivieren. Dieser Job ermittelt für alle Adressen die Koordinaten, sofern sie noch nicht existieren.
- Möchte man generell vermeiden, dass bereits gesetzte Koordinaten vom Geocoding überschrieben werden, so kann für die Koordinaten die Option "Override automatic geocoding" aktiviert werden.
Umgang mit der API¶
Fehlerhafte Adress-Daten werden nicht bereinigt. Der Api-Call wird mit den Daten generiert, die in der Datenbank vorgefunden werden.
Fünf Fälle werden unterschieden:
- Adresse ist unvollständig: Es fehlen Angaben für das Land, die Stadt oder die Straße. Um die Stadt zu identifizieren reicht in der Regel entweder der Name oder die Postleitzahl.
- Die Antwort der API kann nicht verarbeitet werden.
- Die Adresse kann vom Server nicht identifiziert werden.
- Die Adresse kann vom Server nicht eindeuting aufgelöst werden. Es werden Daten für mehrere Orte zurückgegeben.
- Die Adresse kann eindeutig aufgelöst werden.
Die OSM-Extension verhält sich wie folgt:
- Die Koordinaten in CiviCRM werden auf NULL gesetzt.
- Die Koordinaten in CiviCRM bleiben unangetastet.
- Die Koordinaten in CiviCRM werden auf NULL gesetzt.
- Es werden die Koordinaten des ersten zurückgegebenen Ortes verwendet.
- Die Koordinaten des zurückgegebenen Ortes werden gespeichert.
Bekannte Probleme und Fehler¶
- Bei unsauberem Datenstand können viele Adressen nicht aufgelöst werden.
Darüber hinaus sind keine Fehler bekannt.
Vorsicht ist bei der Aktivierung des geplanten Jobs "Geocode and Parse Addresses" geboten. Dort werden alle noch nicht aufgelösten Adressen zum geokodieren geschickt. Das beinhaltet aber leider auch diejenigen Adressen, die beim letzten Mal fehlgeschlagen sind - was dazu führt, dass diese fehlerhaften Adressen immer und immer wieder angefragt werden.
In der Regel ist dieser aber gar nicht notwendig; Neu eingetragene Adressen und Adressänderungen werden automatisch neu aufgelöst. Daher reicht es meist, den Job "Geocode and Parse Addresses" nach Installation einmal manuell auszuführen und nicht als geplanten Job zu aktivieren.
Bei großen Datensets kann das manuelle Auslösen einen Tiemout verursachen - in diesen Fällen empfehlen wir, den Cronjob zu aktivieren und nach einem erfolgreichen Abschluss wieder zu deaktivieren.
Verbesserungsmöglichkeiten¶
- Aufbereitung der Adress-Daten vor jedem API-Call um eine höhere Erfolgs- Quote zu erlangen.
- Adress-Daten anhand der Rückgabe-Werte des Servers vervollständigen.