Google maps api 3 放置细节“;地点.开放时间;不返回所有标记的数据
我遇到了一个问题,我从Google Maps JavaScript API向Places Library请求位置详细信息,但响应没有返回所有标记的开放时间对象下的数据,只有其中一些标记。我已经检查过了,这些标记确实标记了我文本搜索中的实际地点,并返回了其他字段的数据,我在谷歌地图原生应用程序上检查了这些地点,这些地点在开放时间返回“未定义”,它们确实显示了开放时间和关闭时间。下面是一些代码,可以更好地理解我的意思: map.ts: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
//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()的字段列表中
工作。您使用的坐标是什么?我希望看到它现在的样子。