Javascript 谷歌已经在GMAPSJSAPIv3中禁用了此应用程序的MapsAPI
我已经把这方面的文档看了好几遍了,我的头都撞到墙上了!我似乎无法通过API错误使地图显示在我的站点上 我从希望显示地图的网页上收到以下错误消息: 谷歌已禁用此应用程序的地图API。提供的密钥不是有效的Google API密钥,或者此站点上的Google Maps Javascript API v3未授权该密钥。如果您是此应用程序的所有者,您可以在此处了解如何获取有效密钥: 我(现在几次)进入我的账户,并且:Javascript 谷歌已经在GMAPSJSAPIv3中禁用了此应用程序的MapsAPI,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我已经把这方面的文档看了好几遍了,我的头都撞到墙上了!我似乎无法通过API错误使地图显示在我的站点上 我从希望显示地图的网页上收到以下错误消息: 谷歌已禁用此应用程序的地图API。提供的密钥不是有效的Google API密钥,或者此站点上的Google Maps Javascript API v3未授权该密钥。如果您是此应用程序的所有者,您可以在此处了解如何获取有效密钥: 我(现在几次)进入我的账户,并且: 已启用Maps v3 API服务 生成了一个新的API密钥 将我允许的推荐人添加到密钥。
<script src="http://maps.googleapis.com/maps/api/js?sensor=false&key=MY_API_KEY_HERE" type="text/JavaScript" language="JavaScript"></script>
将显示初始的viewMap()
警报,然后出现“Google已禁用使用…”错误消息
错误控制台也显示“GMap3未定义”
有人能帮我指出我的错误吗?也许只需将GMap3行更改为:
var myOptions = {zoom: 5,mapTypeId: google.maps.MapTypeId.ROADMAP};
var map = new google.maps.Map(document.getElementById('map_canvas'),myOptions);
下面是一个使用navigator.geolocation
而不是GClientGeocoder
的更完整示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true"></script>
<style>
#map_canvas {width:300px;height:300px;display:block;}
</style>
</head>
<body>
<div id="map_canvas"></div>
<button onclick="begin();">Click</button>
</body>
<script>
function begin(){
navigator.geolocation.getCurrentPosition(loadmap,noloc);
}
function noloc(){ alert('Since this is a location based tool, please reload and share your location');}
function loadmap(position){
var myOptions = {
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map_canvas'),myOptions);
var latitude=position.coords.latitude;
var longitude=position.coords.longitude;
//do something with the lat lng
var usrll=new google.maps.LatLng(latitude,longitude);
map.setCenter(usrll);
var usrmarker = new google.maps.Marker({position: usrll,map: map});
}
</script>
</html>
无标题文件
#地图画布{宽度:300px;高度:300px;显示:块;}
点击
函数begin(){
navigator.geolocation.getCurrentPosition(loadmap,noloc);
}
函数noloc(){alert('由于这是一个基于位置的工具,请重新加载并共享您的位置';}
功能加载图(位置){
变量myOptions={
缩放:5,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById('map_canvas'),myOptions);
变量纬度=位置坐标纬度;
var经度=position.coords.longitude;
//用lat lng做点什么
var usrll=新的google.maps.LatLng(纬度、经度);
地图设置中心(usrll);
var usrmarker=newgoogle.maps.Marker({position:usrll,map:map});
}
有几个问题,其中最严重的是加载带有
标记的版本3 API,然后使用版本2代码,如GClientGeocoder
。而GMap3
在这两个版本中都根本不存在
将版本2映射转换为版本3并不像加载版本3 API那样简单。它需要从头重写(这超出了SO的范围)
您没有说您正在使用哪些引用,但您需要明确使用通配符:www.domain.com/*
,domain.com/*
我建议将
GMap3
更改为GMap2
,并确保加载版本2 API(在相关的
标记中指定控制台键)。然后开始重新编写第3版。没有。我刚刚添加了它,但仍然得到相同的结果/错误。谢谢。我将在v2上使用它,然后迁移到v3…好的。。。我做了一些改变,似乎更接近。。。1) 我改为加载v2api。2) 更改了我的javascript以创建GMap2对象3)确认我的引用者包括通配符4)关闭了我的v3服务并启用了v2服务我现在收到第二个警报,显示它正在尝试获取Lat/Lng。。。然后,我得到了下面的错误对话框:Google已经禁用了这个应用程序的MapsAPI。提供的密钥不是有效的Google API密钥,或者此站点上的Google Maps Javascript API v2未授权该密钥。如果您是此应用程序的所有者,您可以在此处了解如何获取有效密钥:@user1496322不再有足够的信息。需要知道:地图的确切网址;确切地说,你在你的推荐人;您的
标签现在是什么。我建议你更新这个问题。我把我的钥匙改成了“允许任何推荐人”的钥匙,现在一切似乎都正常了。谢谢你的帮助!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true"></script>
<style>
#map_canvas {width:300px;height:300px;display:block;}
</style>
</head>
<body>
<div id="map_canvas"></div>
<button onclick="begin();">Click</button>
</body>
<script>
function begin(){
navigator.geolocation.getCurrentPosition(loadmap,noloc);
}
function noloc(){ alert('Since this is a location based tool, please reload and share your location');}
function loadmap(position){
var myOptions = {
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map_canvas'),myOptions);
var latitude=position.coords.latitude;
var longitude=position.coords.longitude;
//do something with the lat lng
var usrll=new google.maps.LatLng(latitude,longitude);
map.setCenter(usrll);
var usrmarker = new google.maps.Marker({position: usrll,map: map});
}
</script>
</html>