3

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

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

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

4

1 回答 1

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
}
于 2014-07-18T03:07:56.170 回答