com.vividsolutions.jts.geom.Geometry类中的距离单位是多少?

我们的VB.NET项目使用来自Vivid Solutoins(com.vividsolutions.jts.geom.Geometry)的Java库来进行几何计算。 帮助在这里: http : //tsusiatsoftware.net/jts/javadoc/com/vividsolutions/jts/geom/Geometry.html

我无法弄清楚的是具体针对Buffer属性的单位,或者任何其他距离。 我的程序正在处理Nautical Miles,文档没有说明单位是度,英里,航海里程,公里,英寸等。

有没有人用这个知道答案的图书馆? 提前致谢。

这是一篇很老的post,但是对于正在寻找的其他人来说,这里是答案,因为令人难以置信的是,java文档没有说明方法返回的单位。 返回的距离是中心角度。 然后,您可以使用任意数量的公式转换为所需的计量单位。 最简单的是转换为弧度。 1弧度= 180度除以pi(rad = 180deg / pi)。 从那里,您可以将弧度乘以您选择的单位(例如6371 km)的地球平均半径,以获得两点之间的距离。 也可以使用更准确的方法,但您可以在网上查找。

首先,我不知道这个API,我只是浏览了你给出的链接。

根据Javadocs for Coordinate判断,它说:

[Coordinate是一个]轻量级类,用于存储二维笛卡尔平面上的坐标。 它与Point不同,Point是Geometry的子类。 与Point类型的对象(包含附加信息,如包络,精度模型和空间参考系统信息)不同

所以看起来 Geometry没有这样的单位,但Point,它的子类,它可以指定它们。

如果Geometry类没有任何单位,我不会感到惊讶,只是代表任何特定坐标系中空间点的概念。

我与图书馆的一位作者确认,并使用具有不同投影的地理空间文件自行测试,距离单位取决于源文件的CRS。 这在我们的FAQ中有所介绍: https : //locationtech.github.io/jts/jts-faq.html#B5

找到这个的快速方法是在http://epsg.io/上查找EPSG代码并找到单位。 例如, EPSG 3347具有米的单位。