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

And*_*obs 10 java vb.net 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,文档没有说明单位是度,英里,航海里程,公里,英寸等.

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

Ric*_*ich 6

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

根据Javadocs for Coordinate判断,它说:

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

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

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


小智 5

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

  • 蒂姆,目前尚不清楚这是真的.我发现了许多其他文档声称结果取决于底层几何体的坐标系. (3认同)
  • -1,我同意@kpw ..这是误导性的.JTS实际上使用2D Cartesion坐标进行大多数操作.某些操作存在z值.但绝对不是基于球体而且值不是中心角度 (2认同)
  • 这个答案是不正确的.根据他们的FAQ,使用的单位取决于输入文件的CRS:https://locationtech.github.io/jts/jts-faq.html#B5 (2认同)