【问题标题】:Google Maps API v3 Places Library returning undefined utc_offsetGoogle Maps API v3 Places Library 返回未定义的 utc_offset
【发布时间】:2013-11-12 02:19:36
【问题描述】:

我正在开发一个时间和位置感知应用程序,谷歌地图 v3 api 地方库几乎拥有我需要的一切。但是,当对特定地址执行 textSearch() 并尝试为返回的 PlaceResult 项目之一调用 getDetails() 时,从 getDetails() 返回的 PlaceResult.utc_offset 属性未定义(我需要的所有其他 PlaceResult 属性都可以正常返回,只是不是 utc_offset)。

这很奇怪,因为如果我为诸如“pizza”之类的通用术语执行 textSearch(),然后为返回的 PlaceResult 项目之一调用 getDetails(),则从 getDetails() 返回的 PlaceResult.utc_offset 属性将具有一个值.

有谁知道为什么 utc_offset 是为通用搜索的结果填充的,但在搜索特定地址时却没有,或者我做错了什么?

【问题讨论】:

  • 你在哪里看到 utc_offset?我在PlaceResult的文档中没有看到它
  • 请提供源代码
  • 你有想过这个吗?我有同样的问题。

标签: google-maps google-maps-api-3 google-places-api


【解决方案1】:

正如您在“披萨”之类的通用术语中提到的那样。我所做的是,如果它未定义,我会调用 Google TimeZone API 来获取信息。我在下面放了一个代码示例,但你也可以在 GitHub 上查看我的解决方案,https://github.com/pushpickup/pushpickup/blob/master/client/views/games/creategame/select-location.js#L13

if (place.utc_offset === void 0) {
  timeStamp = (Date.now() || new Date().getTime())/1000;
  timeZoneApiRequestUrl = "https://maps.googleapis.com/maps/api/timezone/json?location=" +
                            place.geometry.location.lat() + "," + place.geometry.location.lng() +
                            "&timestamp=" + timeStamp + "&key=YOUR_API_KEY"

  $.get(timeZoneApiRequestUrl, function( data ) {
    var utcOffset = (data.rawOffset + data.dstOffset || 0) / 3600;
    console.log("UTC offset is " + utcOffset + " hours")
  }); // expand this to handle errors, just doing a get with success for now as a POC
}

【讨论】:

    猜你喜欢
    • 2012-06-10
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 2016-10-01
    • 2013-12-27
    • 1970-01-01
    相关资源
    最近更新 更多