将纬度/经度转换为 MGRS

发布于 2024-09-12 04:47:45 字数 161 浏览 4 评论 0原文

有谁知道我在哪里可以找到用于将纬度/经度位置转换为军事网格参考系统(MGRS)的代码库?如果可能的话,我正在寻找 C# 实现。

Does anyone know where I could find a library of code for converting Lat/Lon position to Military Grid Reference System (MGRS)? I'm looking for a C# implementation if possible.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

听,心雨的声音 2024-09-19 04:47:45

我们最终使用 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);

We ended up using GeoTrans and create a DLL from the code and using PInvoke to call the functions.
We pulled the following from the source incase anyone wanted to know (minimal solution):

  • polarst
  • tranmerc
  • ups
  • utm
  • mgrs

The PInvoke Signature we used:

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

which corresponds to this function in mgrs.h:

MGRSDLL_API long __stdcall Convert_Geodetic_To_MGRS(
   double Latitude,
   double Longitude,
   long Precision,
   char* MGRS);
痴情换悲伤 2024-09-19 04:47:45

CooperativeSharp 作为 Nuget 包提供,并且可以做到这一点。

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

CoordinateSharp is available as a Nuget package and can do just that.

Coordinate c = new Coordinate(40.57682, -70.75678);
c.MGRS.ToString(); // Outputs 19T CE 51307 93264
奢欲 2024-09-19 04:47:45

您可以使用 GDAL 的 C# 包装器将 lat/lon 转换为 UTM。然后,您只需为 MGRS 适当地设置值的格式,因为它只是具有不同数字格式的 UTM。

You can use GDAL's C# wrappers to convert from lat/lon to UTM. You then just need to format the values appropriately for MGRS, since it's just UTM with a different numerical format.

我恋#小黄人 2024-09-19 04:47:45

在js上找到,如果有帮助的话...

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

用法-

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

Found on js if it's help...

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

usage-

var converter = new usngs.Converter();
alert(converter.LLtoMGRS(33.754032, -98.451233, 9));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文