· 

Von WGS84 nach ETRS89/UTM mit Droidscript

Mein Ziel ist es, eine kleine Android APP zu schreiben. Nämlich zum GPS Tracking. Davon gibt's schon viele und auch sehr gute. Selbst nutze ich dafür z.B. LocusMap. Aber nur zum Spaß wollte ich das auch probieren.

DroidScript

Droidscript ist eine App, mit der man Android Programme entwickelt. Und zwar mittels Javascript und HTML. Für derzeit 3 € im Monat bekommt man sogar die Pro Version. Damit ist es unter anderem möglich, echte APK Files zu erstellen. Ich möchte hier nichts weiter darüber schreiben. Vielleicht ein anderes mal.

Quellcode

Hier nur ein ganz einfaches Besipiel:

app.LoadScript("proj4.js");
function OnStart()
{
    //Create a layout with objects vertically centered.
    lay = app.CreateLayout( "Linear", "VCenter,FillXY" )

    //Create a text label and add it to layout.
    txt = app.CreateText( "Hello" )
    txt.SetTextSize( 32 )
    lay.AddChild( txt )
    
    //Add layout to app.   
    app.AddLayout( lay )
       
    proj4.defs("EPSG:25833","+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
    var source = new proj4.Proj('EPSG:4326');
    var dest = new proj4.Proj('EPSG:25833');
    var p = new proj4.Point(12.2266,51.614095);
    proj4.transform(source, dest, p);
    txt.SetText("X : " +p.x + "  Y : " + p.y);
}

Hier nur einige wenige Bemerkungen:

Wichtig ist schon mal die erste Zeile. Mit app.LoadScript("proj4.js"); binde ich die Bibliothek ein, welche die eigentliche Arbeit erledigt. Die von mir verwendete uralte Version macht was sie soll. Diese JS Datei habe ich in einer separaten Datei gespeichert.

Auf OSGEO habe ich dann gefunden, wie man die eigentliche Transformation durchführt.

Von epsg.io habe ich die Definition proj4.defs("EPSG:25833","+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");

Übrigens gibt es eine nette Seite, auf der man auch erstmal JS üben kann.

Soviel für heute. Demnächst geht es weiter.

Kommentar schreiben

Kommentare: 0