Scheint mir eine sehr gute und schnelle Suche zu sein.
Bisher ist die Implementation von Maps daran gescheitert, dass die Meisten OSM Suchen zu langsam waren.
Bei Gelegenheit schaue ich mir das genauer an. Mal gucken, ob wir überhaupt mit über 100.000 Zugriffen am Tag die Api verwenden dürfen.
If your requirements are even larger you can install your own instance of Nominatim. [1]
Requirements
No heavy uses (an absolute maximum of 1 request per second).
Alternatives / Third-party providers
For slightly larger requirements you may be able to use one the various third-party providers, though of course you will need to agree to their terms of service.
MapQuest Open http://developer.mapquest.com/web/products/open/nominatimOpenCage Geocoder http://geocoder.opencagedata.com/MapZen Search (pelias geocoder) https://mapzen.com/projects/search/
TL;DR: Alle teuer. Der offene Dienst von Nominatim mit 1 Aufruf/s bietet kein schlechtes Preis/Leistung Verhältnis. Ob sich eine Lastverteilung über alle Dienste oder das Aufsetzen eines eigenen Dienstes lohnt, keine Ahnung.
1 Aufruf/Sekunde=> 3600s/h * 24h/d = 86400s/d wenn die Aufrufe gleich verteilt wären.
MapZen
API Limits
Search early & search often. With Mapzen Search, you get up to 30,000 geocoding requests per day (and 6 per second) to do with as you wish.
We’re starting small to gauge interest, but plan to add more capacity over time. If you need more capacity, drop us a line. We’d love to hear what you’re up to. https://mapzen.com/products/search/
"Free usage is limited to 2,500 queries per day. If you need more, please see the pricing page" "Free trial users are limited to 1 query per second and if you exceed that rate you may be blocked."
https://geocoder.opencagedata.com/api
Pricing
Free Trial - up to 2,500 requests/day - 1 request/sec - free
[..]
Medium - up to 100,000 requests/day - 15 requests/sec - $500/mo https://geocoder.opencagedata.com/pricing
Der Dienst von Nominatim gefällt mir sehr gut. Und schnell ist er auch!
Eine Möglichkeit mir der wir auf jeden Fall vorerst unter dem Limit bleiben würden, wäre es einen Maps-Tab einzurichten in dem man Karten anbieten würden.
Dort könnte man zum Beispiel eine Interaktive Karte von OSM einbauen und Ergebnisse von Nominatim einfügen.
Der Landkarten-Reiter hört sich nett an.
Mal ein paar wilde Gedanken von mir zu dem Thema:
WikiMiniAtlas wird bei Wikipedia rechts oben angeboten unter dem Pfeil °v Dadurch hat man eine Karte mit Links auf WP Artikel
OSMand~ (Tilde) in F-Droid ist zwar für Android, aber vielleicht sind da noch offene Datenquellen zu sehen, die praktisch sind. Eine Portierung im Alpha Stadium für den PC soll OffroadOSM sein. OffroadOSM habe ich noch nicht getestet.
OpenStreetBrowser ist nun leider Geschichte, wegen Zeit- und Geldmangels. Beschreibung. In der Beschreibung wird darauf hingewiesen, daß der Source vefügbar sei.
Wenn Daten von mCloud interessant sind, könnten vielleicht auch gleichzeitig Fördergelder über mFund beantragt werden. Heise Meldung dazu. Daten sind z.B Bahn-, Gewässer-, Pollenflug-, Wetter-/Klimadaten, Breitbandatlas, Call-A-Bike, Bahnfahrplan und Flinkster.
Ich habe bislang aber nur die Kartendaten von Deutschland importiert. Der Server ist relativ Leisutngsstark:
:~$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 26
Model name: Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz
Stepping: 5
CPU MHz: 1600.000
CPU max MHz: 2668.0000
CPU min MHz: 1600.0000
BogoMIPS: 5346.60
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 8192K
NUMA node0 CPU(s): 0-7
Ich bin mir allerdings nicht ganz sicher, ob nur 50GB Ram und die fehlende SSD Platte nicht eventuell einen flüssigen Betrieb der Kartendaten für die ganze Welt verhindern. Außerdem könnten 2TB Plattenspeicher auch knapp werden.
Ich bin mir allerdings nicht ganz sicher, ob nur 50GB Ram und die fehlende SSD Platte nicht eventuell einen flüssigen Betrieb der Kartendaten für die ganze Welt verhindern. Außerdem könnten 2TB Plattenspeicher auch knapp werden.
For a full planet import 32GB or more are recommended.
For a full planet install you will need about 800GB of hard disk space (as of January 2016, take into account that the OSM database is growing fast). SSD disks will help considerably to speed up import and queries.
On pummelzacken the complete initial import requires around 2 days. On a 12-core machine with 32GB RAM and standard SATA disks, the initial import (osm2pgsql) takes around 20 hours and the indexing process another 250 hours. Only 8 parallel threads were used for this setup because I/O speed was the limiting factor. The same machine is able to import the Germany extract in around 4 hours.
Erst mal nur im Beta-Bereich laufen lassen und dann die laufenden und zukünftigen Kosten abschätzen? Hast Du die Zeit gestoppt, wie lange der D. Import gedauert hat? Wie funktioniert das mit Datenaktualisierungen, gibt es "Diffs", muss komplett neu importiert/indiziert werden? Läuft das dann im Hintergrund, reicht die IO Leistung der Platte? Könnte man das durch eine 2. Platte abfangen oder ist dann eine SSD zwingend nötig.
Die Server Statistiken von Pummelzacken sind als Grafiken zu sehen, falls das hilft.
Die langfristige Wege- und Relationenentwicklung:
Ich habe gestern alle Daten neu importieren müssen, weil ich keinen automatischen Update-Mechanismus eingebaut hatte.
Nun habe ich Updates für die täglichen Diffs von "Geofabrik" eingebaut.
Das Setup ist folgendes:
Tile-Server
In der Postgres Datenbank habe ich alle Daten (für Deutschland) für unseren Tile-Server importiert.
Der Import hat ca. 2h gebraucht.
Danach habe ich alle Tiles für die Zoom Level 0-6, sowie alle Tiles für Deutschland im Zoom Level 7-14 vorrendern lassen (ca. 2h)
Datenbankgröße: 60GB
Suchfunktion (Nominatim)
Nominatim benötigt eine eigene Datenbank, da es für die Suche eine komplett andere Struktur verwendet.
Es scheint nicht möglich zu sein die gleiche Datenbank zu verwenden
Der Import hat ebenfalls ca. 2h gebraucht
Datenbankgröße: 76 GB
=> Die Festplatte steht gut unter Auslastung, aber wenn der erste Import steht, geht auch das Rendern für die Zoom Level 15-18 relativ flott.
Der Flaschenhals was die Leistung angeht ist die Postgres Datenbank. Je schneller diese durchsucht werden kann, desto schneller auch das Rendern der Tiles und die Suchfunktion. In einem idealen Setup würde die gesamte Postgresdatenbank im Arbeitsspeicher liegen.
Wenn wir jetzt einen Import für die Daten der gesamten Welt annehmen, dann ergibt sich eine Datenbankgröße von mind 1.6 TB = 2 x 800 GB (Nominatim und Tileserver)
So viel Arbeitspeicher kann man natürlich nicht haben, aber es empfiehlt sich möglichst viel der Datenbank im Arbeitsspeicher zu haben und den Rest auf einer SSD Platte für eine gute Performance. Andererseits konnte ich auch mit unserer normalen HDD durch ein bisschen Konfigurationsarbeit eine annehmbare Geschwindigkeit erreichen.
Ich denke wenn wir irgendwann die Weltkartendaten importieren, dann nur mit einer weiteren Festplatte, da mir die Restlichen 400GB für die fertig gerenderten Tiles etwas wenig erscheinen. Ich würde den Dienst vorerst für Deutschland aufsetzen. (Ein Europa import sollte mit dem aktuellen Setup auch problemlos funktionieren) und wenn es gut funktioniert irgendwann die Daten für die Welt.