Cor*_*ryG 22 javascript google-maps-api-3
如何在没有密钥的情况下使用Google Maps v3 API?我已经在这个例子中看到了它,但无法弄清楚具体是什么导致它不会出错.
编辑:如果有人建议,StackOverflow上关于此主题的其他答案已过时且不再适用.
geo*_*zip 27
现在需要一把钥匙.以前它不是必需的,并且在2016年6月22日之前使用没有密钥的API的网站已经过豁免,以允许它们继续工作.
自2016年6月22日起,我们对Google Maps API标准计划进行了以下更改:
- 我们不再支持无密钥访问(任何不包含API密钥的请求).未来的产品更新仅适用于使用API密钥发出的请求.API密钥允许我们在需要时联系开发人员,帮助我们识别行为不当的实现.
- 我们已经为新的Google Maps JavaScript API,Static Maps API和街景图像API实施实施了每天25,000个地图加载限制.这些API连续90天的宽限期将于2016年10月12日停用.通过此更改,开发人员可以预测增长计划,而媒体网站和美国公益组织可以通过我们的专用支持计划免费申请更多配额.
- 我们已经针对每个API的1,000,000到100,000个请求减少了您可以针对Google Maps JavaScript API,Static Maps API和街景图像API购买的每日地图加载最大限制.*我们认为大批量开发人员最好使用Premium Plan许可证,包括技术支持和服务水平协议,通过此更改,我们还在地图和Web服务API之间创建了标准计划配额之间的一致性.
- 我们现在将Google Maps JavaScript API客户端请求计入关联的Web服务API的每日限制.*
新政策将立即适用于2016年6月22日或之后创建的所有Maps API实施.
现有应用程序已根据其当前使用情况进行了规范,以确保它们现在和将来都能继续运行.我们还将主动联系所有现有API密钥用户,这些用户根据使用量增长模式可能会在未来受到影响.如果您是现有用户,请花时间阅读我们的标准计划摘要政策更新,详细了解每项更改可能如何影响您的实施.
bap*_*ptx 17
实际上,您发布的链接http://www.birdtheme.org/useful/v3largemap.html无需密钥(控制台中只有一个警告).看起来谷歌正在将一些域名列入白名单,以允许在没有密钥的情况下使用API.
我尝试使用谷歌地图API V3显示OpenStreetMap的瓷砖,但它会产生一个"谷歌地图API的错误:MissingKeyMapError"在我的本地是工作在这个网站没有API密钥,而:http://harrywood.co.uk/maps /examples/google-maps/apiv3.html
在大多数不使用API密钥的网站上,有一个错误会阻止使用Google地图,但您可以绕过此审查.
解决方案如果您没有密钥使用Google Maps API不拥有服务器:
使用AdBlockPlus和规则等插件阻止发送错误的HTTP请求 http://maps.googleapis.com/maps/api/js/AuthenticationService.Authenticate?*
这样您就可以访问Google Maps API图块,标记,infoWindow弹出框...但是如果您想使用地理编码API,您还必须remove your HTTP referer header使用浏览器插件,例如"修改标题".
添加到您的网页的解决方案,以便每位访问者无需密钥即可访问Google Maps API:
以下是我创建的JavaScript hack,无需密钥即可使用Google Maps API V3并绕过错误消息.
// hack Google Maps to bypass API v3 key (needed since 22 June 2016 http://googlegeodevelopers.blogspot.com.es/2016/06/building-for-scale-updates-to-google.html)
var target = document.head;
var observer = new MutationObserver(function(mutations) {
for (var i = 0; mutations[i]; ++i) { // notify when script to hack is added in HTML head
if (mutations[i].addedNodes[0].nodeName == "SCRIPT" && mutations[i].addedNodes[0].src.match(/\/AuthenticationService.Authenticate?/g)) {
var str = mutations[i].addedNodes[0].src.match(/[?&]callback=.*[&$]/g);
if (str) {
if (str[0][str[0].length - 1] == '&') {
str = str[0].substring(10, str[0].length - 1);
} else {
str = str[0].substring(10);
}
var split = str.split(".");
var object = split[0];
var method = split[1];
window[object][method] = null; // remove censorship message function _xdc_._jmzdv6 (AJAX callback name "_jmzdv6" differs depending on URL)
//window[object] = {}; // when we removed the complete object _xdc_, Google Maps tiles did not load when we moved the map with the mouse (no problem with OpenStreetMap)
}
observer.disconnect();
}
}
});
var config = { attributes: true, childList: true, characterData: true }
observer.observe(target, config);
Run Code Online (Sandbox Code Playgroud)
这样,您就可以访问Google Maps API图块,标记,infoWindow弹出框...对于地理编码API,您还必须使用下面的HTML元标记删除您的HTTP引用.
<meta name="referrer" content="no-referrer"> <!-- don't send HTTP referer for privacy purpose and to use Google Maps Geocoding API without key -->
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59161 次 |
| 最近记录: |