Рассчитайте время вождения с помощью OSM и ItineroC#

Место общения программистов C#
Anonymous
Рассчитайте время вождения с помощью OSM и Itinero

Сообщение Anonymous »

Я хочу написать программу, которая сможет рассчитать время в пути от точки А до точки Б с помощью OSM и библиотеки Itinero (http://www.itinero.tech/)
В настоящее время я делаю следующее:
  • Загрузите базу данных "pbf" с сайта geofabrik.de
  • Преобразуйте «pbf» в файл routerdb.
  • Используйте файл routerdb в коде, как показано в следующем фрагменте:

    Код: Выделить всё

    RouterDb routerDb = new RouterDb();
    
    string path = "PathToRouterDB";
    using (var stream = new FileInfo(path).OpenRead())
    {
    routerDb = RouterDb.Deserialize(stream);
    }
    
    router = new Router(routerDb);
    
    var profile = router.Db.GetSupportedProfile("car");
    
    Coordinate from = new Coordinate(fromLatidutde, fromLongitude);
    Coordinate to = new Coordinate(toLatitude, toLongitude);
    
    List points = new List
    {
    router.TryResolve(profile, from, 200),
    router.TryResolve(profile, to, 200)
    }
    
    var route = router.TryCalculate(profile, points.ToArray());
    
    float drivingTime = route.Value.TotalTime;
    
Это правильный путь? Когда я рассчитываю большие расстояния (например, 500 км), расчет времени в пути занимает 5 минут, а это слишком много для моей программы.

Было бы здорово, если бы у кого-то есть предложения для меня!

С уважением,
Андреас

Подробнее здесь: https://stackoverflow.com/questions/527 ... nd-itinero

Вернуться в «C#»