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.

Author: SwDevMan81, 2010-07-30

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);
 4
Author: SwDevMan81, 2011-08-09 15:59:41

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.

 2
Author: Reed Copsey, 2010-07-30 19:02:35
Encontrado no js, se for ajuda...

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

Uso -

var converter = new usngs.Converter();
alert(converter.LLtoMGRS(33.754032, -98.451233, 9));
 0
Author: Zvi Redler, 2017-02-14 20:24:27

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
 0
Author: Tronald, 2018-03-02 00:48:45