Конвертировать Lat / Lon в MGRS - PullRequest
10 голосов
/ 30 июля 2010

Кто-нибудь знает, где я могу найти библиотеку кода для преобразования положения широты / долготы в Система координат военной сетки (MGRS) ?Я ищу реализацию C #, если это возможно.

Ответы [ 4 ]

4 голосов
/ 31 марта 2011

В итоге мы использовали GeoTrans и создали DLL из кода и использовали PInvoke для вызова функций.Мы извлекли из источника следующее, если кто-то хочет знать (минимальное решение):

  • polarst
  • tranmerc
  • ups
  • utm
  • mgrs

Используемая нами подпись PInvoke:

[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);

, которая соответствует этой функции в mgrs.h:

MGRSDLL_API long __stdcall Convert_Geodetic_To_MGRS(
   double Latitude,
   double Longitude,
   long Precision,
   char* MGRS);
2 голосов
/ 30 июля 2010

Вы можете использовать обертки C # GDAL для преобразования из лат / долг в UTM.Затем вам просто нужно отформатировать значения соответствующим образом для MGRS, поскольку это просто UTM с другим числовым форматом.

1 голос
/ 02 марта 2018

CoordinateSharp доступен в виде пакета Nuget и может сделать это.

Coordinate c = new Coordinate(40.57682, -70.75678);
c.MGRS.ToString(); // Outputs 19T CE 51307 93264
0 голосов
/ 14 февраля 2017

Нашел на js, если это поможет ...

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

использование-

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