From: <de...@us...> - 2013-08-27 22:16:16
|
Revision: 8470 http://sourceforge.net/p/fudaa/svn/8470 Author: deniger Date: 2013-08-27 22:16:09 +0000 (Tue, 27 Aug 2013) Log Message: ----------- CRUE-545 Modified Paths: -------------- trunk/framework/ctulu-common/src/main/resources/org/fudaa/ctulu/ctulu_en.fr_txt trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZModeleStatiqueImageRaster.java Added Paths: ----------- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GisJGWFileReader.java Modified: trunk/framework/ctulu-common/src/main/resources/org/fudaa/ctulu/ctulu_en.fr_txt =================================================================== --- trunk/framework/ctulu-common/src/main/resources/org/fudaa/ctulu/ctulu_en.fr_txt 2013-08-26 14:15:41 UTC (rev 8469) +++ trunk/framework/ctulu-common/src/main/resources/org/fudaa/ctulu/ctulu_en.fr_txt 2013-08-27 22:16:09 UTC (rev 8470) @@ -332,4 +332,6 @@ Erreur lors de la validation du fichier xml\: {0}=Error while validating the XML file\: {0} Indexation des points=Points indexation Restaurer la fen\xEAtre parente=Restore the parent window -Maximiser la fen\xEAtre parente=Maximize the parent window \ No newline at end of file +Maximiser la fen\xEAtre parente=Maximize the parent window +Le contenu du fichier de g\xE9or\xE9f\xE9rencement n'est pas valide ( il doit contenir 6 lignes)=The content of the georeferencing file is not valid ( must contain 6 lines) +La ligne {0} n'est pas valide et ne peut pas \xEAtre transform\xE9e en nombre=The line {0} is not valid and cannot be transformed to a number \ No newline at end of file Added: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GisJGWFileReader.java =================================================================== --- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GisJGWFileReader.java (rev 0) +++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GisJGWFileReader.java 2013-08-27 22:16:09 UTC (rev 8470) @@ -0,0 +1,100 @@ +/* + GPL 2 + */ +package org.fudaa.ctulu.gis; + +import java.awt.geom.Point2D; +import java.io.File; +import java.util.List; +import org.fudaa.ctulu.CtuluIOResult; +import org.fudaa.ctulu.CtuluImageContainer; +import org.fudaa.ctulu.CtuluLib; +import org.fudaa.ctulu.CtuluLibFile; +import org.fudaa.ctulu.CtuluLog; + +/** + * + * @author Frederic Deniger + */ +public class GisJGWFileReader { + + public static TransformResult getTransformPoints(ReadResult transform, final int imageWidth, final int imageHeight) { + if (transform == null) { + return null; + } + TransformResult res = new TransformResult(); + res.imagePts = new Point2D.Double[3]; + res.reelPts = new Point2D.Double[3]; + + //bas gauche + res.imagePts[0] = new Point2D.Double(0, imageHeight); + res.reelPts[0] = new Point2D.Double(transform.tx, transform.ty); + + //haut gauche + res.imagePts[1] = new Point2D.Double(0, 0); + res.reelPts[1] = new Point2D.Double(transform.tx, transform.ty - imageHeight * transform.scaleY); + + //bas droite + res.imagePts[2] = new Point2D.Double(imageWidth, imageHeight); + res.reelPts[2] = new Point2D.Double(transform.tx + imageWidth * transform.scaleX, transform.ty); + + + return res; + } + + public static class ReadResult { + + public double tx; + public double ty; + public double scaleX; + public double scaleY; + } + + public static class TransformResult { + + public Point2D.Double[] imagePts; + public Point2D.Double[] reelPts; + } + + public static TransformResult getTransformPoints(ReadResult transform, CtuluImageContainer image) { + + final int imageHeight = image.getImageHeight(); + final int imageWidth = image.getImageWidth(); + + + return getTransformPoints(transform, imageWidth, imageHeight); + } + + public CtuluIOResult<ReadResult> read(File in) { + CtuluLog log = new CtuluLog(); + CtuluIOResult<ReadResult> res = new CtuluIOResult<GisJGWFileReader.ReadResult>(log); + List<String> litFichierLineByLine = CtuluLibFile.litFichierLineByLine(in); + if (litFichierLineByLine.size() != 6) { + log.addError(CtuluLib.getS("Le contenu du fichier de g\xE9or\xE9f\xE9rencement n'est pas valide ( il doit contenir 6 lignes)")); + return res; + } + ReadResult result = new ReadResult(); + try { + result.scaleX = Double.parseDouble(litFichierLineByLine.get(0)); + } catch (NumberFormatException numberFormatException) { + log.addError(CtuluLib.getS("La ligne {0} n'est pas valide et ne peut pas \xEAtre transform\xE9e en nombre", "1")); + } + try { + result.scaleY = Double.parseDouble(litFichierLineByLine.get(3)); + } catch (NumberFormatException numberFormatException) { + log.addError(CtuluLib.getS("La ligne {0} n'est pas valide et ne peut pas \xEAtre transform\xE9e en nombre", "3")); + } + try { + result.tx = Double.parseDouble(litFichierLineByLine.get(4)); + } catch (NumberFormatException numberFormatException) { + log.addError(CtuluLib.getS("La ligne {0} n'est pas valide et ne peut pas \xEAtre transform\xE9e en nombre", "5")); + } + try { + result.ty = Double.parseDouble(litFichierLineByLine.get(5)); + } catch (NumberFormatException numberFormatException) { + log.addError(CtuluLib.getS("La ligne {0} n'est pas valide et ne peut pas \xEAtre transform\xE9e en nombre", "6")); + } + res.setSource(result); + return res; + } +} Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZModeleStatiqueImageRaster.java =================================================================== --- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZModeleStatiqueImageRaster.java 2013-08-26 14:15:41 UTC (rev 8469) +++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZModeleStatiqueImageRaster.java 2013-08-27 22:16:09 UTC (rev 8470) @@ -10,6 +10,7 @@ import com.memoire.bu.BuLabel; import com.memoire.bu.BuTable; import com.memoire.fu.Fu; +import com.memoire.fu.FuEmptyArrays; import com.memoire.fu.FuLog; import com.vividsolutions.jts.geom.Envelope; import java.awt.Rectangle; @@ -586,6 +587,7 @@ */ @Override public void setProj(final Point2D.Double[] _img, final Point2D.Double[] _reel) { + onlyWithTransform = false; if (CtuluLibArray.isEmpty(_img) || CtuluLibArray.isEmpty(_reel)) { clear(); return; @@ -613,11 +615,20 @@ clear(); return; } + onlyWithTransform = false; erreurs_ = CtuluLibArray.copy(_err); raster_ = new AffineTransform(_trans); setValues(_img, _reel); } + boolean onlyWithTransform; + public void setTransform(final AffineTransform _trans) { + onlyWithTransform = true; + clear(); + erreurs_ = FuEmptyArrays.DOUBLE0; + raster_ = new AffineTransform(_trans); + } + public void setProjeMaxTaille(final int _maxSizePixel) { clear(); final double maxSize = Math.max(getWImg(), getHImg()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |