2010-07-30 19 views

risposta

4

Abbiamo finito per utilizzare GeoTrans e creare una DLL dal codice e utilizzando PInvoke per chiamare le funzioni. Abbiamo tirato il seguente dalla sorgente in caso qualcuno voleva sapere (soluzione minima):

  • polarst
  • tranmerc
  • up
  • UTM
  • MGRS

The Signature PInvoke abbiamo usato:

[DllImport("mgrs.dll")] 
public static extern int Convert_Geodetic_To_MGRS(
    double Latitude, 
    double Longitude, 
    int Precision, // 1 to 5, we used 4 (10 square meters) 
    StringBuilder MGRS); 

che corrisponde a questa funzione in mgrs.h:

MGRSDLL_API long __stdcall Convert_Geodetic_To_MGRS(
    double Latitude, 
    double Longitude, 
    long Precision, 
    char* MGRS); 
+0

Hi potrebbe condividere la dll PInvoke si è creato? – Jason

+0

@Jason - Sì, aggiornerò la mia risposta con esso – SwDevMan81

+0

@ SwDevMan81 puoi condividere la DLL? E il modo in cui posso aggiungerlo al mio progetto Windows Phone –

2

È possibile utilizzare i wrapper C# GDAL per convertire da lat/lon a UTM. È quindi necessario formattare i valori in modo appropriato per MGRS, poiché è solo UTM con un diverso formato numerico.

0

Trovato su js se si tratta di aiuto ...

https://github.com/codice/usng.js

usage-

var converter = new usngs.Converter(); 
alert(converter.LLtoMGRS(33.754032, -98.451233, 9)); 
0

CoordinateSharp è disponibile come pacchetto Nuget e può fare proprio questo.

Coordinate c = new Coordinate(40.57682, -70.75678); 
c.MGRS.ToString(); // Outputs 19T CE 51307 93264