2016-09-07 2 views
-1

Ich versuche Esri maps in ein WPF-Projekt zu implementieren, und ich kann meinen Kopf nicht um die Koordinaten erhalten, die sie verwenden. Das alte System lat/long verwendet, also muss ich die gleichen Werte von Esri bekommen. Wenn ich das MapPoint-Objekt für die aktuelle Position der Karte abrufe, ist sein X-Wert 300464.16687909653 und sein Y-Wert ist 524877.02696703083. Ich muss diese Werte nehmen und sie in lat und lon umwandeln und sie dann bei Bedarf in die andere Richtung konvertieren. Ich habe Schwierigkeiten, etwas zu finden, das mir bei dieser Konvertierung helfen kann. Ich vermutete, dass es einige einfache C# -Konvertierungsmethoden geben würde, aber ich kann sie nicht finden.Esri Karten koordinieren konvertieren

Kann jemand helfen?

(Just klar zu sein, ich bin mit dem .NET-sdk)

+0

Zuerst sollten Sie wissen, in welchem ​​Koordinaten-Referenz-System diese Koordinaten sind. Vielleicht Web-Mercator, zum Beispiel ... – HimBromBeere

+0

Do you haben Sie noch mehr "echte" Koordinaten? Darf der Punkt um vier Zeichen nach links verschoben werden? Wenn das so ist https://www.google.de/maps/@52.4877027,30.0464167,5z ist irgendwo in Weißrussland und X/Y geändert es ist Iran. –

+0

Was ist der Ursprung der Esri Maps? –

Antwort

1

Mit Ihrem letzten Kommentar habe ich es und wie @HimBromBeere erwähnt - die Koordinaten WGS84 (World Mercator) und WGS84 (GPS). Es ist EPSG: 3395 und EPSG: 4326.

enter image description here

Sie können die Online coordinate converter selbst versuchen.

Neben dem Referenzkoordinatensystem (CRS) Dropdown-Box Sie klicken können, und die Parameter der CRS-Anzeige:

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"]] 

tiefer in diese gehen Sie unter den folgenden Links einen Blick haben. DotSpatial ist eine Geo-Informationssystem-Bibliothek, die für .NET 4 geschrieben wurde. Sie ermöglicht es Entwicklern, räumliche Daten, Analyse- und Mapping-Funktionen in ihre Anwendungen zu integrieren oder GIS-Erweiterungen in die Community einzubringen (siehe zweiter Link).

  1. How to perform transformations using ProjNet?

  2. How to transform Lambert coordinates in C#?

0

Ich glaube, Sie müssen von Entfernungen Koordinaten konvertieren. Sie benötigen eine Referenzkoordinate, um die Konvertierung durchzuführen.

Die X- und Y sollte in Metern Ihre bereitgestellt Abstand Länge und Breite.

Hier sind die Formeln, die Sie benötigen könnten. https://math.stackexchange.com/questions/29157/how-do-i-convert-the-distance-between-two-lat-long-points-into-feet-meters

Sie müssen also herausfinden, was das X und Y sind. Ich vermute, sie sind in WGS84 Antarktis Polar Stereographisch (EPSG: 3031), die ein System auf -90 ° mit Bezug ist, 0 °.

Update: Laut den Kommentaren, bitte, sagt es klar, es ist Mercator-Projektion, und es gibt sogar einen Link auf der Seite mit dem Google-Ergebnis.

hier ist eine C# Lösung: http://wiki.openstreetmap.org/wiki/Mercator#C.23

+0

"Länge Entfernung in Metern" Was? Das macht keinen Sinn für mich. In Abhängigkeit von dem tatsächlichen Bezugssystem sind die Winkel entweder Winkel, wie sie auf einem Ellipsoid (z.B. WGS84) definiert sind, oder rechtwinklige Einheiten (z.B. Meter, wie sie auf einer ebenen Karte definiert sind). Außerdem entspricht nur x dem Längengrad, y dem Breitengrad. – HimBromBeere

+0

danke, das ist ein Tippfehler, sollte "Longi und Lati" sein. –

0

Wenn Sie direkt ein X bekommen, Y von ESRI Map dann würde ich nehme an, Sie haben noch keine Reprojektion tun. Damit sollten die Koordinaten noch in EPSG: 102100 der ESRI Web Mercator.

Da Ihre Anforderung ist, projizieren Sie den Punkt auf WGS84 (EPSG: 4326), um Längen- und Breitengrad zu erhalten, gibt es eine Menge von .Net-Bibliotheken, die Sie für diese Aufgabe wie Proj4Net verwenden können. Es gibt auch mehrere Web-APIs, die das auch tun können wie ESRI JavaScript API: https://developers.arcgis.com/javascript/3/jssamples/util_project.html

Verwandte Themen