c# - 是否有返回 TimeZone 或基于坐标的偏移量的函数?

标签 c# timezone coordinates latitude-longitude gmt

是否有一个函数可以在给定坐标的情况下返回时区(或与某些“支点”(例如 GMT 或 UTC)的偏移量)?

IOW,我想(假设“TimeZoneType”是一个类或枚举):

TimeZoneType timeZone = getTimeZoneForCoordinates(<latitude>, <longitude>);

-或者:

int timeZoneDifferential = getTimeZoneOffsetFromUTCForCoordinates(<latitude>, <longitude>);

我在此处和 gis.stackexchange 上发布这个问题之间犹豫不决。如果有建议,我会删除这个问题并将其发布在那里...

最佳答案

一个简单的问题,一个大的答案:

很少有公司能够做到这一点。 iphone 是我所知道的第一个可以根据地理位置确定时区的设备。即使是我的 TomTom Navi 也无法做到这一点,我必须手动输入时区偏移量。

在这里你会怎么做。

  1. 购买一些 xxx 欧元导航“WorldMaps”,或使用 OpenStreetMap 以更便宜的价格购买。 稍后进行一些转换,您将拥有世界上每个国家/地区的多边形。 此类国家通常有 50.000 点或更多代表国家边界。

  2. 一旦你有了这些多边形,你必须编写一个函数,为给定的(纬度/经度)提供 countryPolygonId(或 countryID)。
    (countryId = findCountry(lat, lon);//在多边形方法中使用一个点

  3. 一旦有了国家,就必须找到下一个大城市: 你需要有一个你系统的 TimeZone 模块支持的城市列表(我认为这是一个规范,但我不确定。)

然后您必须将 countryId、cityId 转换为字符串,例如“Austria/Vienna”。 这是您的时区,您可以使用 TimeZone zt = new TimeZone("Austria/Vienna"); 初始化;

我希望这很有趣,但这对实现和获取该任务所需的数据要求很高。
我已经针对不同的用例完成了步骤 1 和 2。

关于c# - 是否有返回 TimeZone 或基于坐标的偏移量的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13140364/

相关文章:

c# - Azure 函数中的 EventGridTrigger - 日志依赖项注入(inject)不起作用

c# - 最佳实践 : How to get several dependency repositories into a ActionController?

javascript - 如何将 HTTP 日期转换为以毫秒为单位的延迟

python - Django 时区设置的正确方法是什么

python - 使用来自 (x,y,value) 三元组的数据创建 Numpy 二维数组

c# - PDF -Adobe 数字版

c# - 在设计 View 中使用 DLL 引用加载 UserControl 时出现问题

python - 在 django 中获取没有时区的 Postgres 日期时间字段

Android(x,y)连续触摸(拖动)坐标

python - 坐标的 Numpy 矩阵