微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Anylogic - 使用自定义 GIS 路线绘制动画帧时出错

如何解决Anylogic - 使用自定义 GIS 路线绘制动画帧时出错

我将 GIS 地图用于水路运输系统,并且必须使用我自己的 GIS 路线(不是自动生成的)。我使用 moveto 块,但每次代理到达 GIS 点时,我都会收到一条错误消息:

"Error while drawing animation frame. Possibly caused by dynamic properties of animation shapes. The picture will be restored when (and if) the error goes away."

控制台中出现以下消息:

Error during drawing animation frame:
java.lang.RuntimeException: root:
gisRoute8 (GISRoute) : Offset (9539.429153529953) is greater than length (687.4357796935112)
    at com.anylogic.engine.Engine.error(UnkNown Source)
    at com.anylogic.engine.Agent.error(UnkNown Source)
    at com.anylogic.engine.Utilities.error(UnkNown Source)
    at com.anylogic.engine.markup.GISMarkupElement.error(UnkNown Source)
    at com.anylogic.engine.markup.GISRoute$1.n(UnkNown Source)
    at com.anylogic.engine.markup.AbstractCurve.n(UnkNown Source)
    at com.anylogic.engine.markup.AbstractCurve.getPositionAtOffset(UnkNown Source)
    at com.anylogic.engine.markup.GISRoute.getPositionAtOffset(UnkNown Source)
    at com.anylogic.engine.markup.SimpleDirection$2.getPositionAtOffset(UnkNown Source)
    at com.anylogic.engine.markup.AbstractNetwork.n(UnkNown Source)
    at com.anylogic.engine.markup.AbstractNetwork.n(UnkNown Source)
    at com.anylogic.engine.markup.AbstractNetwork.n(UnkNown Source)
    at com.anylogic.engine.markup.AbstractNetwork.getPosition(UnkNown Source)
    at com.anylogic.engine.markup.AbstractNetwork.getPositionAtOffset(UnkNown Source)
    at com.anylogic.engine.markup.AbstractNetwork.getPositionAtOffset(UnkNown Source)
    at com.anylogic.engine.b.i(UnkNown Source)
    at com.anylogic.engine.ih.updatePosition(UnkNown Source)
    at com.anylogic.engine.ExtAgentWithSpatialMetricsDelegate.updatePosition(UnkNown Source)
    at com.anylogic.libraries.processmodeling.l.updatePosition(UnkNown Source)
    at com.anylogic.engine.Agent.h(UnkNown Source)
    at com.anylogic.engine.Agent.getX(UnkNown Source)
    at com.anylogic.engine.ih.getLat(UnkNown Source)
    at com.anylogic.engine.presentation.ShapeEmbeddedobjectPresentation.updateDynamicPropertiesstructural(UnkNown Source)
    at com.anylogic.engine.presentation.ShapeAgentGroup_xjal.updateDynamicPropertiesstructural(UnkNown Source)
    at com.anylogic.engine.presentation.ShapeGroup.updateDynamicPropertiesstructural(UnkNown Source)
    at com.anylogic.engine.Presentable.n(UnkNown Source)
    at com.anylogic.engine.Presentable.updateShapeDynamicProperties(UnkNown Source)
    at com.anylogic.engine.gui.SVGFrameProducer.n(UnkNown Source)
    at com.anylogic.engine.gui.ExperimentHost$1.l(UnkNown Source)
    at com.anylogic.engine.gui.ExperimentHost$1.n(UnkNown Source)
    at com.anylogic.engine.gui.SVGFrameCollector.l(UnkNown Source)
    at com.anylogic.engine.gui.SVGFrameCollector.c(UnkNown Source)
    at java.base/java.lang.Thread.run(Thread.java:834)

每次代理从定制的 GIS 路线到达 GIS 点时都会发生这种情况,而自动生成的 GIS 路线会起作用。我做错了什么还是这是一个已知的错误

解决方法

在 AnyLogic 8.7.2 中使用自定义 GIS 路由时出现错误:从 OSM 服务器获取路由的 GIS 地图的默认设置与使用自定义 GIS 网络进行路由的代理冲突。 (已通过 AnyLogic 支持确认并应在 8.7.3 中修复。)

如果您使用自定义 GIS 路线,您可以通过设置 GIS 地图(路由部分)来解决这个问题,以便路线是直线(这样没有路由使用服务器)。

(错误消息表明它以某种方式认为目标点(或途中的某个中间点)超出了 GIS Route 网络的范围。最初它们只是“临时”动画错误,但是,如果您尝试做一个后续的运动,你会得到一个严重的错误——所以似乎代理不知何故被定位在一个超出 GIS 网络范围的点。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。