c# - 坐标时区

标签 c# .net timezone esri shapefile

<分区>

正如标题所暗示的,我需要根据一对坐标找到一个时区(或者可能只是 UTC 偏移量)。我一直在寻找不同的解决方案,那里有几个 Web 服务,但我需要能够离线访问应用程序。由于时区并不完全基于经度,因此看起来并不那么容易......

虽然我想查询一个包含世界上所有国家及其时区的 ESRI shapefile,但这似乎有点复杂。如果这应该是解决方案,您是否知道提供此功能的任何 .NET 库?

最佳答案

我已经通过客户端应用程序解决了这个问题。该技术是制作一个颜色编码的圆柱形世界地图,每个时区都有独特的颜色。经纬度转换为图片坐标,读取坐标的颜色,然后交叉引用该颜色的时区。

那个简短的解释并不完全是我所做的,但它传达了我的想法。我实际上填充了几本字典并从中进行了查找。第一个再现需要 2M 的资源文件来填充(在我处理我的 map 并将其转换为二进制数据之后)。理论上的最大误差(对于赤道附近的纬度)应该是 +/- 大约 15 英里。不幸的是,我的起始 map 的精度更像是 +/- 100 英里。

所以我正在重做这个项目。我已经研究了好几天了,现在正在创建一个更准确、分辨率更高的 map 来处理。再过几天,就应该完成了。资源文件将在 20M 左右,除非我选择只为“愚蠢的区域”提供资源,并通过数学计算可以直接计算的世界的 90%(世界上的大部分可以从经度数学推导)。不确定很多人会关心资源文件是 20M,但有些人可能会关心。无论如何,如果似乎有一些兴趣,我将尝试在此处发布运行它所需的代码和公共(public)代码站点之一的资源文件。如果似乎没有兴趣,我不会打扰。

重申一下,你的应用程序中需要的代码只有几行,但资源文件很大(不压缩,我的新资源文件有 22M)。它也很快(第一个版本运行 100M/秒)。它确实需要加载文件并且需要一点时间。 2M 版本没有明显的延迟,但 22M 可能(目前还没有)。

关于c# - 坐标时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1704350/

相关文章:

c# - 分组并在列表中计数

c# - 如何向文字对象添加方法和字段?

c# - 任务并行库 ArgumentException

mysql - 将 GMT 时间转换为 EST

java - 在java/android中获取错误的时区

c# - 是否可以在 tfs 2010 构建过程模板中复制文件?

c# - 有没有办法直接受益于 Roslyn C# 编译器的 AST?

c# - 如何确保 .Net 应用程序是正版的?

c# - 管理开发团队之间的错误

python - 将时区添加到 Pandas 数据框中的时间