Google 地图 API v3 地点库返回未定义的 utc_offset

问题描述 投票:0回答:1

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

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

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

google-maps google-maps-api-3 google-places-api
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
}
© www.soinside.com 2019 - 2024. All rights reserved.