2012-06-20 5 views
5

Ich bin verwirrt zwischen der Verwendung einer generischen Graph-Datenbank (Neo4j) zu Mongodb für die Verfolgung von GPS-Geräten.Welche db für GPS-basierte Tracking

Funktionalität Ich benötige:

  • Spur und den Pfad jedes nachverfolgt Geräteprofil.
  • Lat Long/adressbasierten Suche nach Geräten
  • Verkehrs Schätzung basierend auf aggregierten Daten von allen Geräten
  • Einige intelligentere Sachen, für die ich die Algorithmen implementieren wird.
  • Sollte eine stabile Schnittstelle zu NodeJS haben

Irgendwelche Vorschläge?

Einige Antworten hier schlagen vor, eine GIS-Datenbank zu verwenden, einige schlagen Diagramm vor, kann jemand den Unterschied erklären?

NoSQL and spatial data

+0

In der Regel, wenn Sie eine Menge Aggregation machen, ist eine SQL-Datenbank der Weg zu gehen. Allerdings sind DBs wie Mongo und was in dieser Hinsicht noch nicht gekommen ist. Tatsache ist, dass es angesichts Ihrer Liste schwierig ist, eine Entscheidung zu treffen. Es ist einfach genug, MySQL hochzufahren und alles, was Sie brauchen, effizient zu erledigen. Ohne weitere Einzelheiten zu kennen, ist es schwierig, etwas vorzuschlagen. – Brad

+0

@brad: Einige der oben genannten Dinge sind, wie du gesagt hast, einfach in mysql (dem Tracking-Teil), für den Rest werde ich einige komplizierte Abfragen benötigen, wie "alle verfügbaren Treiber an diesem Ort bereit, um zum Ort b zu gehen basierend auf ihrer Bewertung und wer weniger Zeit braucht " – srinathhs

+0

Nun, der erste Teil dieser Abfrage ist ein Kinderspiel. Für den Teil "Wer weniger Zeit benötigt" gehe ich davon aus, dass Sie einen Pfadfindungsalgorithmus implementieren werden. Wahrscheinlich werden Sie das sowieso auf der Anwendungsseite tun. – Brad

Antwort

2

In Anbetracht der spezifischen Implementierung entschieden, mit mongodb + postgis Konfiguration zu gehen.

+0

Welche Art von Konfiguration? können Sie erklären? – Balu

2

Ich würde eine objektrelationale Datenbank vorschlagen, im Gegensatz zu einer No-SQL-Datenbank wie Mongo, , weil es wie Ihre Daten klingt Analyse viele der relationalen Merkmale verwendet wird, schließt mongo.

Nach Ihren Angaben würde ich PostgreSQL mit dem PostGis Plugin vorschlagen. PostGIS ist ein Spatial-Datenbank-Add-On für den relationalen PostgreSQL-Datenbankserver. Es enthält Unterstützung für alle Funktionen und Objekte, die in der OpenGIS-Spezifikation "Simple Features for SQL" definiert sind. Mit den vielen räumlichen Funktionen in PostGIS ist es möglich, erweiterte räumliche Verarbeitung und Abfragen vollständig in der SQL-Befehlszeile durchzuführen.

1

Möglicherweise möchten Sie einen Blick auf geocouch Erweiterung für couchdb, die räumliche Informationen zusammen mit Bounding-Box-Abfragen unterstützt. Natürlich können Sie Ihre eigenen Ansichten mit Kartenreduzierungsfunktionen für Ihre speziellen Anwendungsfälle hinzufügen.

Mein Anwendungsfall war ein bisschen anders, aber das Speichern von GPS-Koordinaten alle 5 Minuten für eine Dauer von etwa 3 Wochen beinhaltete fast keine mehr als 6000 km. Ich hatte benutzerdefinierte Ansichten, um Entfernungen, mittlere Geschwindigkeit usw. zu berechnen, zusammen mit der Listenfunktion, um Reiserouten im KML-Format und so auszugeben. Eine Webschnittstelle wurde ebenfalls bereitgestellt, um den aktuellen Standort in Echtzeit zu verfolgen. Kein Problem mit CouchDB.

Wie für eine Client-Bibliothek für Knoten habe ich cradle für einige Projekte verwendet und ich bin zufrieden mit der Stabilität und Benutzerfreundlichkeit. Stellen Sie nur sicher, dass Sie nicht in der Entwicklung zwischenspeichern, während Sie die Ansichten und alles ändern.