Skip to content

Commit

Permalink
Merge pull request #13 from jensschuppe/dev_mkdocs
Browse files Browse the repository at this point in the history
Provide MKDocs documentation
  • Loading branch information
bjendres authored Aug 12, 2020
2 parents 7f9d457 + c9d2c95 commit 04ca9b8
Show file tree
Hide file tree
Showing 5 changed files with 131 additions and 77 deletions.
32 changes: 23 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,30 @@
#SYSTOPIA OpenStreetMap CiviCRM GeoCoder
# OpenStreetMap CiviCRM GeoCoder

This CiviCRM extension adds the Nominatim OpenStreetMap server as a geocoding option. Just install the extension, and activate via "Administer" => "System Settings" => "Mapping and Geocoding".
This CiviCRM extension adds the Nominatim OpenStreetMap server as a geocoding
option. Just install the extension, and activate via *Administer*
*System Settings**Mapping and Geocoding*.

Disclaimer: This CiviCRM extension requests geodata from nominatim.osm.org, a service of OpenStreetMap Foundation. We have been advised that OSM servers might not be suitable for massive data requests, but so far could not get precise information on what this exactly means. Also, we don't know what the consequences of requests too massive for the OSM infrastructure might be. Therefore we recommend that you consider using the throttling option for the "Geocode and Parse Adresses" cronjob if processing data sets containing more than 10.000 addresses.
Disclaimer: This CiviCRM extension requests geodata from nominatim.osm.org, a
service of OpenStreetMap Foundation. We have been advised that OSM servers might
not be suitable for massive data requests, but so far could not get precise
information on what this exactly means. Also, we don't know what the
consequences of requests too massive for the OSM infrastructure might be.
Therefore we recommend that you consider using the throttling option for the
"Geocode and Parse Adresses" cronjob if processing data sets containing more
than 10.000 addresses.

Find the [German README here](https://github.com/systopia/de.systopia.osm/blob/master/README_DE.md).
Find the [German README here](german.md).

Remark: Be careful when activating the "Geocode and Parse Addresses" scheduled job. It will try to look up all addresses that have not been geocoded yet. That, however, includes all the addresses that couldn't be successfully completed the last time - causing the same failed addresses to be queried again and again.
Remark: Be careful when activating the "Geocode and Parse Addresses" scheduled
job. It will try to look up all addresses that have not been geocoded yet. That,
however, includes all the addresses that couldn't be successfully completed the
last time - causing the same failed addresses to be queried again and again.

For most scenarios it should be sufficient to run the job once, since newly entered addresses and address changes should be automatically geocoded.
For most scenarios it should be sufficient to run the job once, since newly
entered addresses and address changes should be automatically geocoded.

Links:
* Open-Street-Map-Project: http://www.openstreetmap.org
* Open-Street-Map-Server: http://nominatim.openstreetmap.org/
* API specs: http://wiki.openstreetmap.org/wiki/API_v0.6

* [Open-Street-Map-Project](http://www.openstreetmap.org)
* [Open-Street-Map-Server](http://nominatim.openstreetmap.org)
* [API specs](http://wiki.openstreetmap.org/wiki/API_v0.6)
68 changes: 0 additions & 68 deletions README_DE.md

This file was deleted.

87 changes: 87 additions & 0 deletions docs/german.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# 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

1. OSM-Extension installieren und aktivieren.
2. Unter "Administer"->"System Settings"->"Mapping and Geocoding"
für "Geocoding Provider" "OpenStreetMapCoding" auswählen.
1. Beim Anlegen oder Verändern von Adress-Daten werden die Koordinaten
ermittelt und gespeichert.
2. 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.
4. 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:

1. 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.
2. Die Antwort der API kann nicht verarbeitet werden.
3. Die Adresse kann vom Server nicht identifiziert werden.
4. Die Adresse kann vom Server nicht eindeuting aufgelöst werden.
Es werden Daten für mehrere Orte zurückgegeben.
5. Die Adresse kann eindeutig aufgelöst werden.

Die OSM-Extension verhält sich wie folgt:

1. Die Koordinaten in CiviCRM werden auf NULL gesetzt.
2. Die Koordinaten in CiviCRM bleiben unangetastet.
3. Die Koordinaten in CiviCRM werden auf NULL gesetzt.
4. Es werden die Koordinaten des ersten zurückgegebenen Ortes verwendet.
5. 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.

## Links:
* [Open-Street-Map-Projekt](http://www.openstreetmap.org)
* [Open-Street-Map-Server](http://nominatim.openstreetmap.org)
* [API-Beschreibung](http://wiki.openstreetmap.org/wiki/API_v0.6)
1 change: 1 addition & 0 deletions docs/index.md
20 changes: 20 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
site_name: OpenStreetMap CiviCRM GeoCoder
repo_url: https://github.com/systopia/de.systopia.osm
theme: material

pages:
- Home: index.md
- 'German README': german.md

markdown_extensions:
- attr_list
- admonition
- def_list
- codehilite
- toc:
permalink: true
- pymdownx.superfences
- pymdownx.inlinehilite
- pymdownx.tilde
- pymdownx.betterem
- pymdownx.mark

0 comments on commit 04ca9b8

Please sign in to comment.