lib:javadoc:javadoc
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
lib:javadoc:javadoc [2021/11/25 11:27] – angelegt admin | lib:javadoc:javadoc [2023/07/03 18:26] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== JavaDoc ===== | + | ===== JavaDoc |
Javadoc ist ein Software-Dokumentationswerkzeug, | Javadoc ist ein Software-Dokumentationswerkzeug, | ||
Line 9: | Line 9: | ||
anzeigen lassen. Die hat kein Zertifikat und daher wird die Meldung " | anzeigen lassen. Die hat kein Zertifikat und daher wird die Meldung " | ||
- | Nachfolgend einige Code-Beispiele. | + | Nachfolgend einige Code-Beispiele, aus der Sie die Funktionsweise der crsTools-Bibliothek ersehen können. |
+ | \\ | ||
==== Beispiel: Projektions-Umformung ==== | ==== Beispiel: Projektions-Umformung ==== | ||
Line 144: | Line 145: | ||
</ | </ | ||
+ | \\ | ||
+ | ==== Beispiel: LCRS Local.CRS (LDP) ==== | ||
+ | <code java> | ||
+ | |||
+ | public static void main(String[] args) throws CrsException { | ||
+ | |||
+ | double wcArr[][] = { | ||
+ | { 500021.305, 5949989.272 }, | ||
+ | { 480000.0, 5949989.272 }, | ||
+ | { 500021.305, 5970000.0 }, | ||
+ | { 520000.0, 5949989.272 }, | ||
+ | { 500021.305, 5930000.0 }, | ||
+ | |||
+ | }; // upper-right | ||
+ | |||
+ | int crsEpsgId = 25832; // Z32: 6-digit | ||
+ | |||
+ | CrsLdp crsLdp = new CrsLdp(); | ||
+ | |||
+ | double eMin = 1e99; | ||
+ | double eMax = 1e-99; | ||
+ | double nMin = 1e99; | ||
+ | double nMax = 1e-99; | ||
+ | |||
+ | for (double c[] : wcArr) { | ||
+ | eMin = eMin < c[0] ? eMin : c[0]; | ||
+ | eMax = eMax > c[0] ? eMax : c[0]; | ||
+ | nMin = nMin < c[1] ? nMin : c[1]; | ||
+ | nMax = nMax > c[1] ? nMax : c[1]; | ||
+ | } | ||
+ | |||
+ | System.out.println(String.format(" | ||
+ | eMin, eMax, nMin, nMax)); | ||
+ | double eDelta = eMax - eMin; | ||
+ | double nDelta = nMax - nMin; | ||
+ | System.out.println(String.format(" | ||
+ | |||
+ | CrsDefs crsDefs = crsLdp.getCrsDefs(); | ||
+ | CrsDef crsDef = crsDefs.get(crsEpsgId); | ||
+ | Ellipsoid el = crsDefs.getEllipsoids().get(crsDef.ellipsoidID); | ||
+ | MapProjection mp = crsDefs.getMapProjections().get(crsDef.mapProjID); | ||
+ | PrimeMeridian pm = crsDefs.getPrimeMeridians().get(crsDef.primeMeridianID); | ||
+ | ProjConv pc = crsDefs.getProjConvFactory().create(crsDef.projConvID); | ||
+ | pc.initParam(el, | ||
+ | double ll_min_rad[] = pc.inverseTransformRadians(eMin, | ||
+ | double ll_max_rad[] = pc.inverseTransformRadians(eMax, | ||
+ | |||
+ | String latMinDeg = CrsMath.conv_LatRad_To_DmshStr(ll_min_rad[0], | ||
+ | String latMaxDeg = CrsMath.conv_LatRad_To_DmshStr(ll_max_rad[0], | ||
+ | String lonMinDeg = CrsMath.conv_LatRad_To_DmshStr(ll_min_rad[1], | ||
+ | String lonMaxDeg = CrsMath.conv_LatRad_To_DmshStr(ll_max_rad[1], | ||
+ | |||
+ | System.out.println(String.format(" | ||
+ | latMinDeg, latMaxDeg, lonMinDeg, lonMaxDeg)); | ||
+ | |||
+ | double latCenterRad = (ll_min_rad[0] + ll_max_rad[0]) / 2.0; | ||
+ | double lonCenterRad = (ll_min_rad[1] + ll_max_rad[1]) / 2.0; | ||
+ | |||
+ | String latCenterDeg = CrsMath.conv_LatRad_To_DmshStr(latCenterRad, | ||
+ | String lonCenterDeg = CrsMath.conv_LonRad_To_DmshStr(lonCenterRad, | ||
+ | |||
+ | System.out.println(String.format(" | ||
+ | lonCenterDeg)); | ||
+ | |||
+ | // manuell setzen | ||
+ | latCenterDeg = " | ||
+ | lonCenterDeg = " | ||
+ | |||
+ | System.out | ||
+ | .println(String.format(" | ||
+ | latCenterDeg, | ||
+ | |||
+ | // ... oder autmatisch runden | ||
+ | int latDeg = CrsMath.conv_Rad_To_LatDegInt(latCenterRad); | ||
+ | int latMin = CrsMath.conv_Rad_To_LatMinInt(latCenterRad); | ||
+ | int latSec = CrsMath.conv_Rad_To_LatSecInt(latCenterRad); | ||
+ | String latHem = CrsMath.conv_Rad_To_LatHem(latCenterRad); | ||
+ | latMin += latSec >= 30 ? 1 : 0; | ||
+ | latCenterDeg = CrsMath.conv_DMSH_To_DmshStr(latDeg, | ||
+ | |||
+ | int lonDeg = CrsMath.conv_Rad_To_LonDegInt(lonCenterRad); | ||
+ | int lonMin = CrsMath.conv_Rad_To_LonMinInt(lonCenterRad); | ||
+ | int lonSec = CrsMath.conv_Rad_To_LonSecInt(lonCenterRad); | ||
+ | String lonHem = CrsMath.conv_Rad_To_LonHem(latCenterRad); | ||
+ | lonMin += lonSec >= 30 ? 1 : 0; | ||
+ | lonCenterDeg = CrsMath.conv_DMSH_To_DmshStr(lonDeg, | ||
+ | |||
+ | System.out | ||
+ | .println(String.format(" | ||
+ | latCenterDeg, | ||
+ | |||
+ | latCenterRad = CrsMath.conv_LatDMSH_To_Rad(latCenterDeg); | ||
+ | lonCenterRad = CrsMath.conv_LonDMSH_To_Rad(lonCenterDeg); | ||
+ | |||
+ | double scale = crsLdp.calc_Scale(7019, | ||
+ | double scaleRnd = CrsMath.round(scale, | ||
+ | System.out | ||
+ | .println(String.format(" | ||
+ | |||
+ | double falseEasting = CrsMath.calcFalseEN(eDelta); | ||
+ | double falseNorthing = CrsMath.calcFalseEN(nDelta); | ||
+ | System.out.println(String.format(" | ||
+ | |||
+ | CrsLdpDef ldpDef = new CrsLdpDef(); | ||
+ | ldpDef.setId(100); | ||
+ | ldpDef.setAbbrev(" | ||
+ | // ldpDef.setAzimuth(...); | ||
+ | ldpDef.setDesc(" | ||
+ | ldpDef.setElliEpsgId(crsDef.ellipsoidID); | ||
+ | ldpDef.setFalseEasting(falseEasting); | ||
+ | ldpDef.setFalseNorthing(falseNorthing); | ||
+ | ldpDef.setLat(latCenterDeg); | ||
+ | ldpDef.setLon(lonCenterDeg); | ||
+ | // ldpDef.setParNorth(...); | ||
+ | // ldpDef.setParSouth(...); | ||
+ | ldpDef.setProjConvEpsgId(crsDef.projConvID); | ||
+ | ldpDef.setScale(scaleRnd); | ||
+ | // ldpDef.setSkew(...); | ||
+ | crsLdp.ldpDefAdd(ldpDef); | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | ==== Beispiel: NTv2 (Schweiz: LV03 > LV95(LV03+)) ==== | ||
+ | |||
+ | <code java> | ||
+ | | ||
+ | |||
+ | CrsNTv2R crsNtv2 = new CrsNTv2R(); | ||
+ | |||
+ | // String fileName = " | ||
+ | String fileName = " | ||
+ | String pathFileName = " | ||
+ | |||
+ | boolean ok = crsNtv2.init(pathFileName); | ||
+ | |||
+ | if (ok) { | ||
+ | |||
+ | // NTv2-FROM (nicht User-Sichtweise! NTv2-Sichtweise!) | ||
+ | crsNtv2.addCrsF(21781); | ||
+ | |||
+ | // NTv2-TO (nicht User-Sichtweise! NTv2-Sichtweise!) | ||
+ | crsNtv2.addCrsT(2056); | ||
+ | |||
+ | // LV03 <-> LV95 | ||
+ | double cArr[][] = | ||
+ | { | ||
+ | |||
+ | { 512685.917, 153251.375, 2512685.437, | ||
+ | { 588440.201, 94368.962, 2588439.429, | ||
+ | { 624028.403, 239015.162, 2624028.909, | ||
+ | { 714755.683, 99258.947, 2714755.924, | ||
+ | { 751330.747, 249590.652, 2751331.317, | ||
+ | { 803028.014, 131610.093, 2803029.585, | ||
+ | { 826151.467, 192081.414, 2826152.548, | ||
+ | |||
+ | }; | ||
+ | |||
+ | for (double[] c : cArr) { | ||
+ | |||
+ | double wc0[] = crsNtv2.doTrans(c[0], | ||
+ | |||
+ | System.out.println("" | ||
+ | |||
+ | if (wc0 != null) { | ||
+ | System.out.println(String.format(" | ||
+ | c[0], c[1], wc0[0], wc0[1], c[2] - wc0[0], c[3] - wc0[1])); // IST: | ||
+ | } else { | ||
+ | System.out.println(String.format(" | ||
+ | } | ||
+ | |||
+ | double wc1[] = crsNtv2.doTransInv(c[2], | ||
+ | if (wc1 != null) { | ||
+ | System.out.println(String.format(" | ||
+ | c[2], c[3], wc1[0], wc1[1], c[0] - wc1[0], c[1] - wc1[1])); // IST: | ||
+ | } else { | ||
+ | System.out.println(String.format(" | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } else { | ||
+ | System.out.println(" | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
lib/javadoc/javadoc.1637839669.txt.gz · Last modified: 2023/07/03 18:26 (external edit)