Converter Lat / Lon em MGRS
Alguém sabe onde posso encontrar uma biblioteca de código para converter a posição Lat / Lon para Sistema de referência da grelha Militar (MGRS)? Estou à procura de uma implementação C#, se possível.
4 answers
Acabamos usando GeoTrans e criar um DLL do código e usando PInvoke para chamar as funções. Tirámos o seguinte da fonte, caso alguém quisesse saber (solução mínima):
- polarst
- tranmerc
- ups
- utm
- mgrs
A assinatura de PInvoke que usámos:
[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);
Que corresponde a esta função em mgrs.h:
MGRSDLL_API long __stdcall Convert_Geodetic_To_MGRS(
double Latitude,
double Longitude,
long Precision,
char* MGRS);
Pode utilizar embalagens C# do GDAL para converter de lat/lon para UTM. Você então só precisa formatar os valores apropriadamente para MGRS, uma vez que é apenas UTM com um formato numérico diferente.
Https://github.com/codice/usng.js
Uso -
var converter = new usngs.Converter();
alert(converter.LLtoMGRS(33.754032, -98.451233, 9));
CoordinateSharp está disponível como um pacote Nuget e pode fazer exatamente isso.
Coordinate c = new Coordinate(40.57682, -70.75678);
c.MGRS.ToString(); // Outputs 19T CE 51307 93264