Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图API示例不起作用_Javascript_Html - Fatal编程技术网

Javascript 谷歌地图API示例不起作用

Javascript 谷歌地图API示例不起作用,javascript,html,Javascript,Html,我对使用谷歌地图API还不熟悉,我正在使用一些不适用于谷歌的文档示例代码,我想知道是否有人能帮我解决为什么它不适用于我?下面是代码本身: 方向显示; var directionsService=new google.maps.directionsService(); var映射; 函数初始化(){ directionsDisplay=new google.maps.DirectionsRenderer(); var chicago=new google.maps.LatLng(41.85003

我对使用谷歌地图API还不熟悉,我正在使用一些不适用于谷歌的文档示例代码,我想知道是否有人能帮我解决为什么它不适用于我?下面是代码本身:


方向显示;
var directionsService=new google.maps.directionsService();
var映射;
函数初始化(){
directionsDisplay=new google.maps.DirectionsRenderer();
var chicago=new google.maps.LatLng(41.850033,-87.6500523);
变量映射选项={
缩放:7,
mapTypeId:google.maps.mapTypeId.ROADMAP,
中心:芝加哥
}
map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
方向显示.setMap(地图);
}
函数calcRoute(){
var start=document.getElementById('start').value;
var end=document.getElementById('end').value;
var请求={
来源:start,
目的地:完,
travelMode:google.maps.Directions travelMode.DRIVING
};
路由(请求、功能(响应、状态){
if(status==google.maps.directionstatus.OK){
方向显示。设置方向(响应);
}
});
}
以下是HTML:

`  <body onload="initialize()">
<div>
<b>Start: </b>
<select id="start" onchange="calcRoute();">
  <option value="chicago, il">Chicago</option>
  <option value="st louis, mo">St Louis</option>
  <option value="joplin, mo">Joplin, MO</option>
  <option value="oklahoma city, ok">Oklahoma City</option>
  <option value="amarillo, tx">Amarillo</option>
  <option value="gallup, nm">Gallup, NM</option>
  <option value="flagstaff, az">Flagstaff, AZ</option>
  <option value="winona, az">Winona</option>
  <option value="kingman, az">Kingman</option>
  <option value="barstow, ca">Barstow</option>
  <option value="san bernardino, ca">San Bernardino</option>
  <option value="los angeles, ca">Los Angeles</option>
</select>
<b>End: </b>
<select id="end" onchange="calcRoute();">
  <option value="chicago, il">Chicago</option>
  <option value="st louis, mo">St Louis</option>
  <option value="joplin, mo">Joplin, MO</option>
  <option value="oklahoma city, ok">Oklahoma City</option>
  <option value="amarillo, tx">Amarillo</option>
  <option value="gallup, nm">Gallup, NM</option>
  <option value="flagstaff, az">Flagstaff, AZ</option>
  <option value="winona, az">Winona</option>
  <option value="kingman, az">Kingman</option>
  <option value="barstow, ca">Barstow</option>
  <option value="san bernardino, ca">San Bernardino</option>
  <option value="los angeles, ca">Los Angeles</option>
</select>
</div>`
`
开始:
芝加哥
圣路易斯
密苏里州乔普林
俄克拉荷马城
阿马里洛
盖洛普
亚利桑那州弗拉格斯塔夫
维诺娜
金门
巴斯托
圣贝纳迪诺
洛杉矶
完:
芝加哥
圣路易斯
密苏里州乔普林
俄克拉荷马城
阿马里洛
盖洛普
亚利桑那州弗拉格斯塔夫
维诺娜
金门
巴斯托
圣贝纳迪诺
洛杉矶
`
需要调用initialize()函数。它可以位于
标记中,如下所示:

<body onload="initialize();">

您是否有元素来获取
开始
结束
值?当我从joliet路由到naperville时,此代码起作用:

<!DOCTYPE html>
<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=false"></script>
<style>
#map-canvas {height:500px;width:500px;}
</style>
</head>

<body onload="initialize()">
<div id="map-canvas"></div>
<div>
<b>Start: </b>
<select id="start" onchange="calcRoute();">
  <option value="chicago, il">Chicago</option>
  <option value="st louis, mo">St Louis</option>
  <option value="joplin, mo">Joplin, MO</option>
  <option value="oklahoma city, ok">Oklahoma City</option>
  <option value="amarillo, tx">Amarillo</option>
  <option value="gallup, nm">Gallup, NM</option>
  <option value="flagstaff, az">Flagstaff, AZ</option>
  <option value="winona, az">Winona</option>
  <option value="kingman, az">Kingman</option>
  <option value="barstow, ca">Barstow</option>
  <option value="san bernardino, ca">San Bernardino</option>
  <option value="los angeles, ca">Los Angeles</option>
</select>
<b>End: </b>
<select id="end" onchange="calcRoute();">
  <option value="chicago, il">Chicago</option>
  <option value="st louis, mo">St Louis</option>
  <option value="joplin, mo">Joplin, MO</option>
  <option value="oklahoma city, ok">Oklahoma City</option>
  <option value="amarillo, tx">Amarillo</option>
  <option value="gallup, nm">Gallup, NM</option>
  <option value="flagstaff, az">Flagstaff, AZ</option>
  <option value="winona, az">Winona</option>
  <option value="kingman, az">Kingman</option>
  <option value="barstow, ca">Barstow</option>
  <option value="san bernardino, ca">San Bernardino</option>
  <option value="los angeles, ca">Los Angeles</option>
</select>
</div>`
        <script>
  var directionDisplay;
  var directionsService = new google.maps.DirectionsService();
  var map;

  function initialize() {
    directionsDisplay = new google.maps.DirectionsRenderer();
    var chicago = new google.maps.LatLng(41.850033, -87.6500523);
    var mapOptions = {
      zoom:7,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      center: chicago
    }
    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
    directionsDisplay.setMap(map);
  }

  function calcRoute() {
    var start = document.getElementById('start').value;
    var end = document.getElementById('end').value;
    var request = {
        origin:start,
        destination:end,
        travelMode: google.maps.DirectionsTravelMode.DRIVING
    };
    directionsService.route(request, function(response, status) {
      if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(response);
      }
    });
  }
</script>
</body>
</html>

无标题文件
#地图画布{高度:500px;宽度:500px;}
开始:
芝加哥
圣路易斯
密苏里州乔普林
俄克拉荷马城
阿马里洛
盖洛普
亚利桑那州弗拉格斯塔夫
维诺娜
金门
巴斯托
圣贝纳迪诺
洛杉矶
完:
芝加哥
圣路易斯
密苏里州乔普林
俄克拉荷马城
阿马里洛
盖洛普
亚利桑那州弗拉格斯塔夫
维诺娜
金门
巴斯托
圣贝纳迪诺
洛杉矶
`
方向显示;
var directionsService=new google.maps.directionsService();
var映射;
函数初始化(){
directionsDisplay=new google.maps.DirectionsRenderer();
var chicago=new google.maps.LatLng(41.850033,-87.6500523);
变量映射选项={
缩放:7,
mapTypeId:google.maps.mapTypeId.ROADMAP,
中心:芝加哥
}
map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
方向显示.setMap(地图);
}
函数calcRoute(){
var start=document.getElementById('start').value;
var end=document.getElementById('end').value;
var请求={
来源:start,
目的地:完,
travelMode:google.maps.Directions travelMode.DRIVING
};
路由(请求、功能(响应、状态){
if(status==google.maps.directionstatus.OK){
方向显示。设置方向(响应);
}
});
}

在结束组合框的div之后,似乎还有一个错误。不会造成伤害但不属于我。

据我所知,你需要谷歌id/密钥才能制作谷歌地图。你有吗?我在脚本的最顶端有?当我在中添加API密钥时,我总是收到这样一条消息:Google已禁用此应用程序的Maps API。提供的密钥不是有效的Google API密钥,或者未授权用于此站点上的Google Maps JavaScript API v3。如果您是此应用程序的所有者,您可以在此处了解如何获取有效密钥:好了,开始吧。您正在使用的站点尚未在api设置中设置。我正在桌面上的一个文件中运行它?页面中是否也有id=map canvas的元素,地图将显示在该页面中?是的,我有,它位于我所有的HTMLW下方,但在您的页面中不起作用?你没有地图吗?没有路线?你有没有办法真正运行
calcRoute
功能(比如我这里的“go”按钮)?很抱歉,我可能应该说,我没有地图或任何东西啊,我现在有地图了,我已经添加了CSS!但是地图本身的功能不符合Expected to?我仍然会遇到这样的错误:Google已经禁止在这个应用程序中使用地图API。提供的密钥不是有效的Google API密钥,或者未授权用于此站点上的Google Maps JavaScript API v3。如果您是此应用程序的所有者,您可以在此处了解如何获取有效密钥:当然,我已经从我的Google帐户生成了新密钥,但仍然会收到相同的消息。以何种方式?我刚刚编辑了上面的代码以使用您的选择器,它对我来说很好
<!DOCTYPE html>
<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=false"></script>
<style>
#map-canvas {height:500px;width:500px;}
</style>
</head>

<body onload="initialize()">
<div id="map-canvas"></div>
<div>
<b>Start: </b>
<select id="start" onchange="calcRoute();">
  <option value="chicago, il">Chicago</option>
  <option value="st louis, mo">St Louis</option>
  <option value="joplin, mo">Joplin, MO</option>
  <option value="oklahoma city, ok">Oklahoma City</option>
  <option value="amarillo, tx">Amarillo</option>
  <option value="gallup, nm">Gallup, NM</option>
  <option value="flagstaff, az">Flagstaff, AZ</option>
  <option value="winona, az">Winona</option>
  <option value="kingman, az">Kingman</option>
  <option value="barstow, ca">Barstow</option>
  <option value="san bernardino, ca">San Bernardino</option>
  <option value="los angeles, ca">Los Angeles</option>
</select>
<b>End: </b>
<select id="end" onchange="calcRoute();">
  <option value="chicago, il">Chicago</option>
  <option value="st louis, mo">St Louis</option>
  <option value="joplin, mo">Joplin, MO</option>
  <option value="oklahoma city, ok">Oklahoma City</option>
  <option value="amarillo, tx">Amarillo</option>
  <option value="gallup, nm">Gallup, NM</option>
  <option value="flagstaff, az">Flagstaff, AZ</option>
  <option value="winona, az">Winona</option>
  <option value="kingman, az">Kingman</option>
  <option value="barstow, ca">Barstow</option>
  <option value="san bernardino, ca">San Bernardino</option>
  <option value="los angeles, ca">Los Angeles</option>
</select>
</div>`
        <script>
  var directionDisplay;
  var directionsService = new google.maps.DirectionsService();
  var map;

  function initialize() {
    directionsDisplay = new google.maps.DirectionsRenderer();
    var chicago = new google.maps.LatLng(41.850033, -87.6500523);
    var mapOptions = {
      zoom:7,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      center: chicago
    }
    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
    directionsDisplay.setMap(map);
  }

  function calcRoute() {
    var start = document.getElementById('start').value;
    var end = document.getElementById('end').value;
    var request = {
        origin:start,
        destination:end,
        travelMode: google.maps.DirectionsTravelMode.DRIVING
    };
    directionsService.route(request, function(response, status) {
      if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(response);
      }
    });
  }
</script>
</body>
</html>