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

时间:2010-01-28 14:10:24

标签: java vb.net geometry

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

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

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

3 个答案:

答案 0 :(得分:6)

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

根据Javadocs对Coordinate的判断,它说:

  

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

因此,似乎 Geometry没有这样的单位,但Point,它的子类,它可以指定它们。

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

答案 1 :(得分:5)

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

答案 2 :(得分:0)

最近我在该库(http://tsusiatsoftware.net/jts/javadoc/com/vividsolutions/jts/geom/Geometry.html上工作时,经过调查后发现,使用此api调用某些方法距离计算时返回的单位距离将以度为单位。要将其转换为公里,假设返回的值为 d ,则需要将其转换为 radian 并乘以6371km的地球半径。公式为d / 180 * PI * 6371。