Hi Manfred,

You're right, in some situations, it maybe useful to set the datum transformation to be used.

For advanced users, CTS can use alternative datum transformations (ex. a Bursa-Wolf transformation between two local datum) and return several possible transformations between two CRSs, but it is not exposed through the interface.

Practically, in the library, all CRSs are defined with a toWGS84 parameter and by default, CTS uses only the following transformation chain :

CRS1 -> toWGS84 -> WGS84 -> fromWGS84 -> CRS2

Michaël


Le 30/12/2016 à 07:37, manf...@egger-gis.at a écrit :
Hi Michael,

Look at the attached file. In ArcGis 10.3.1 you have to select a geographic 
transformation before you start a transformation between two datums.

It seems that the transformation in CTS does not need such a information?

And if i want to transform from MGI (Austria) to 
D_Deutsches_Hauptdreiecksnetz(Germany)? Does this run automatically too?

Transformation from MGI to WGS 84 and after that transformation from WGS84 to 
D_Deutsches_Hauptdreiecksnetz?

Best regards,

Manfred



Hi Manfred,

What do you mean exactly ?

In CTS, one performs transformations between two CRS (Coordinate
Reference System)

A CRS uses a specific datum, ellipsoid, prime meridian, and in case of a
projected CRS, projection.
With all these informations, it can compute transformations from/to
WGS84 (geographic or cartesian).

What do you mean by geographic transformation ? How do you define WGS84
to MGI(Austria) transformation in other softwares ?

Note that all parameters used by cts are in the epsg file (which is the
same as the one used by proj4).

Micha?l



Le 29/12/2016 ? 20:03, manf...@egger-gis.at a ?crit :
Hi,

I will held my presenation about OpenJump and transformation in German, but i 
plan to write a summary for your WIKI in English. There are some not German 
speaking people there.

One important question about the Transformation Plugin by 
https://github.com/orbisgis/cts:

Some days ago i transformed coordinates between two datums (WGS 84 to 
MGI(Austria)). The transformation was ok. But i was suprised that it is not 
necessary to select a geographic transformation.

In other software you have to select a geographic transformation to get a 
correct transformation.

What is the reason?

Best regards

Manfred





------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel




------------------------------

Message: 4
Date: Thu, 29 Dec 2016 21:23:21 +0100
From: Micha?l Michaud <m.michael.mich...@orange.fr>
Subject: Re: [JPP-Devel] SVN: [5296]
        core/trunk/src/com/vividsolutions/jump/workbench/ui/zoom/
        ZoomToCoordinatePlugIn.java
To: jump-pilot-devel@lists.sourceforge.net
Message-ID: <d4812395-f389-7c36-89dc-24f4ddfa9...@orange.fr>
Content-Type: text/plain; charset=windows-1252; format=flowed

Ya seems to be fixed ;-)

Micha?l


Le 29/12/2016 ? 21:15, edgar.sol...@web.de a ?crit :
is r5301 better? ..ede

On 29.12.2016 21:02, Micha?l Michaud wrote:
Hi Ede,

I don't know what you changed, but the plugin has a strange behaviour.

When the dialog is get from the menu, clicking on OK just reset the
coordinates without zooming to it.

When the dialog is get from the status bar, it works as usually.

Micha?l


Le 29/12/2016 ? 18:33, jump-pilot-...@lists.sourceforge.net a ?crit :
Revision: 5296
             http://sourceforge.net/p/jump-pilot/code/5296
Author:   edso
Date:     2016-12-29 17:33:41 +0000 (Thu, 29 Dec 2016)
Log Message:
-----------
reformat
removed unneeded undo call

Modified Paths:
--------------
       
core/trunk/src/com/vividsolutions/jump/workbench/ui/zoom/ZoomToCoordinatePlugIn.java

Modified: 
core/trunk/src/com/vividsolutions/jump/workbench/ui/zoom/ZoomToCoordinatePlugIn.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/workbench/ui/zoom/ZoomToCoordinatePlugIn.java
        2016-12-29 17:32:49 UTC (rev 5295)
