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

Thread correlato

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top