[DOCKER] Ich habe versucht, die Routensuchmaschine (OSRM) einfach mit einem Container auszuführen

Hintergrund

Ich fand es wieder sehr nützlich, Docker (Container) zu verwenden, und beschloss, den Fall als Memorandum zu organisieren.

Was wolltest du überhaupt machen?

Ich wollte einfach ** OSRM (Open Source Routing Machine) ** verwenden, eine Routensuchmaschine, die ** OpenStreetMap (OSM) ** verwendet, aber es scheint schwierig zu sein, die Umgebung zu erstellen, daher kann ich nichts tun. Ich habe nachgeforscht.

Was, die bereits erstellte Umgebung wurde als Docker-Image bereitgestellt

In Project-OSRM / osrm-backend gab es die folgende Beschreibung.

The easiest and quickest way to setup your own routing engine is to use Docker images we provide.

Darüber hinaus wird durch Ausführen des folgenden Befehls das Container-Image von Dockerhub erfasst (heruntergeladen) und ein Container (als Routensuchmaschine) erstellt und von diesem Image aus gestartet.

docker run -t -i -p 5000:5000 -v "${PWD}:/data" osrm/osrm-backend osrm-routed --algorithm mld /data/kanto-latest.osrm &

In diesem Beispiel ist ** osrm / osrm-backend ** das Container-Image und ** osrm-routed ** der Befehl, der im Container ausgeführt werden soll.

Die folgenden Arbeiten sind jedoch im Voraus für diese Ausführung erforderlich. Unter diesen wird die folgende Formatierungs- und Optimierungsverarbeitung ausgeführt, indem ein neuer Container von osrm / osrm-backend aus gestartet wird (Starten des Befehls für diese Verarbeitung als Container).

Ursprünglich wird gesagt, dass für das folgende Verfahren eine andere Verarbeitung als ** 2. 6. 7. erforderlich ist **, sodass Sie sehen können, dass Sie es mit Docker schneller und zuverlässiger versuchen können.

  1. Update und Sicherheit
  2. ** Kartenexport herunterladen **
  3. Abhängigkeitsinstallation
  4. Kompilieren Sie OSRM
  5. STXXL-Konfiguration
  6. ** Kartenextraktion **
  7. ** Berechnung der Reisezeit **
  8. Ausführen und Testen von Webdiensten
  9. Nginx-Setup
  10. Installation und Konfiguration des Supervisors

So konnte ich erneut bestätigen, dass es sehr einfach ist, eine Ausführungsumgebung mithilfe eines Container-Images zu erstellen.

Als Referenz habe ich den folgenden Befehl in der oben gestarteten Routensuchmaschine ausgeführt, um die Routeninformationen (JSON-Format) abzurufen.

In diesem Beispiel werden alle Positionsinformationen als Parameter an die Suchmaschine gesendet, um die Wanderroute von Kita Kamakura nach Kamakura Daibutsu zu erhalten.

curl --noproxy 127.0.0.1 'http://127.0.0.1:5000/route/v1/walking/139.545056,35.337103;139.535689,35.316696?alternatives=3&geometries=geojson' | jq 'def hexdec(i): "0123456789abcdef"[i:i+1]; {"type": "FeatureCollection", "features": [[.routes[].geometry] | [., keys] | transpose[] | {"geometry": .[0], "type": "Feature", "properties": {"stroke-width": 2, "stroke": ("#" + hexdec(15-.[1]*2) + hexdec(.[1]*2) + hexdec(.[1]*2))}}]}' > routes_kamakura.json

Wenn die erworbene Datei im Json-Format auf ** geojson.io ** geladen wird, gibt es mehrere Wanderkurse von Kita Kamakura nach Kamakura Daibutsu, wie unten gezeigt. Ich habe die Route. (Dies ist ein separater Artikel, den ich organisieren möchte)

kamakura.PNG

Recommended Posts

Ich habe versucht, die Routensuchmaschine (OSRM) einfach mit einem Container auszuführen
Ich habe versucht, eine Kreditkartenhandelsanwendung mit Corda 1 auszuführen
Ich habe versucht, ein wenig mit BottomNavigationView zu spielen ①
Führen Sie DMN mit der Camunda DMN Engine aus
[API] Ich habe versucht, die Postleitzahlensuch-API zu verwenden
Ich habe versucht, den Block mit Java zu brechen (1)
Ich habe versucht, Java in einem Mac-Terminal auszuführen
Ich habe versucht, mit OCR eine PDF-Datei mit Java zu verarbeiten
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
Ich habe versucht, das GitHub-Repository als Bibliotheksserver zu verwenden
Ich habe versucht, eine Java EE-Anwendung mit OpenShift zu modernisieren.
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit spiritueller Technik zu erhöhen
[Rails] Ich habe versucht, eine Mini-App mit FullCalendar zu erstellen
Ich habe JAX-RS ausprobiert und mir das Verfahren notiert
[Docker] Löschen Sie nur das Volume, das einem bestimmten Container zugeordnet ist
Ich habe versucht, mit Docker eine Padrino-Entwicklungsumgebung zu erstellen
Ich habe versucht, eine PDF-Datei mit Java part2 zu verarbeiten
Ich habe versucht, die CameraX-Bibliothek mit Android Java Fragment zu verwenden
Ich habe versucht, die Ergebnisse vor und nach der Date-Klasse mit einer geraden Zahl auszudrücken
Ich habe DI mit Ruby versucht
Ich habe das FizzBuzz-Problem ausprobiert
Ich habe UPSERT mit PostgreSQL ausprobiert.
Ich habe BIND mit Docker ausprobiert
Ich habe versucht, ein Formular mit Spring MVC und Jasper Reports 1/3 (Jasper Reports-Einstellungen) zu drucken.
Ich habe versucht, das Problem der "mehrstufigen Auswahl" mit Ruby zu lösen
Ich habe versucht, ein Formular mit Spring MVC und Jasper Reports 3/3 (Spring MVC-Steuerung) zu drucken.
Ich habe versucht, den Weihnachtsbaum in einem Lebensspiel zu beleuchten
Ich habe versucht, mit Docker eine Plant UML Server-Umgebung zu erstellen
Ich habe versucht, die Bildvorschau mit Rails / jQuery zu implementieren
Ich habe versucht, die Cache-Funktion des Application Container Cloud Service zu verwenden
Ich habe ein einfaches Suchformular mit Spring Boot + GitHub Search API erstellt.
Ich habe mir die Ressourcen der Azure Container-Instanz angesehen
Ich habe versucht, den Betrieb des gRPC-Servers mit grpcurl zu überprüfen
[Java] Ich habe versucht, mit der Grabmethode ein Labyrinth zu erstellen ♪
Ich habe versucht, mit Rails eine Gruppenfunktion (Bulletin Board) zu erstellen