T-Torch: поиск траекторий быстро 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 теперь может эффективно отвечать на два типичных типа запросов:
Наш набор данных траектории, собранный в Porto, доступен. Набор данных сопоставлен и индексируется. Пожалуйста, загрузите его по адресу https://drive.google.com/open?id=110u9raqxhxws_tn0iji-a1n71elriybm и поместите его в корневой каталог проекта.
Мы управляем зависимыми библиотеками с Maven. Вы можете легко установить эти необходимые программы в файле pom.xml.
Мы предоставляем вариант использования для запроса пути. Метод Main () находится в тестовом классе.
1. Engine engine = Engine.getBuilder().build();
2. List<List<TrajEntry>> queries = read();
3. QueryResult result = engine.findOnPath(queries.get(0));
T-Torch обеспечивает двигатель класса высокого уровня, содержащий простые API для обработки запросов.
QueryResult ret = engine.findInRange(50, 50, 50);
Запрос диапазона используется для извлечения траекторий, проходящих через указанную прямоугольную область. Чтобы определить прямоугольную область, необходимы три аргумента. Широта и долгота определяют среднюю точку, с радиусом (в метрах) вместе, представляя прямоугольную область.
QueryResult ret = engine.findOnPath(query);
Запрос пути 2 используется для извлечения траекторий, имеющих хотя бы один общий край с запросом. Аргумент, который он принимает, является «путем», представленным списком координат .
QueryResult ret = engine.findOnStrictPath(query)
Строгий путь пути 2 используется для получения траекторий, строго проходящих через весь запрос от начала до конца. Аргумент, который он принимает, является «путем», представленным списком координат .
QueryResult ret = engine.findTopK(query, 3);
Запрос Top-K возвращает k траектории с наибольшим ранжированием на основе указанной меры сходства. Первый аргумент - это «траектория запроса», представленная списком координат , а второй - количество лучших результатов для возврата.
if (ret.mappingSucceed){
List<Trajectory<TrajEntry>> l = ret.getResultTrajectory();
String mapVformat = ret.getMapVFormat();
}else{
//do something
}
После обработки запроса объект типа запроса возвращается равномерно. Он содержит траекторию запроса в необработанной форме, траекторию запроса сопоставления с картой и все траектории, которые получаются. Кроме того, вы можете спроектировать их на MAPV 3 для целей визуализации.
Если вы хотите искать свой собственный набор данных, пожалуйста, выполните следующие действия для предварительной обработки данных:
Загрузите данные карты из OpenStreetMap, где собираются данные траектории, они должны быть в формате *.osm.pbf, и вам необходимо поместить их в каталог ресурсов.
Предварительно обрабатывать свой набор данных в формат, поддерживаемый нашей программой. Сопоставление карты - это метод проецирования необработанных траекторий в реальную дорожную сеть. Первым аргументом является URI набора данных RAW TRAuctory, в то время как второй аргумент «ресурсы/porto.osm.pbf» должен быть URI для вашего файла PBF 1 после настройки, вызовов start () для преобразования необработанных траекторий в картированные траектории. После MapMatching запустите программу Main () в классе torch.base.db.dbmanager для создания инвертированного индекса на диске. Пожалуйста, возьмите наш набор данных Porto в качестве примера.
MapMatching mm = MapMatching.getBuilder().build("Resources/porto_raw_trajectory.txt","Resources/porto.osm.pbf");
mm.start();
trajectoryID [[latitude1,longtitude1],[latitude2,longtitude2],...]
Если вы используете этот код для своей научной работы, пожалуйста, укажите его как:
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,
}