T-Torch: Durch die Suche nach Flugbahnen auf schnelle Weise suchen Sheng Wang, Zhifeng Bao, J. Shane Culpepper, Zizhe Xie, Qizhi Liu, Xiaolin Qin: Torch: A Search Engine for
Trajectory Data. SIGIR 2018: 535-544
T-Torch kann jetzt zwei typische Arten von Abfragen effizient beantworten:
Unser bei Porto gesammelter Flugbahndatensatz ist verfügbar. Der Datensatz ist kartenanpasset und indiziert. Bitte laden Sie es unter https://drive.google.com/open?id=110U9raqxhxws_tn0iji-a1n71elriybm herunter und setzen Sie es in das Stammverzeichnis des Projekts.
Wir verwalten die abhängigen Bibliotheken mit Maven. Sie können die erforderlichen Software in der pom.xml -Datei problemlos installieren.
Wir bieten einen Anwendungsfall für Pfadabfrage. Die Main () -Methode befindet sich in der Testklasse.
1. Engine engine = Engine.getBuilder().build();
2. List<List<TrajEntry>> queries = read();
3. QueryResult result = engine.findOnPath(queries.get(0));
T-Torch bietet eine hochstufige Motorin mit einfachem APIs für die Abfrageverarbeitung.
QueryResult ret = engine.findInRange(50, 50, 50);
Die Range -Abfrage wird verwendet, um Trajektorien abzurufen, die durch einen bestimmten rechteckigen Bereich fließen. Um den rechteckigen Bereich zu definieren, sind drei Argumente erforderlich. Breitengrad und Längengrad definieren den Mittelpunkt mit Radius (in Metern) zusammen, die den rechteckigen Bereich darstellen.
QueryResult ret = engine.findOnPath(query);
Die Pfadabfrage 2 wird verwendet, um Trajektorien mit mindestens eine gemeinsame Kante mit der Abfrage abzurufen. Das Argument, das es einnimmt, ist ein "Pfad", der durch eine Liste von Koordinaten dargestellt wird.
QueryResult ret = engine.findOnStrictPath(query)
Die strenge Pfadabfrage 2 wird verwendet, um Trajektorien von Anfang bis Ende streng durch die gesamte Abfrage zu fahren. Das Argument, das es einnimmt, ist ein "Pfad", der durch eine Liste von Koordinaten dargestellt wird.
QueryResult ret = engine.findTopK(query, 3);
Die Top-K-Abfrage gibt K PRITED-Trajektorien zurück, die auf der angegebenen Ähnlichkeitsmaßnahme basieren. Das erste Argument ist eine "Abfrageturorie", die durch eine Koordinatenliste dargestellt wird, und das zweite ist die Anzahl der Top -Ergebnisse, die zurückgegeben werden sollen.
if (ret.mappingSucceed){
List<Trajectory<TrajEntry>> l = ret.getResultTrajectory();
String mapVformat = ret.getMapVFormat();
}else{
//do something
}
Nachdem die Abfrage bearbeitet wurde, wird das Objekt vom Typ QueryResult einheitlich zurückgegeben. Es enthält die Abfrage-Trajektorie in roher Form, die Kartenanpassungs-Abfrage-Trajektorie und alle zu abgerufenen Flugbahnen. Außerdem können Sie diese auf MAPV 3 für Visualisierungszwecke projizieren.
Wenn Sie über Ihren eigenen Datensatz suchen möchten, befolgen Sie diese Schritte für die Datenvorverarbeitung:
Laden Sie die Kartendaten von OpenStreetMap herunter, in denen die Trajektoriendaten gesammelt werden, sie sollten im *.osm.pbf -Format enthalten sein und Sie müssen sie in das Ressourcenverzeichnis einfügen.
Vorverarbeitet Ihren Datensatz in das von unserem Programm unterstützte Format. Die Kartenübereinstimmung ist die Technik, um Rohbahnen auf das Real Road Network zu projizieren. Das erste Argument ist das URI des Datensatzes für Roh-Trajektorien, während das zweite Argument "Ressourcen/Porto.OSM.PBF" die URI für Ihre PBF-Datei 1 nach dem Einrichten sein sollte, rufen Sie Start () auf, um Roh-Trajektorien in die Zugeordneten von Trajektorien umzuwandeln. Führen Sie nach MapMatching das Main () -Programm in der Klasse fackel.base.db.dbmanager aus, um einen invertierten Index auf der Festplatte zu erstellen. Bitte nehmen Sie unseren Porto -Datensatz als Beispiel ein.
MapMatching mm = MapMatching.getBuilder().build("Resources/porto_raw_trajectory.txt","Resources/porto.osm.pbf");
mm.start();
trajectoryID [[latitude1,longtitude1],[latitude2,longtitude2],...]
Wenn Sie diesen Code für Ihre wissenschaftliche Arbeit verwenden, zitieren Sie ihn bitte als:
Sheng Wang, Zhifeng Bao, J. Shane Culpepper, Zizhe Xie, Qizhi Liu, Xiaolin Qin: Torch: A Search Engine for
Trajectory Data. SIGIR 2018: 535-544
@inproceedings{wang2018torch,
author = {{Wang}, Sheng and {Bao}, Zhifeng and {Culpepper}, J. Shane and {Xie}, Zizhe and {Liu}, Qizhi and {Qin}, Xiaolin},
title = "{Torch: {A} Search Engine for Trajectory Data}",
booktitle = {Proceedings of the 41th International ACM SIGIR Conference on Research & Development in Information Retrieval},
organization = {ACM},
pages = {535--544},
year = 2018,
}