T-Torch: Búsqueda de trayectorias de una manera rápida 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 puede responder de manera eficiente dos tipos típicos de consultas ahora:
Nuestro conjunto de datos de trayectoria recopilado en Porto está disponible. El conjunto de datos está coincidente e indexado. Descárguelo en https://drive.google.com/open?id=110u9raqxhxws_tn0iji-a1n71elriybm y póngalo en el directorio raíz del proyecto.
Gestionamos las bibliotecas dependientes con Maven. Puede instalar fácilmente los software requeridos en el archivo pom.xml.
Proporcionamos un caso de uso para la consulta de ruta. El método Main () está en la clase de prueba.
1. Engine engine = Engine.getBuilder().build();
2. List<List<TrajEntry>> queries = read();
3. QueryResult result = engine.findOnPath(queries.get(0));
T-Torch proporciona un motor de clase de alto nivel que contiene API simples para el procesamiento de consultas.
QueryResult ret = engine.findInRange(50, 50, 50);
La consulta de rango se utiliza para recuperar trayectorias que pasan a través de un área rectangular especificada. Para definir el área rectangular, se necesitan tres argumentos. La latitud y la longitud define el punto medio, con radio (en metros) juntos que representan el área rectangular.
QueryResult ret = engine.findOnPath(query);
La consulta de ruta 2 se usa para recuperar trayectorias que tienen al menos un borde común con la consulta. El argumento que toma es una "ruta" representada por una lista de coordenadas .
QueryResult ret = engine.findOnStrictPath(query)
La consulta de ruta estricta 2 se usa para recuperar trayectorias estrictamente que pasan por toda la consulta de principio a fin. El argumento que toma es una "ruta" representada por una lista de coordenadas .
QueryResult ret = engine.findTopK(query, 3);
La consulta de Top-K devuelve K trayectorias más altas clasificadas basadas en la medida de similitud especificada. El primer argumento es una "trayectoria de consulta" representada por una lista de coordenadas , y el segundo es el número de resultados principales para devolver.
if (ret.mappingSucceed){
List<Trajectory<TrajEntry>> l = ret.getResultTrajectory();
String mapVformat = ret.getMapVFormat();
}else{
//do something
}
Después de procesar la consulta, el objeto de tipo QueryResult se devuelve de manera uniforme. Contiene la trayectoria de consulta en forma sin procesar, la trayectoria de consulta de mapa y todas las trayectorias que se recuperan. Además, puede proyectarlos en MAPV 3 para fines de visualización.
Si desea buscar en su propio conjunto de datos, siga estos pasos para el preprocesamiento de datos:
Descargue los datos del mapa de OpenStreetMap donde se recopilan los datos de trayectoria, debe estar en el formato *.OSM.PBF y debe ponerlos en el directorio de recursos.
Preprocese su conjunto de datos en el formato admitido por nuestro programa. La coincidencia de mapas es la técnica para proyectar trayectorias sin procesar en la red de carreteras reales. El primer argumento es el URI del conjunto de datos de trayectoria sin procesar, mientras que el segundo argumento "Recursos/Porto.osm.pbf" debe ser el URI en su archivo PBF 1 después de la configuración, llame al método Start () para convertir las trayectorias sin procesar en trayectorias asignadas. Después de MapMatching, ejecute el programa Main () en la clase Torch.base.db.dbmanager para construir un índice invertido en el disco. Tome nuestro conjunto de datos de Porto como ejemplo.
MapMatching mm = MapMatching.getBuilder().build("Resources/porto_raw_trajectory.txt","Resources/porto.osm.pbf");
mm.start();
trajectoryID [[latitude1,longtitude1],[latitude2,longtitude2],...]
Si usa este código para su trabajo científico, cíquelo como:
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,
}