+++ 
core/trunk/src/com/vividsolutions/jump/workbench/ui/zoom/ZoomToCoordinatePlugIn.java
        2016-12-29 17:33:41 UTC (rev 5296)
@@ -24,96 +24,96 @@
    import com.vividsolutions.jump.workbench.ui.cursortool.Animations;
public class ZoomToCoordinatePlugIn extends AbstractPlugIn {
-       private Coordinate lastCoordinate = new Coordinate(0, 0);
-       public boolean execute(PlugInContext context) throws Exception {
-               reportNothingToUndoYet(context);
-               Coordinate coordinate = prompt(context);
-               if (coordinate == null) {
-                       return false;
-               }
-        lastCoordinate = coordinate;
-               context.getLayerViewPanel().getViewport()
-                               .zoom(toEnvelope(coordinate, 
context.getLayerManager()));
-                
Animations.drawExpandingRing(context.getLayerViewPanel().getViewport()
-                       .toViewPoint(lastCoordinate), false, Color.BLUE,
-                       context.getLayerViewPanel(), new float[] { 20, 20 });
+  private Coordinate lastCoordinate = new Coordinate(0, 0);
- return true;
-       }
+  public boolean execute(PlugInContext context) throws Exception {
+    Coordinate coordinate = prompt(context);
+    if (coordinate == null) {
+      return false;
+    }
+    lastCoordinate = coordinate;
+    context.getLayerViewPanel().getViewport()
+        .zoom(toEnvelope(coordinate, context.getLayerManager()));
+    Animations.drawExpandingRing(context.getLayerViewPanel().getViewport()
+        .toViewPoint(lastCoordinate), false, Color.BLUE,
+        context.getLayerViewPanel(), new float[] { 20, 20 });
- private Coordinate prompt(PlugInContext context) {
-               while (true) {
-                       try {
-                               return 
toCoordinate(JOptionPane.showInputDialog(context
-                                               .getWorkbenchFrame(),
-                                               
I18N.get("ui.zoom.ZoomToCoordinatePlugIn.enter-coordinate-to-zoom-to"), lastCoordinate.x 
+ ", "
-                                                               + 
lastCoordinate.y));
-                       } catch (Exception e) {
-                               
JOptionPane.showMessageDialog(context.getWorkbenchFrame(), e
-                                               .getMessage(),
-                                               
context.getWorkbenchFrame().getTitle(),
-                                               JOptionPane.ERROR_MESSAGE);
-                       }
-               }
+    return true;
+  }
- }
+  private Coordinate prompt(PlugInContext context) {
+    while (true) {
+      try {
+        return toCoordinate(JOptionPane.showInputDialog(context
+            .getWorkbenchFrame(), I18N
+            .get("ui.zoom.ZoomToCoordinatePlugIn.enter-coordinate-to-zoom-to"),
+            lastCoordinate.x + ", " + lastCoordinate.y));
+      } catch (Exception e) {
+        JOptionPane.showMessageDialog(context.getWorkbenchFrame(),
+            e.getMessage(), context.getWorkbenchFrame().getTitle(),
+            JOptionPane.ERROR_MESSAGE);
+      }
+    }
- private Envelope toEnvelope(Coordinate coordinate, LayerManager layerManager) {
-               int segments = 0;
-               int segmentSum = 0;
-               outer : for (Iterator i = layerManager.iterator(); i.hasNext(); 
) {
-                       Layer layer = (Layer) i.next();
-                       for (Iterator j = 
layer.getFeatureCollectionWrapper().iterator(); j
-                                       .hasNext(); ) {
-                               Feature feature = (Feature) j.next();
-                Collection coordinateArrays = 
CoordinateArrays.toCoordinateArrays(feature.getGeometry(), false);
-                for (Iterator k = coordinateArrays.iterator(); k.hasNext(); ) {
-                       Coordinate[] coordinates = (Coordinate[]) k.next();
-                    for (int a = 1; a < coordinates.length; a++) {
-                        segments++;
-                       segmentSum += coordinates[a].distance(coordinates[a-1]);
-                        if (segments > 100) { break outer; }
-                    }
-                }
-                       }
-               }
-               Envelope envelope = new Envelope(coordinate);
-        //Choose a reasonable magnification [Jon Aquino 10/22/2003]
-               if (segmentSum > 0) {
-                       envelope = EnvelopeUtil.expand(envelope,
-                                       segmentSum / (double) segments);
-               } else {
-                       envelope = EnvelopeUtil.expand(envelope, 50);
-               }
-               return envelope;
-       }
+  }
- private Coordinate toCoordinate(String s) throws Exception {
-               if (s == null) {
-                       return null;
-               }
-               if (s.trim().length() == 0) {
-                       return null;
-               }
-               s = StringUtil.replaceAll(s, ",", " ");
-               StringTokenizer tokenizer = new StringTokenizer(s);
-               String x = tokenizer.nextToken();
-               if (!StringUtil.isNumber(x)) {
-                       throw new Exception("Not a number: " + x);
-               }
-               String y = tokenizer.nextToken();
-               if (!StringUtil.isNumber(y)) {
-                       throw new Exception("Not a number: " + y);
-               }
-               return new Coordinate(Double.parseDouble(x), 
Double.parseDouble(y));
-       }
+  private Envelope toEnvelope(Coordinate coordinate, LayerManager 
layerManager) {
+    int segments = 0;
+    int segmentSum = 0;
+    outer: for (Iterator i = layerManager.iterator(); i.hasNext();) {
+      Layer layer = (Layer) i.next();
+      for (Iterator j = layer.getFeatureCollectionWrapper().iterator(); j
+          .hasNext();) {
+        Feature feature = (Feature) j.next();
+        Collection coordinateArrays = CoordinateArrays.toCoordinateArrays(
+            feature.getGeometry(), false);
+        for (Iterator k = coordinateArrays.iterator(); k.hasNext();) {
+          Coordinate[] coordinates = (Coordinate[]) k.next();
+          for (int a = 1; a < coordinates.length; a++) {
+            segments++;
+            segmentSum += coordinates[a].distance(coordinates[a - 1]);
+            if (segments > 100) {
+              break outer;
+            }
+          }
+        }
+      }
+    }
+    Envelope envelope = new Envelope(coordinate);
+    // Choose a reasonable magnification [Jon Aquino 10/22/2003]
+    if (segmentSum > 0) {
+      envelope = EnvelopeUtil.expand(envelope, segmentSum / (double) segments);
+    } else {
+      envelope = EnvelopeUtil.expand(envelope, 50);
+    }
+    return envelope;
+  }
- public MultiEnableCheck createEnableCheck(
-                       final WorkbenchContext workbenchContext) {
-               EnableCheckFactory checkFactory = new EnableCheckFactory(
-                               workbenchContext);
+  private Coordinate toCoordinate(String s) throws Exception {
+    if (s == null) {
+      return null;
+    }
+    if (s.trim().length() == 0) {
+      return null;
+    }
+    s = StringUtil.replaceAll(s, ",", " ");
+    StringTokenizer tokenizer = new StringTokenizer(s);
+    String x = tokenizer.nextToken();
+    if (!StringUtil.isNumber(x)) {
+      throw new Exception("Not a number: " + x);
+    }
+    String y = tokenizer.nextToken();
+    if (!StringUtil.isNumber(y)) {
+      throw new Exception("Not a number: " + y);
+    }
+    return new Coordinate(Double.parseDouble(x), Double.parseDouble(y));
+  }
- return new MultiEnableCheck().add(checkFactory
-                               
.createWindowWithLayerViewPanelMustBeActiveCheck());
-       }
+  public MultiEnableCheck createEnableCheck(
+      final WorkbenchContext workbenchContext) {
+    EnableCheckFactory checkFactory = new EnableCheckFactory(workbenchContext);
+
+    return new MultiEnableCheck().add(checkFactory
+        .createWindowWithLayerViewPanelMustBeActiveCheck());
+  }
    }
\ No newline at end of file


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel




------------------------------

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot

------------------------------

_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel


End of Jump-pilot-devel Digest, Vol 126, Issue 38
*************************************************


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to