我所拥有的是一张显示酒店位置的Google地图,但是当我打印动态地图时打印得不那么好,所以我决定实施Google静态地图图片API。
^^是打印视图中属性的一个示例,应该显示静态地图图像,但无法加载并查看我的检查器我正在为图像获取403 Forbiden响应。
但如果我直接转到网址,图片会加载......
我做错了什么?
由于
斯科特
答案 0 :(得分:17)
这已经获得了很多观点,所以我在这里添加我的问题解决方案:
使用新API时,请确保为浏览器应用生成密钥(包含引用者),并确保模式与您的网址匹配。
E.g。从 example.com 请求时,您的模式应为
example.com/*
当您从 www.example.com :
请求时 *.example.com/*
因此,请确保在开发者控制台中检查子域是否存在且允许两种模式。
example.com/*
,*.example.com/*
以及您可能需要的任何本地测试域的条目。答案 1 :(得分:14)
这里似乎有些混乱,因为这个帖子在Google上排名很高,所以澄清一下似乎很有用。
Google有几种不同的API用于他们的地图服务:
此API的旧版本是版本2,需要密钥。不推荐使用此版本,建议升级到较新版本version 3。请注意,除非您使用“Google Maps API for Business”,否则文档仍指出您需要一个密钥才能运行此功能。
这是一个完全不同的故事。静态地图是一种不需要任何JavaScript的服务。您只需拨打网址,Google就会返回地图图片,从而可以将网址直接插入您的<img>
标记中。
最新版本为version 2,这需要密钥才能生效,因为应用了使用限制。
可以在此处申请密钥: https://code.google.com/apis/console
并且应该将密钥添加到要生成正确图像的请求中:
http://maps.googleapis.com/maps/api/staticmap?center=New+York,NY&zoom=13&size=600x300&key=API_console_key
我希望这可以解决一些困惑。
答案 2 :(得分:4)
我有同样的问题,但我的解决方案不同。我启用了V2 maps api,但没有静态地图api(我认为这是V2)。我启用了静态地图api并且它工作正常。
答案 3 :(得分:3)
哎呀我觉得自己像个白痴。我使用旧的V2 maps API URL而不是新的V3 API URL。我得到了403,因为我在没有提供API密钥的情况下使用V2 URL :(
答案 4 :(得分:3)
百分之百确定这些要点:(对于静态地图)
https://console.developers.google.com/apis/api/static_maps_backend/overview?project=
您有本地主机,暂存和生产 - 在引荐来源部分中启用了通配符的所有网址。
Google已更改其政策,您现在需要一个api密钥才能显示地图。请参阅此内容以获取更多信息:Google Maps API without key?
希望它有所帮助。
答案 5 :(得分:2)
Staticmaps V3不需要“Key”属性,删除它似乎解决了<img>
源问题。
尝试使用以下网址:
http://maps.googleapis.com/maps/api/staticmap?center=0.0000,0.0000&zoom=13&size=200x200&maptype=roadmap&markers=0.0000,0.0000&sensor=false
了解更多信息read this。
答案 6 :(得分:1)
是的,Google Maps API版本3是java脚本版本; “谷歌静态地图”最新版本为2.0。我怀疑使用可能会有一些限制。
答案 7 :(得分:1)
我也无法显示静态地图,并且可能会在浏览器的网络控制台中看到403错误。
http响应标头:
status:403
x-content-type-options:nosniff
我有一个API密钥,其中启用了许多Google Maps API,但Google Static Maps API
丢失了,因此无法解决问题。
答案 8 :(得分:1)
现在您应该使用'signature'参数,您应该将其添加到请求中 - 否则静态地图将无效。 这里有一些有用的链接
答案 9 :(得分:0)
我正在使用WordPress 4.9.4与ChurchThemes Exodus Theme。我申请了&amp;生成了一个新的API_KEY。
完成后,您的地图应该会开始显示在您的网站或应用上。
如果他们没有出现在刷新状态,您可能需要:
答案 10 :(得分:0)
尝试在此Google Cloud Project / Firebase项目上启用计费。
我也遇到了同样的问题,只是在控制台中收到了403 error
。
将静态地图URL复制并粘贴到URL栏中并加载它时,显示以下错误消息:
The Google Maps Platform server rejected your request. You must enable Billing on the Google Cloud Project at
https://console.cloud.google.com/project/_/billing/enable Learn more at https://developers.google.com/maps/gmp-get-started
希望这会有所帮助!