gpt4 book ai didi

java - AnyLogic:补偿 GISRegion.area() 中的双重溢出

转载 作者:行者123 更新时间:2023-12-02 13:09:03 27 4
gpt4 key购买 nike

我正在尝试按地理区域对 AnyLogic GISRegions 集合进行排序。所述面积是使用GISRegion.area(units)计算的,这很简单。然而,我使用的区域是城市规模的,并且该方法返回一个double。这似乎会导致溢出问题:

enter image description here

我不认为我的代码有任何问题,所以大概这是一个 AnyLogic 问题。为了简洁起见,我添加了一行来打印每个区域的面积而不是排序步骤:

// For each region of the Australian Capital Territory, print its area in km^2:
areas.forEach(next -> traceln(""+next.name+": " + next.gisRegion.area(SQ_KILOMETER)));

有人遇到过这个问题吗?你是如何解决这个问题的?

对于非 AnyLogic 用户,我拥有每个地理形状中的所有经纬度点。我如何使用这些点计算面积?

最佳答案

[并不是一个完整的答案,但这些想法对于评论来说太长了。]

我假设您已经提出了 AnyLogic 支持请求,因为它看起来 100% 是一个错误。由于这只是一个基本的“计算面积”功能,除了按照您的建议,从您拥有的顶点纬度/经度以另一种方式计算它之外,我看不到任何其他方法,并且可以通过 getPoints() 获得GISRegion

因为这只是一个 N 边多边形,所以肯定有标准的 Java 库可以计算它,尽管这不允许 GIS 投影(不确定可能会引入什么级别的错误);您希望开放的 GIS 库能够应对后者。由于 GISRegion 有一个 createOMGraphicObject() 方法来创建 OpenMap 标准(?)格式图形,如果这是其他库可以使用的标准格式,那么这可能会很有用。

glennon 对 this GIS StackOverflow question 的答案中有代码声称可以执行计算(或者您可以像 fmark 的答案一样连接到 PostGIS)。

关于java - AnyLogic:补偿 GISRegion.area() 中的双重溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44036877/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com