gpt4 book ai didi

JAVA GIS 方法未按预期运行

转载 作者:行者123 更新时间:2023-12-02 04:29:59 26 4
gpt4 key购买 nike

我正在使用方法调用将一个空间引用中的点转换为另一个空间引用(基本上从一个坐标平面到另一个坐标平面),并且该调用在第一个示例中工作正常,然后在第二个示例中我在相同的对象类型和方法对 Point... 代码和下面的示例没有影响:( midpoint.project(GeometryUtil.getLatLongCoordSystem)) 是我遇到问题的方法调用)

//works fine...

if (closestStationOrSpanFw != null) {
IGeometry shape = closestStationOrSpanFw.getIFeature().getShapeCopy();
Point point = null;
if (shape instanceof Point) {
point = (Point) shape;
System.out.println("OLD POINT coords: " + point.getX() + " " + point.getY());
point.project(GeometryUtil.getLatLongCoordSystem());
System.out.println("NEW POINT coords: " + point.getX() + " " + point.getY());


//Problem code:

else if (shape instanceof Polyline){
Polyline line = (Polyline) shape;
Point lowerLeft = (Point) line.getEnvelope().getLowerLeft();
Point upperRight = (Point) line.getEnvelope().getUpperRight();
Point midpoint = GeometryUtil.getMidpoint(lowerLeft, upperRight);
System.out.println("OLD LINE coords: " + midpoint.getX() + " " + midpoint.getY());
midpoint.project(GeometryUtil.getLatLongCoordSystem());
System.out.println("NEW LINE coords: " + midpoint.getX() + " " + midpoint.getY());

正常工作的 Point System.outs 的输出:

OLD POINT coords: 1860356.9240645461        1698342.0271777364
NEW POINT coords: -87.85965314497173 34.6678477163251

折线 System.outs 的输出(非常接近上面的点坐标):

OLD LINE coords: 1860490.636483086        1698315.1646775191
NEW LINE coords: 1860490.636483086 1698315.1646775191

正如您所看到的,这似乎在第一种情况下可以正常工作,但在第二种情况下则不然。有什么想法吗?

最佳答案

documentation指出“要进行投影,几何体需要设置空间引用,而不是未知坐标系统。传递给该方法的新空间引用系统定义输出坐标系。如果任一空间引用为未知,则坐标不会更改。 Z 和测量值不会因项目方法而更改"

您的第二点可能没有空间引用集。设置它应该可以修复它。

关于JAVA GIS 方法未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31588806/

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