首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用纬度和经度坐标从某个位置获取时区?

如何使用纬度和经度坐标从某个位置获取时区?
EN

Stack Overflow用户
提问于 2013-04-18 23:24:10
回答 17查看 296.6K关注 0票数 381

给定一个位置的纬度和经度,如何知道该位置的有效时区?

在大多数情况下,我们寻找的是IANA/Olson时区id,尽管有些服务可能只返回UTC偏移量或其他时区标识符。有关详细信息,请阅读timezone tag info

EN

回答 17

Stack Overflow用户

回答已采纳

发布于 2013-04-18 23:24:10

时区位置网络服务

原始时区边界数据

以下项目以前是时区边界数据的来源,但不再进行主动维护。

  • tz_world -来自Eric Muller
  • whereonearth-timezone - GeoJSON版本的原始shapefile数据,其中WOEDB数据合并到

时区地理位置离线实施

使用时区边界构建器数据的实现

Java和Android库(

使用较旧tz_world数据的实现

调用某个web服务的

  • timezone - Ruby gem调用GeoNames
  • AskGeo有自己的库,用于从Java或.Net
  • GeoNames调用,而客户端库仅适用于everything

自托管web服务

获得

Other Ideas

最近的城市查找最近的城市with MySQL with an R-Tree

  • Find

如果您知道其他列表,请更新此列表

此外,请注意,最近城市方法可能不会产生“正确”的结果,而只是一个近似值。

到Windows Zones转换

列出的大多数方法都将返回IANA时区id。如果需要转换为Windows时区以便与.NET中的TimeZoneInfo类一起使用,请使用TimeZoneConverter库。

不使用zone.tab

tz database包含一个名为zone.tab的文件。此文件主要用于显示可供用户选择的时区列表。它包括每个时区的参考点的纬度和经度坐标。这允许创建突出显示这些点的地图。例如,请参阅the moment-timezone home page上显示的交互式地图。

虽然使用此数据从纬度和经度坐标解析时区可能很诱人,但请考虑到这些是点,而不是边界。最好的做法是确定最近的点,但在许多情况下,这不是正确的点。

考虑以下示例:

这两个正方形代表不同的时区,其中每个正方形中的黑点是参考位置,例如可以在zone.tab中找到的位置。蓝点表示我们尝试查找时区的位置。显然,这个位置在左边的橙色区域内,但是如果我们只是看最近的距离参考点,它将解析到右边的绿色区域。

票数 521
EN

Stack Overflow用户

发布于 2014-03-06 01:21:17

这个针对node.js https://github.com/mattbornski/tzwhere的解决方案怎么样?

和它的Python副本:https://github.com/pegler/pytzwhere

票数 10
EN

Stack Overflow用户

发布于 2015-09-07 19:24:15

我们在Teleport刚刚启动了opening up our API's,其中一个用例也公开了坐标的TZ信息。

例如,可以通过以下方式请求坐标的所有可用TZ信息:

代码语言:javascript
复制
curl -s https://api.teleport.org/api/locations/59.4372,24.7453/?embed=location:nearest-cities/location:nearest-city/city:timezone/tz:offsets-now | jq '._embedded."location:nearest-cities"[0]._embedded."location:nearest-city"._embedded."city:timezone"'

这将返回以下内容

代码语言:javascript
复制
{
  "_embedded": {
    "tz:offsets-now": {
      "_links": {
        "self": {
          "href": "https://api.teleport.org/api/timezones/iana:Europe%2FTallinn/offsets/?date=2015-09-07T11%3A20%3A09Z"
        }
      },
      "base_offset_min": 120,
      "dst_offset_min": 60,
      "end_time": "2015-10-25T01:00:00Z",
      "short_name": "EEST",
      "total_offset_min": 180,
      "transition_time": "2015-03-29T01:00:00Z"
    }
  },
  "_links": {
    "self": {
      "href": "https://api.teleport.org/api/timezones/iana:Europe%2FTallinn/"
    },
    "tz:offsets": {
      "href": "https://api.teleport.org/api/timezones/iana:Europe%2FTallinn/offsets/{?date}",
      "templated": true
    },
    "tz:offsets-now": {
      "href": "https://api.teleport.org/api/timezones/iana:Europe%2FTallinn/offsets/?date=2015-09-07T11%3A20%3A09Z"
    }
  },
  "iana_name": "Europe/Tallinn"
}

在本例中,我使用./jq进行JSON解析。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16086962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档