Echtzeitkartenabgleich mit ArcGIS Desktop?


12

Ich arbeite an einem Projekt, das einen Kartenabgleich in Echtzeit erfordert. Ich verwende derzeit ArcGIS, bin mir jedoch nicht sicher, ob es funktionieren wird.

Folgendes passiert mit meinem System:

Die Mobiltelefone haben alle fünf Sekunden GPS-Korrekturen an meinen Server gesendet, und ich muss einen Kartenabgleich in Echtzeit durchführen, um den Punkt auf einem der Links der Karte abzufangen und die abgeglichenen Punkte zu speichern.

ArcGIS verfügt über ein Nahe-Werkzeug, mit dem Sie den Punkt an der nächsten Verknüpfung ausrichten können. Die Eingabe für das Werkzeug muss jedoch ein Shapefile für die Punkte sein.

Ich frage mich, wie ich mit den Echtzeitdaten umgehen kann, die ich in ArcGIS erhalte. Formdatei für jeden Punkt erstellen?

Irgendein anderer Vorschlag, um diese Arbeit zu vollenden?

Antworten:


3

Erstellen Sie ein Punkt-Feature aus Ihrem GPS-Standort (vermutlich als Datei im Tabellenformat gespeichert) mit der Option " XY-Ereignis erstellen und Features kopieren" und verwenden Sie dies dann mit dem Werkzeug " Nahe" - oder versuchen Sie es mit dem Werkzeug " Räumliche Verbindung" mit der Option " Am nächsten". Sie möchten diese Zwischenfunktionen wahrscheinlich in einem temporären Arbeitsbereich speichern, der nach Erhalt der endgültigen Ausgabe (die Sie möglicherweise an Ihre Datenbank anhängen ) gelöscht werden kann .


Hallo, danke für deine Hilfe. Ich habe genau das getan, was du gesagt hast und es ist jetzt gelöst. Es gibt jedoch ein neues Problem. Die Berechnung dauert sieben bis zehn Sekunden, um die Endergebnisse für einen Punkt auszudrucken. Was ich aber entwickeln kann, ist eine Echtzeitanwendung, die besser innerhalb von höchstens 2 bis 3 Sekunden gesteuert werden kann. Ist der Import von Arcpy das Problem, da dies ein großes Modul ist? Können Sie mir bitte sagen, wo das Problem liegt und wie das System verbessert werden kann? (Das ganze System ist in Java. Das von mir entwickelte Python-Modul wird aus den
Hauptcodes

Es scheint also, dass der Arcpy jedes Mal importiert wird. Liegt hier das Problem? Vielen Dank.
user14631

1
Gern geschehen zum ersten Kommentar. Was Ihren zweiten Kommentar betrifft, empfehle ich Ihnen, eine neue Frage (möglicherweise unter Bezugnahme auf diese ursprüngliche Frage) zu stellen, wie Sie Ihren Code zusammen mit dem Beispielcode verbessern können, damit wir ihn alle besser einschätzen können.
CCN

1

Ob ein Punkt in der Nähe ist, hängt von vielen Faktoren ab, nicht nur von der nächsten Straße, sondern auch von vorherigen Punkten. Sie können sich den Algorithmus und die Tools ansehen , die ich verwenden würde.


1

Es gibt eine Lösung für den Kartenabgleich in Echtzeit (jedoch nicht in ArcGIS, sondern in Java), die den Kartenabgleich mit Hidden Markov Model implementiert. Weitere Informationen finden Sie hier: https://github.com/bmwcarit/barefoot

Es ist ziemlich robust und die Karte gleicht GPS-Tracks mit OpenStreetMap-Daten ab, auch in Echtzeit (als Online-Kartenabgleich bezeichnet). (UPDATE :) Was Sie vielleicht suchen, ist als "Tracker-Standalone-Server" (mit einer REST-ähnlichen API) implementiert.

Geben Sie hier die Beschreibung des Links ein


Möchten Sie wissen, ob diese Funktionalität jetzt vorhanden ist?
nha

1
Ja, diese Funktionalität steht jetzt zur Verfügung, ist jedoch nicht Bestandteil von ArcGIS (sofern dies die Frage ist). Das Ergebnis sieht so aus: github.com/bmwcarit/barefoot#tracker-server-quick-start
sema

0

Es ist wahrscheinlich, dass Sie auf Rechenengpässe und Konsistenzprobleme bei Paketen stoßen, die kein ordnungsgemäßes Routing oder zumindest keine Straßennetzabstraktion aufweisen. Wenn Sie OSM-Daten für das Straßennetz verwenden, aktivieren Sie TrackMatching in meinem Profil. Überprüfen Sie diese Algorithmen zur Zuordnung von Threadzuordnungen.


0

Sie können sich die neue Service-API von Microsoft 'Snap to Road' ansehen. Für Details sehen Sie diesen Link

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.