【发布时间】:2021-11-14 13:13:42
【问题描述】:
我正在尝试使用 React Native 中的 Google Maps Static API 添加地图图像。
我正在使用方向 api 获取 overview_polyline 数据并将其合并到一个 URL 中,然后使用谷歌云数字签名对其进行签名,然后再传递到 Image 的源属性 ({ uri: (my url)}) .
图像未呈现在屏幕上,没有错误消息。
我尝试在 trycatch 语句中使用 fetch(),得到的响应是:
Google Maps Platform 服务器拒绝了您的请求。无法验证请求。提供的“签名”对于提供的 API 密钥无效,或者提供的“密钥”无效。 已根据以下 URL 检查签名:/maps/api/staticmap?&size=400x400&path=weight:3%257Ccolor:0x0352A0CC%257Cenc:(polyline)&key&mapID&signature。
但是,当我在 safari 和 chrome 中使用完全相同的 url(具有相同的 API 密钥和签名)时,它会呈现图像。
我试过了:
两者都更改了 url,因此它不再在浏览器中工作。
【问题讨论】:
-
您如何签署您的请求?你关注这些steps了吗?我使用了您正在使用的地图静态 URL,并使用这些步骤签署了我的请求,我可以在 react-native 中正确地看到地图(我只是在这里使用示例代码:reactnative.dev/docs/image#examples)。但是当我故意删除我的 uri 中的某些字符使请求无效并在浏览器中运行无效请求时,我遇到了图像没有呈现且没有错误消息的问题。
-
@pagemag 我使用该链接中提供的 node.js 代码签署了请求。结果证明签名很好,这与未编码 uri 的折线有关。
标签: javascript react-native google-maps google-maps-api-3 google-static-maps