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)
