我正在使用Google Maps Javascript API来获取地点详细信息。截至昨天,我一直收到此错误:
RangeError: Maximum call stack size exceeded
at Object._.Xm (common.js:1)
at Object.get [as open_now] (util.js:213)
at Object.get [as open_now] (util.js:213)
at Object.get [as open_now] (util.js:213)
at Object.get [as open_now] (util.js:213)
at Object.get [as open_now] (util.js:213)
at Object.get [as open_now] (util.js:213)
at Object.get [as open_now] (util.js:213)
at Object.get [as open_now] (util.js:213)
at Object.get [as open_now] (util.js:213)
我的代码(在打字稿中)是:
async function getGooglePlaceDetails(placeId: string, sessionToken?: string) {
const googleMapsClient = createClient({
key: config.googleMapsServerAPIKey,
Promise,
});
const response = await googleMapsClient
.place({ placeid: placeId, sessiontoken: sessionToken })
.asPromise();
return response;
}
在某些地方,例如ChIJ71yZMAvSCl8RY1u0MpwXJXA
(“ Houheikyou温泉”),此操作失败。
我该如何解决?
答案 0 :(得分:1)
此问题最近已修复。 Google的公开问题跟踪器中也对此进行了报告:https://issuetracker.google.com/issues/137213536
该问题是由于最近的Maps JavaScript API版本3.37过渡(已由Google工程师根据公共错误已修复)引起的。
请注意,切换到旧版本是暂时的解决方法,并且在完全弃用旧版本后将不再起作用。如果新版本的错误仍然可以再现,您可以在上面的问题链接上发表评论,以供工程师进一步研究。
答案 1 :(得分:0)
这似乎与版本37中包含的util.js
有关。您可以通过将Google Maps API版本字符串更改为v=quarterly
或36来解决此问题。
https://maps.googleapis.com/maps/api/js?v=quarterly&key=...&libraries=geometry,drawing,places
(用您自己的库替换这些库)
有关更多详细信息,请参见:https://developers.google.com/maps/documentation/javascript/versions