asp.net-mvc - 长距离 OSM 路由,如何处理所有这些数据?

标签 asp.net-mvc azure openstreetmap

我正在尝试构建自己的路由系统,该系统利用 OSMSharp,并最终将完整的网站前端部署到 Azure。但是,我认为如果我想找到一条长距离路线(例如纽约 -> 加利福尼亚州),我会遇到一个严重的问题。看起来 OSMSharp 中的路由器只接受 osm 数据流,但即使是二进制格式 (.osm.pbf) 也将是 roughly 10gb of data 。这似乎是一个巨大的性能问题。

要么,我需要在内存中保存那个巨大的文件,谁知道 Azure 会为此向我收取多少费用,或者 OSMSharp/CLR 将处理它的效果如何;或者需要将其分解并存储在数据库中以便即时加载。

任何人都可以深入了解通常如何处理这种情况吗?我是否已经无法完成个人项目了?也许我应该只支持美国的一个州?

最佳答案

直接处理 pbf 文件效率非常低,因为它只包含原始数据。此文件格式未针对在其上运行查询进行优化。您需要预处理此文件,计算路由图,删除不感兴趣的数据,然后将其存储在某种数据库或类似的有效格式中。

对于很长的距离,请考虑使用 contraction hierarchies 。它们被许多流行的 OSM 路由器使用,例如 graphhopperOSRM .

查看各种不同的 online routers 也很有帮助。和 offline routers为 OSM 以获得一些想法。

关于asp.net-mvc - 长距离 OSM 路由,如何处理所有这些数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33202077/

相关文章:

由于版本不匹配,Azure Function 应用程序无法进行 GitHub 集成

使用 HttpWebRequest 时 Silverlight 5 插件崩溃或请求中止

markerclusterer - 单击时传单标记不会打开弹出窗口

openstreetmap - 使用 Overpass API 查找坐标周围的多个标签

android - 将 OSMDroid 滚动限制到特定的边界框和缩放级别

c# - html.dropdownlist 的 onchange 事件

asp.net-mvc - 我应该为 Controller 或服务层还是两者都编写单元测试?

asp.net - 使用 Window 身份验证时 User.Identity.Name 为空

javascript - 如何在 ASP.Net MVC 4 中为日期选择器添加 javascript

Azure 创建的 ARM 在 Azure 中无效