Google maps api 3 放置细节“;地点.开放时间;不返回所有标记的数据

Google maps api 3 放置细节“;地点.开放时间;不返回所有标记的数据,google-maps-api-3,google-places-api,undefined-symbol,Google Maps Api 3,Google Places Api,Undefined Symbol,我遇到了一个问题,我从Google Maps JavaScript API向Places Library请求位置详细信息,但响应没有返回所有标记的开放时间对象下的数据,只有其中一些标记。我已经检查过了,这些标记确实标记了我文本搜索中的实际地点,并返回了其他字段的数据,我在谷歌地图原生应用程序上检查了这些地点,这些地点在开放时间返回“未定义”,它们确实显示了开放时间和关闭时间。下面是一些代码,可以更好地理解我的意思: map.ts: //Request for all places based o

我遇到了一个问题,我从Google Maps JavaScript API向Places Library请求位置详细信息,但响应没有返回所有标记的开放时间对象下的数据,只有其中一些标记。我已经检查过了,这些标记确实标记了我文本搜索中的实际地点,并返回了其他字段的数据,我在谷歌地图原生应用程序上检查了这些地点,这些地点在开放时间返回“未定义”,它们确实显示了开放时间和关闭时间。下面是一些代码,可以更好地理解我的意思:

map.ts:

//Request for all places based on query search
var request = {
  location: this.myLocation,
  radius: '400',
  query: "McDonalds"
};

// Callback function for places
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
  for (let i = 0; i < results.length; i++) {
    let placeLoc = results[i].geometry.location;
    scopeObj.addMarker(results[i], placeLoc);
  }
}
};
let service = new google.maps.places.PlacesService(this.map);
service.textSearch(request, callback);

//Request for place details of each place, (this would loop through all place ids stored in an array
var request = {
  placeId: details.place_id,
  fields: ['name', 'formatted_address', 'formatted_phone_number', 'opening_hours',]
};

function callback(place, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
  console.log(place.opening_hourse); 
/* Returns Object object if data is found, 
   returns undefined otherwise, question is why 
   if status returns OK for all places that have 
   been marked with markers on the map? */
}
}

let service = new google.maps.places.PlacesService(this.map);
service.getDetails(request, callback);
//基于查询搜索请求所有位置
var请求={
位置:this.myLocation,
半径:“400”,
查询:“麦当劳”
};
//位置的回调函数
函数回调(结果、状态){
if(status==google.maps.places.PlacesServiceStatus.OK){
for(设i=0;i
使用我自己的API实现,我收到了来自各个地方的开放时间信息。我省略了所有其他的漏洞,但这是一个我已经完成的地方详细信息请求,可以在许多企业中重复,仍然可以获得信息

   {
   "html_attributions" : [],
   "result" : { 
         OMITTED
      "name" : "McDonald's",
      "opening_hours" : {
         "open_now" : true,
         "periods" : [
            {
               "close" : {
                  "day" : 0,
                  "time" : "1700"
               },
               "open" : {
                  "day" : 0,
                  "time" : "0800"
               }
            },
            {
               "close" : {
                  "day" : 1,
                  "time" : "2100"
               },
               "open" : {
                  "day" : 1,
                  "time" : "0800"
               }
            },
            {
               "close" : {
                  "day" : 2,
                  "time" : "2100"
               },
               "open" : {
                  "day" : 2,
                  "time" : "0800"
               }
            },
            {
               "close" : {
                  "day" : 3,
                  "time" : "2100"
               },
               "open" : {
                  "day" : 3,
                  "time" : "0800"
               }
            },
            {
               "close" : {
                  "day" : 4,
                  "time" : "2100"
               },
               "open" : {
                  "day" : 4,
                  "time" : "0800"
               }
            },
            {
               "close" : {
                  "day" : 5,
                  "time" : "2100"
               },
               "open" : {
                  "day" : 5,
                  "time" : "0800"
               }
            },
            {
               "close" : {
                  "day" : 6,
                  "time" : "1700"
               },
               "open" : {
                  "day" : 6,
                  "time" : "0800"
               }
            }
         ],
         "weekday_text" : [
            "Monday: 8:00 AM – 9:00 PM",
            "Tuesday: 8:00 AM – 9:00 PM",
            "Wednesday: 8:00 AM – 9:00 PM",
            "Thursday: 8:00 AM – 9:00 PM",
            "Friday: 8:00 AM – 9:00 PM",
            "Saturday: 8:00 AM – 5:00 PM",
            "Sunday: 8:00 AM – 5:00 PM"
         ]
      },
    OMITTED
   "status" : "OK"
}
我能看到您的实现和我的实现的唯一区别是,您正在指定在请求中需要哪些字段

您可以尝试检索所有字段,而不是像以前那样专门请求字段:

var request = {
  placeId: details.place_id,
};

字段是一个可选参数,可能会引起问题。

您能提供一个地方ID的示例来说明这个问题吗?什么类型的地方搜索响应有这个地方?它是一个按地点搜索的查询,所以不是一个地点类型,而是按关键字,例如搜索所有麦当劳(这不是我在我的应用程序中搜索的内容)然后,我会为我所做的所有结果放置标记,然后请求位置详细信息。我会更新代码。我相信谷歌方面的位置详细信息可能有问题,因为在位置请求中返回的位置都是有效的麦当劳餐厅。然后,我会对quer返回的每个位置执行位置详细信息请求y、 然而,似乎place.opening_hours字段并没有返回某些地方的数据。如果您仍然遇到问题,可能值得共享您测试的ID,以查看我或任何其他用户是否也看到了问题。这样,我们就可以将其归因于谷歌的数据问题(这可能会发生)这可能是Google的数据问题,但我正在继续测试,我会让您知道您的解决方案是否有效。我遇到了类似的问题,删除了
字段
参数将其修复。根据建议,
utc\u offset\u minutes
需要包含在
isOpen()的字段列表中
工作。您使用的坐标是什么?我希望看到它现在的样子。