T-Torch: recherche de trajectoires de manière rapide 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 est capable de répondre efficacement à deux types de requêtes typiques maintenant:
Notre ensemble de données de trajectoire collecté à Porto est disponible. L'ensemble de données est apparié et indexé. Veuillez le télécharger sur https://drive.google.com/open?id=110u9raqxhxws_tn0iji-a1n71elriybm et le mettre dans le répertoire racine du projet.
Nous gérons les bibliothèques dépendantes avec Maven. Vous pouvez facilement installer les logiciels requis dans le fichier pom.xml.
Nous fournissons un cas d'utilisation pour la requête de chemin. La méthode Main () est dans la classe de test.
1. Engine engine = Engine.getBuilder().build();
2. List<List<TrajEntry>> queries = read();
3. QueryResult result = engine.findOnPath(queries.get(0));
T-Torch fournit un moteur de classe de haut niveau contenant des API simples pour le traitement des requêtes.
QueryResult ret = engine.findInRange(50, 50, 50);
La requête de plage est utilisée pour récupérer des trajectoires passant par une zone rectangulaire spécifiée. Pour définir la zone rectangulaire, trois arguments sont nécessaires. Latitude et longitude définit le point médian, avec le rayon (en mètres) représentant ensemble la zone rectangulaire.
QueryResult ret = engine.findOnPath(query);
La requête du chemin 2 est utilisée pour récupérer les trajectoires ayant au moins un bord commun avec la requête. L'argument qu'il prend est un "chemin" représenté par une liste de coordonnées .
QueryResult ret = engine.findOnStrictPath(query)
La requête stricte de chemin 2 est utilisée pour récupérer les trajectoires qui passent strictement à travers toute la question du début à la fin. L'argument qu'il prend est un "chemin" représenté par une liste de coordonnées .
QueryResult ret = engine.findTopK(query, 3);
La requête Top-K renvoie K trajectoires les mieux classées en fonction de la mesure de similitude spécifiée. Le premier argument est une "trajectoire de requête" représentée par une liste de coordonnées , et la seconde est le nombre de résultats les plus importants à retourner.
if (ret.mappingSucceed){
List<Trajectory<TrajEntry>> l = ret.getResultTrajectory();
String mapVformat = ret.getMapVFormat();
}else{
//do something
}
Une fois la requête traitée, l'objet de type queryResult est renvoyé uniformément. Il contient la trajectoire de requête sous forme brute, la trajectoire de requête appariée par carte et toutes les trajectoires récupérées. Vous pouvez également les projeter sur MAPV 3 à des fins de visualisation.
Si vous souhaitez rechercher votre propre ensemble de données, veuillez suivre ces étapes pour le prétraitement des données:
Téléchargez les données de la carte à partir d'OpenStreetMap où les données de trajectoire sont collectées, elles doivent être au format * .osm.pbf et vous devez les mettre dans le répertoire des ressources.
Prétraitez votre ensemble de données dans le format pris en charge par notre programme. La correspondance des cartes est la technique de projection de trajectoires brutes sur un réel réseau routier. Le premier argument est l'URI de l'ensemble de données de la trajectoire brute, tandis que le deuxième argument "Ressources / Porto.osm.pbf" devrait être l'URI à votre fichier PBF 1 après configuration, appelez la méthode () pour convertir les trajectoires brutes en trajectoires mappées. Après MapMatching, exécutez le programme Main () dans la classe Torch.base.db.dbManager pour construire un index inversé sur le disque. Veuillez prendre notre ensemble de données Porto à titre d'exemple.
MapMatching mm = MapMatching.getBuilder().build("Resources/porto_raw_trajectory.txt","Resources/porto.osm.pbf");
mm.start();
trajectoryID [[latitude1,longtitude1],[latitude2,longtitude2],...]
Si vous utilisez ce code pour votre travail scientifique, veuillez le citer comme:
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,
}