Я использую вызов метода для преобразования точки в одну пространственную привязку к другой (одна координатная плоскость к другой в основном), и вызов работает отлично в первом примере, а затем во втором примере I я использую тот же метод для одного и того же типа объекта, и этот метод не влияет на код Point ... и пример ниже: (midpoint.project (GeometryUtil.getLatLongCoordSystem)) - вызов метода, с которым у меня возникают проблемы)Метод JAVA GIS не ведет себя так, как ожидалось
//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());
выход из правильной рабочей точки 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
Как вы можете видеть, это, кажется, чтобы работать должным образом в первом случае, но не во втором. Есть идеи?
Is Point последний класс? Может ли быть, что метод линии возвращает вам другой тип среды выполнения, который повторно реализует метод проекта? –
Как определить среднюю точку в первом примере? – epoch
@ Diego это не отображается при установке точек останова в каждом из классов aboce и вызове .getClass() на них, они оба возвращают com.esri.arcgis.geometry.Point – GregH