//private static bool temp = true; /// <summary> /// This function transforms geographic lat/longs to projected hauß krüger coordinates /// using the GDAL library (which uses Proj4) /// </summary> /// <param name="x">Geographic Latitude</param> /// <param name="y">Geographic Longtitude</param> /// <param name="stripe"></param> /// <returns></returns> public static GKCoord GeoGkGDAL(double x, double y, int stripe) { GKCoord gkCoord; lock (mapPanelLock) { if (GDALCoordTransformer == IntPtr.Zero) { GDALCoordTransformer = GetNewCoordTransformer(); } gkCoord = new GKCoord(); if (GDALCoordTransformer == IntPtr.Zero) { MessageBox.Show("Fehler 0x1283: Fehler bei Koordinatenumrechnung."); } else { IntPtr coordPtr = Transform(GDALCoordTransformer, x, y); Coord coord = new Coord(); Marshal.PtrToStructure(coordPtr, coord); deleteGKCoordPointer(GDALCoordTransformer, coordPtr); gkCoord.r_value = coord.x; gkCoord.h_value = coord.y; gkCoord.stripe = stripe; } } return(gkCoord); }
public static PointD calculateDisplayCoords(GKCoord gk, double dX, double dY, double scale) { PointD p; p.x = gk.r_value * scale - dX; p.y = -(gk.h_value * scale - dY); return(p); }