Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 远程OSM路由,如何处理所有这些数据?_Asp.net Mvc_Azure_Openstreetmap - Fatal编程技术网

Asp.net mvc 远程OSM路由,如何处理所有这些数据?

Asp.net mvc 远程OSM路由,如何处理所有这些数据?,asp.net-mvc,azure,openstreetmap,Asp.net Mvc,Azure,Openstreetmap,我正在尝试建立我自己的路由系统,它利用OSMSharp,最终将有一个完整的网站前端部署到Azure。但是,如果我想找到一条长距离的路线(例如NY->CA),我认为我有一个严重的问题。看起来OSMSharp中的路由器只接受osm数据流,但即使是二进制格式(.osm.pbf)也会接受。这似乎是一个巨大的性能问题 或者,我需要在内存中保存那个巨大的文件,谁知道Azure将为此向我收取多少费用,或者OSMSharp/CLR将如何处理它;或者需要将其分解并存储在数据库中,以便动态加载 有人能对这通常是如何

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

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


有人能对这通常是如何处理的给出一些见解吗?我是不是因为一个个人项目而无法胜任?也许我应该只支持一个美国州?

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

对于真正的长距离考虑使用。它们被许多流行的OSM路由器使用,例如和


这也有助于了解OSM的各种不同和功能,以便获得一些想法。

osmsharp还利用收缩层次结构(如果我没有记错的话)。是的,我相信osmsharp在加载PBF时会进行预处理。我不能为osmsharp说话,但graphhopper允许您高效、快速地导入PBF相对内存,始终可以使用内存映射配置进一步减少使用的RAM(但导入速度会较慢)。同样的情况也适用于查询:GraphHopper可以利用大量的RAM进行快速查询,或者只是将其配置为使用内存映射,而RAM使用率要低得多。另一种方法是使用托管(OSM)路由服务。。。提示;)是的,我考虑过,但我想运行我自己的自定义路由算法。我认为这完全排除了托管服务。不过我会调查graphhopper的,谢谢!