- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经在 Android 上的不同设备上测试 graphhopper 几个星期了。今天我在 GraphHopper load(...) 函数执行期间遇到了 OutOfMemory 错误。这发生在小米 Mi4 手机上。以最快和最短的权重导出汽车、自行车和步行的图表。所有图形文件都超过 1.17GB。
我试过这个:为了节省内存,我删除了除汽车以外的所有特定于其他车辆的文件:nodes_ch_fastest_bike、shortcuts_fastest_bike、shortcuts_fastest_foot 等。
并修改了属性文件中的两行:
我删除了汽车以外的标志编码器:
graph.flag_encoders=car|speed_factor=5.0|speed_bits=5|turn_costs=false|version=1
并删除了汽车以外的权重
graph.ch.weightings=[fastest|car, shortest|car]
现在它正确加载了 :-)
问题是,我是否可以通过这种方式安全地修改属性文件(也许不需要删除文件?)以仅加载用户选择的车辆数据(如果用户在应用程序运行时更改车辆,图表关闭,然后修改属性文件以设置适当的编码器和权重,图表会再次加载)。
我注意到,除了 names 之外的剩余文件,即:nodes, edges, geometry, location_index 准备用于支持所有车辆(汽车、自行车、脚)的图形) 与仅为汽车准备的图形文件相比,大小有所不同。我想这与编码有关。虽然它似乎工作正常,但我不知道确切的图结构,我想避免任何不一致。
谢谢
更新:我对其进行了测试,此解决方法适用于汽车,但在计算自行车和汽车的路线时有时会失败(最短和最快的加权)。异常:
java.lang.RuntimeException: An error occurred while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:309) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) at java.util.concurrent.FutureTask.setException(FutureTask.java:223) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818) Caused by: java.lang.IllegalStateException: Calculating time should not require to read speed from edge in wrong direction. Reverse:true, fwd:false, bwd:false at com.graphhopper.routing.Path.calcMillis(Path.java:253) at com.graphhopper.routing.ch.Path4CH.expandEdge(Path4CH.java:56) at com.graphhopper.routing.ch.Path4CH.expandEdge(Path4CH.java:96) at com.graphhopper.routing.ch.Path4CH.expandEdge(Path4CH.java:96) at com.graphhopper.routing.ch.Path4CH.expandEdge(Path4CH.java:103) at com.graphhopper.routing.ch.Path4CH.expandEdge(Path4CH.java:96) at com.graphhopper.routing.ch.Path4CH.expandEdge(Path4CH.java:96) at com.graphhopper.routing.ch.Path4CH.expandEdge(Path4CH.java:96) at com.graphhopper.routing.ch.Path4CH.expandEdge(Path4CH.java:103) at com.graphhopper.routing.ch.Path4CH.processEdge(Path4CH.java:46) at com.graphhopper.routing.PathBidirRef.extract(PathBidirRef.java:92) at com.graphhopper.routing.DijkstraBidirectionRef.extractPath(DijkstraBidirectionRef.java:130) at com.graphhopper.routing.AbstractBidirAlgo.calcPath(AbstractBidirAlgo.java:64) at com.graphhopper.routing.AbstractRoutingAlgorithm.calcPaths(AbstractRoutingAlgorithm.java:120) at com.graphhopper.routing.template.ViaRoutingTemplate.calcPaths(ViaRoutingTemplate.java:110) at com.graphhopper.GraphHopper.calcPaths(GraphHopper.java:1098) at com.graphhopper.GraphHopper.route(GraphHopper.java:1003)
最佳答案
这应该没有问题,但目前还不是开箱即用的,只能通过您描述的黑客攻击或调整源代码。因为这是在我创建 this new issue 之前被要求和询问的
关于android - Graphhopper。我可以只加载部分图形文件以避免 OutOfMemory 错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39809178/
我正在使用 Graphhopper core计算两点之间的距离和最佳路径的库,我读到了 Graphhopper Routing API和解释 here , API 有一个定价方案,所以我的问题是 AP
我已安装 Graphhopper在 Ubuntu Server 中使用 $ git clone命令和使用亚洲 map available here . 我使用以下命令启动了我的服务器: $ ./gra
我开发了一个 Graphhopper 网络应用程序。但很可能无法同时计算多个路线(如果您部署一个 Web 应用程序,多个用户将同时询问路线)。有没有办法同时计算多条路线? 最佳答案 当然你可以同时计算
我正在尝试创建一个将 Osmdroid 与 Graphhoper 相结合的应用程序,以实现城市区域的离线路由。我从 Open Street Maps 导出 osm 文件并将该文件转换为 pbf。问题是
我已经在 osmdroid 和 osm bonus pack(惊人的库!)上胡闹了一段时间,并且一直在思考离线路由和 turn by turn navigation 的想法,现在,我还没有尝试任何东西
我正在使用 GraphHopper 来查找点之间的路线。如果车辆以 x 的平均速度移动,我想预测给定时间 t 车辆的位置。 GraphHopper 有一个用于查找等时线的模块,但我不知道如何在单个路线
我正在尝试获取 EdgeIteratorState e 的基节点和调整节点的纬度/经度。我正在路由并从路由请求中获取路径。从 Path 对象中我得到了 EdgeIteratorStates。 我是这样
我想将 graphhopper 嵌入到我的 java 应用程序 (J2EE) 中,以便计算 map 上许多点之间的路线距离。点由它们的经度和纬度给出。我不需要渲染 map 。 你能详细说明如何做到这一
有没有办法在 Graphhopper androd 中获得更多替代路线,我似乎在计算中最多获得 2/3 路线。我有一张包含有关 CCTV 摄像机位置信息的 map ,我正在尝试找到路线拥有最大数量的相
如何在 Graphhopper android 中将路线类型设置为行人?我一直在 android 中使用 GHRequest.setVehicle() 方法,但它不起作用。我试过使用“脚”和“自行车”
我是 Graphhopper 的新手,我正在构建室内路由。 目前地板上一切正常。 我想知道如何使用 graphhopper 在楼层之间导航/路由? 我知道 Graphhopper 支持高程,我可以使用
在艰难地度过了两天 GitHub 和 JavaDocs 上的单元测试和 graphhopper 片段之后,认为我可以将所有内容放在一个非常基本的 Java 应用程序中,我必须得出结论,我是不能:( 我
浏览时https://github.com/graphhopper/directions-api/blob/master/docs-routing.md我找到了选择预设车辆类型汽车、步行和自行车之一的
我们正在寻找离线路由和反向地理编码服务。 GraphHopper 宣传其 Directions API can be self-hosted : GraphHopper Directions API
我正在使用 GrpahHopper 的自托管路由服务器 v0.5 ,运行在 Ubuntu 15.10 上。 该解决方案通过带有 jar 文件和任意 OSM 数据的终端运行。 有没有办法控制服务器的记录
我对 GraphHopper 路由引擎稳定版本 0.5 有疑问 使用vehicle=car时我可以获取路线,但使用自行车和步行则无法获取路线。 Here is an example在 GraphHop
我是 map 和路线方面的新手。我在我的设备 Huawei Ascend g610 和 Sony Xperia ZL 上运行演示 apk,但在这两个设备上,应用程序都显示一条消息:“要在连接到互联网时
我已经在 Android 上的不同设备上测试 graphhopper 几个星期了。今天我在 GraphHopper load(...) 函数执行期间遇到了 OutOfMemory 错误。这发生在小米
我目前正在一个应用程序中使用 GraphHopper,该应用程序检测客户的路线是否经过特定兴趣点 (PoI)。一个 PoI 有一条或多条可供客户通过的道路(为每个 PoI 预定义)。 我认为,最快的方
我已经在运行 Ubuntu 15.10 作为 guest 操作系统的虚拟机上设置了用于导航/路由的 GraphHopper 本地服务器。 要初始化服务器,需要指定以下命令(在终端中):java -ja
我是一名优秀的程序员,十分优秀!