javascript - 地理编码器失败,原因是:REQUEST_DENIED google maps
问题描述
我在使用 Geocode 时遇到了这个错误 我知道有很多相同的问题,但我无法理解,所以如果你们有解决方案,请给我你的代码版本,里面有你的代码
这是我的代码
<style>
/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
#map {
height: 100%;
}
/* Optional: Makes the sample page fill the window. */
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#floating-panel {
position: absolute;
top: 10px;
left: 25%;
z-index: 5;
background-color: #fff;
padding: 5px;
border: 1px solid #999;
text-align: center;
font-family: 'Roboto','sans-serif';
line-height: 30px;
padding-left: 10px;
}
#floating-panel {
position: absolute;
top: 5px;
left: 50%;
margin-left: -180px;
width: 350px;
z-index: 5;
background-color: #fff;
padding: 5px;
border: 1px solid #999;
}
#latlng {
width: 225px;
}
</style>
</head>
<body>
<div id="floating-panel">
<input id="latlng" type="text" value="40.714224,-73.961452">
<input id="submit" type="button" value="Reverse Geocode">
</div>
<div id="map"></div>
<script>
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 8,
center: {lat: 40.731, lng: -73.997}
});
var geocoder = new google.maps.Geocoder;
var infowindow = new google.maps.InfoWindow;
document.getElementById('submit').addEventListener('click', function() {
geocodeLatLng(geocoder, map, infowindow);
});
}
function geocodeLatLng(geocoder, map, infowindow) {
var input = document.getElementById('latlng').value;
var latlngStr = input.split(',', 2);
var latlng = {lat: parseFloat(latlngStr[0]), lng: parseFloat(latlngStr[1])};
geocoder.geocode({'location': latlng}, function(results, status) {
if (status === 'OK') {
if (results[0]) {
map.setZoom(11);
var marker = new google.maps.Marker({
position: latlng,
map: map
});
infowindow.setContent(results[0].formatted_address);
infowindow.open(map, marker);
} else {
window.alert('No results found');
}
} else {
window.alert('Geocoder failed due to: ' + status);
}
});
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY" async defer></script>
谢谢我希望有人可以帮助解决这个问题
解决方案
此错误表明缺少 Google Maps API 密钥。 https://developers.google.com/maps/documentation/javascript/get-api-key
单击下面的按钮,以使用 Google Cloud Platform Console 获取 API 密钥。您将被要求 (1) 选择一个或多个产品,(2) 选择或创建一个项目,以及 (3) 设置一个结算帐户。创建 API 密钥后,系统将提示您限制密钥的使用。有关更多信息,请参阅限制 API 密钥。
(按钮出现在链接中)加载 Maps JavaScript API 时,将以下代码中的 YOUR_API_KEY 替换为您从上一步中获得的 API 密钥。
<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap" type="text/javascript"></script>
如果您按照链接之外的步骤操作,那应该可以解决您遇到的错误。
推荐阅读
- javascript - 使用假 api 'myjson.com' 从数组中获取第一个元素
- validation - Springboot 2.1.x Webflux 功能端点 - 如何执行输入验证?
- java - 在Java中使用double计算截锥体的侧表面时如何处理浮点精度
- sql - SQL 将行转换为列,复杂类型
- android - 如何为 EditText 创建自定义视图?
- python-3.x - 带有来自Dataframe的标准错误的条形图?
- android - 如何使用 kotlin 从列表的第一个元素中获取第一个 Char?
- excel - 使用 SendKeys ("^a") 复制网站数据并粘贴到 Excel
- swift - 尝试在 Apple Watch 上重现锻炼应用程序中使用的锻炼活动选择方法
- swift - 在 Swift5 中实现多个表视图时可以吗?