【发布时间】:2020-03-25 20:18:33
【问题描述】:
【问题讨论】:
标签: python-2.7 coordinates jython maximo centroid
【问题讨论】:
标签: python-2.7 coordinates jython maximo centroid
我使用的是 Maximo Spatial 7.6.0.3,但它应该不会太远,因为概念和设计仍然非常相同。
CALCULATEDX 和 CALCULATEDY 是 Maximo Anywhere 用来在移动地图上绘制工单的字段。它们由 WoAutoLocateCronTask cron 任务更新。这两个字段,至少在我使用的版本中,不会被 Maximo 用于在地图选项卡上呈现任何内容。
为了在地图上绘制工单,您必须拥有以下任一参考资料:
注意:在上述最后三种情况下,几何信息存在于 GIS 中,无需将它们存储在 Maximo 中。
Maximo Spatial 7.6.x 通过发布在 GIS 服务器上的 Web 服务将您的 MBO 对象链接到您的 GIS 要素(我知道 Spatial 7.6.1 发生了一些变化,但基本上,它仍然使用 Web 服务来定位您的记录)。
自动创建功能的作用是将记录添加到您的 GIS 要素表中,并通过要素类属性生成链接。您自然必须在 Map Manager 应用程序中配置地图服务、要素类和其他所有内容。自动创建将尝试通过查看服务地址(如果已填充 LONGITUDEX 和 LATITUDEY)或资产/位置参考(如果它们链接到 GIS 中的要素)来确定几何。自动创建需要从某个地方开始,它不能凭空为工单拼凑出一对坐标。
Maximo Spatial 不在 Maximo 中存储几何。它依靠 GIS 在地图上显示它们。您绝对可以编写逻辑来从 GIS 功能中获取几何图形。如果您想使用该信息在地图上显示您的工单,您应该将它们存储在相关服务地址的 LONGITUDEX 和 LATITUDEY 字段中,而不是 CALCULATEDX 和 CALCULATEDY 工单属性中。
希望对你有帮助。
干杯,
恩里克·法利亚
【讨论】:
计算中心点的数学并不是那么简单,我将解释 Spatial 是如何处理它的。 Spatial 所做的是使用纯数学函数即时计算中点。基本上,您需要计算资产的长度,然后逐段进行(段是您在 json“路径”中拥有的每一对值),直到到达中间,但有一些复杂性:
如果中间点在一个段内,你需要计算你需要在段的哪一部分停止,例如:假设你的资产有 15 米分成 5 个段(折线),所以每个段有3米。中心点距离原点 7.5 米,所以你需要经过 2 段(6 米),还有更多 1.5 米要走,在这种情况下你的中点在下一段的中点。我们使用三角形相似度来获取特定线段内的坐标。
我们正在使用 Arcgis Javascript API 来帮助我们进行一些数学运算,特别是计算两点之间的距离,因为有一些空间参考考虑了地球曲率,所以我们不能只计算两点之间的普通距离。
希望对你有帮助。
干杯,
蒂亚戈·斯卡顿
【讨论】:
我最终只是将 midpoint_X 和 midpoint_Y 字段放在 GIS 图层中。
当我将 GIS 图层集成到 Maximo 中的 ASSET 表时,我使用 midpoint_X 和 midpoint_Y 来填充 Maximo ASSET 表中的自定义 X 和 Y 列。
从那里,我可以使用 Maximo 中的自动化脚本来填充 WORKORDER 表中的自定义 X 和 Y 字段。
【讨论】: