Problemi durante la conversione di NAD83 UTM in lat e long
-
29-10-2019 - |
Domanda
Modifica Quindi la soluzione che ho pubblicato da Jenner su VBforums era, ovviamente, in VB, e ho utilizzato un convertitore online per portarla in C #. Qualcosa è andato perso nelle traduzioni ed è per questo che si trovava a 10 miglia di distanza.
Immagino di non aver capito a cosa servano gli algoritmi nei forum di discussione di Proj.Net ed è per questo che non stavano facendo quello che volevo.
Chiuderò questa domanda tra due giorni quando potrò contrassegnare la mia risposta a meno che qualcuno non fornisca qualcosa di fantastico.
Ho problemi con la conversione di UTM in lat e long. Ad esempio, ho la seguente coordinata UTM NAD83:
Easting: 686029.702258
Northing: 3581213.621173
zona: 15
Una soluzione che ho trovato su vbforums mi offre un punto a circa 10 miglia a sud di dove me lo sarei aspettato. Una semplice soluzione matematica che ho trovato qui , mi sta dando risultati inaspettati.
double[] inverseMercator (double x, double y) {
double lon = (x / 20037508.34) * 180;
double lat = (y / 20037508.34) * 180;
lat = 180/Math.PI * (2 * Math.Atan(Math.Exp(lat * Math.PI / 180)) - Math.PI / 2);
return new double[] {lon, lat};
}
double[] toPoint = inverseMercator (686029.702258, 3581213.621173);
Ottengo il seguente risultato:
lat: 30.602349476368449
lungo: 6.1627096689832594
Ottengo risultati simili utilizzando la soluzione Proj.Net fornita da D_Guidi nello stesso thread.
Utilizzando un convertitore online, sono riuscito a ottenere qualcosa di più vicino a ciò che mi aspettavo:
lat: 32.35238307052292
lungo: -91,0230710652583
Qualcuno può far luce su ciò che sto facendo di sbagliato?
Modifica: preferirei soluzioni .NET o qualcosa che sarebbe facilmente convertibile
Soluzione 2
Quindi la soluzione che ho pubblicato da Jenner su VBforums era, ovviamente, in VB, e ho usato un convertitore online per portarla in C #.Qualcosa è andato perso nelle traduzioni, ed è per questo che si trovava a 10 miglia di distanza.
Immagino di non aver capito a cosa servano gli algoritmi nei forum di discussione di Proj.Net ed è per questo che non stavano facendo quello che volevo.
Altri suggerimenti
Hai provato il binario cs2cs contenuto in "proj" (proiezione, http://trac.osgeo.org/ proj / )?Credo che farà un lavoro accurato convertendo UTM in est / nord e lat / lon.Il problema è che le semplici formule matematiche non tengono sufficientemente conto della forma della terra.