Search code examples
c#wpfarcgisesriesri-maps

Esri maps coordinate convert


I'm trying to implement Esri maps into a WPF project and I can't get my head around the coordinates they use. The old system used lat/long so I need to get the same values from Esri.

When I get the MapPoint object for the current position of the map, its X value is 300464.16687909653 and its Y value is 524877.02696703083. I need to take these values and convert them to lat and lon, then convert them the other way whenever necessary. I'm struggling finding anything that can help with this conversion, I presumed there would be some easy C# conversion methods lying around but I can't seem to find them.

Can anyone help?

(Just to be clear, I'm using the .NET sdk)


Solution

  • With your last comment I got it and as @HimBromBeere mentioned - the coordinates are WGS84 (World Mercator) and WGS84 (GPS). It's EPSG:3395 and EPSG:4326.

    enter image description here

    You may try the Online coordinate converter by yourself.

    Next to the coordinate reference system (CRS) dropdown box you can click and display the CRS's Parameters:

    EPSG:3395

    PROJCS["WGS 84 / World Mercator",
        GEOGCS["WGS 84",
            DATUM["WGS_1984",
                SPHEROID["WGS 84",6378137,298.257223563,
                    AUTHORITY["EPSG","7030"]],
                AUTHORITY["EPSG","6326"]],
            PRIMEM["Greenwich",0,
                AUTHORITY["EPSG","8901"]],
            UNIT["degree",0.01745329251994328,
                AUTHORITY["EPSG","9122"]],
            AUTHORITY["EPSG","4326"]],
        UNIT["metre",1,
            AUTHORITY["EPSG","9001"]],
        PROJECTION["Mercator_1SP"],
        PARAMETER["central_meridian",0],
        PARAMETER["scale_factor",1],
        PARAMETER["false_easting",0],
        PARAMETER["false_northing",0],
        AUTHORITY["EPSG","3395"],
        AXIS["Easting",EAST],
        AXIS["Northing",NORTH]]
    

    EPSG:4326

    GEOGCS["WGS 84",
        DATUM["WGS_1984",
            SPHEROID["WGS 84",6378137,298.257223563,
                AUTHORITY["EPSG","7030"]],
            AUTHORITY["EPSG","6326"]],
        PRIMEM["Greenwich",0,
            AUTHORITY["EPSG","8901"]],
        UNIT["degree",0.01745329251994328,
            AUTHORITY["EPSG","9122"]],
        AUTHORITY["EPSG","4326"]]
    

    Going deeper into this you may have a look at the following links. DotSpatial is a geographic information system library written for .NET 4. It allows developers to incorporate spatial data, analysis and mapping functionality into their applications or to contribute GIS extensions to the community (see second link).

    1. How to perform transformations using ProjNet?

    2. How to transform Lambert coordinates in C#?