Google 带有数字符号/井号/井号标签的查询的地图嵌入调用失败

Google Maps Embed call failing for queries with number signs / pound signs / hash tags

我的应用程序抛出错误:

Google Maps Platform rejected your request. You must use an API key to authenticate each request to Google Maps Platform APIs. For additional information, please refer to http://g.co/dev/maps-no-account

我已经尝试使用各种查询字符串重现错误。似乎查询失败的唯一情况是套房号或公寓号有 #。

这个有效: https://www.google.com/maps/embed/v1/place?q=17426%20Northwest%20Fwy,%20Jersey%20Village,%20TX%2077040,%20USA&key=

这不起作用: https://www.google.com/maps/embed/v1/place?q=951%20Interstate%20Hwy%2030%20#105,%20Rockwall,%20TX%2075087,%20USA&key=

一个可能的解决方案是我省略 # 标签并在获取初始地址时只使用地点 ID。

这需要大量的代码重构,所以我真的不想这样做。

“#”保留字符通常用作链接子部分的锚点,是应在 URL 中编码的特殊字符之一。

试试这个:https://www.google.com/maps/embed/v1/place?q=951%20Interstate%20Hwy%2030%20%23105,%20Rockwall,%20TX%2075087,%20USA&key=

有关详细信息,请参阅 Google 关于 URL encoding 的文档。

希望对您有所帮助!