正如标题所暗示的,我需要根据一对坐标找到一个时区(或者可能只是 UTC 偏移量)。我一直在寻找不同的解决方案,并且有一些网络服务,但我需要能够离线访问应用程序。由于时区并不完全基于经度,这似乎并不那么容易......
我想查询包含世界上所有国家及其时区的 ESRI shapefile,但它似乎有点复杂。如果这应该是解决方案,您知道有任何 .NET 库提供此功能吗?
我已经通过客户端应用程序解决了这个问题。该技术是制作一个颜色编码的圆柱形世界地图,每个时区都有独特的颜色。经纬度转换为图片坐标,读取坐标的颜色,然后交叉引用该颜色的时区。
这个简短的解释并不完全是我所做的,但它传达了这个想法。我实际上填充了几个字典并从中进行了查找。第一次呈现需要 2M 的资源文件来填充(在我处理地图并将其转换为二进制数据之后)。理论上的最大误差(对于赤道附近的纬度)应该是 +/- 大约 15 英里。不幸的是,我的起始地图的精度更像是+/- 100 英里。
所以我正在重做这个项目。我已经花了几天时间来创建一个更准确、分辨率更高的地图来处理。再过几天,应该就可以完成了。资源文件将在 20M 左右,除非我选择只为“愚蠢的区域”提供资源,并通过数学计算可以直接计算的世界 90%(世界上的大部分可以从经度通过数学推导)。不确定很多人会关心资源文件有 20M,但有些人可能会关心。无论如何,如果似乎有一些兴趣,我将尝试在此处发布运行它所需的代码以及公共代码站点之一的资源文件。如果看起来没有兴趣,我就不会打扰。
重申一下,您的应用程序中所需的代码只有几行,但资源文件很大(不缩小它,我的新文件正在运行 22M)。它也很快(第一次再现运行了 100M/秒)。它确实需要文件加载,并且需要一些时间。 2M 版本没有明显的延迟,但 22M 版本可能有(还没有)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)