Exemple #1
0
        //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);
        }
Exemple #2
0
        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);
        }