Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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
Google maps api 3 谷歌地图V3-地图正常,方向不正确_Google Maps Api 3 - Fatal编程技术网

Google maps api 3 谷歌地图V3-地图正常,方向不正确

Google maps api 3 谷歌地图V3-地图正常,方向不正确,google-maps-api-3,Google Maps Api 3,这是网页: 正如你所看到的,地图显示OK,居中并按我的要求缩放。问题是方向没有显示 谷歌地图代码: var directionDisplay; var directionsService = new google.maps.DirectionsService(); var map; function initialize() { directionsDisplay = new google.maps.DirectionsRenderer(); var myLatlng = new google.

这是网页: 正如你所看到的,地图显示OK,居中并按我的要求缩放。问题是方向没有显示

谷歌地图代码:

var directionDisplay;
var directionsService = new google.maps.DirectionsService();
var map;
function initialize() {
directionsDisplay = new google.maps.DirectionsRenderer();
var myLatlng = new google.maps.LatLng(37.651429,22.267043);    
var myOptions = {
  zoom:9,
  center: new google.maps.LatLng(37.722392,22.769925),
  mapTypeId: google.maps.MapTypeId.ROADMAP,

}
map = new google.maps.Map(document.getElementById("map1"), myOptions);
directionsDisplay.setMap(map);
}
function calcRoute() {
var request = {
    origin:"athens, greece", 
    destination:myLatlng,
    travelMode: google.maps.DirectionsTravelMode.DRIVING,
};
directionsService.route(request, function(response, status) {
  if (status == google.maps.DirectionsStatus.OK) {
    directionsDisplay.setDirections(response);
  }
});
}

有什么建议吗?

您至少有两个问题:

  • 您有一个calcRoute函数来计算和显示路线,但您从未调用它(解决方案:调用它,可能在初始化函数的末尾)
  • myLatLng变量是初始化例程的本地变量,因此在calcRoute尝试访问它时不可用(解决方案:使其成为全局变量)


  • 如果这解决了你的问题,你应该
     var directionDisplay;
     var directionsService = new google.maps.DirectionsService();
     var map;
     var myLatlng = new google.maps.LatLng(37.651429,22.267043);    
    
     function initialize() {
       directionsDisplay = new google.maps.DirectionsRenderer();
       var myOptions = {
         zoom:9,
         center: new google.maps.LatLng(37.722392,22.769925),
         mapTypeId: google.maps.MapTypeId.ROADMAP,
       }
       map = new google.maps.Map(document.getElementById("map1"), myOptions);
       directionsDisplay.setMap(map);
       calcRoute();
     }
    
     function calcRoute() {
       var request = {
         origin:"athens, greece", 
         destination:myLatlng,
         travelMode: google.maps.DirectionsTravelMode.DRIVING,
       };
       directionsService.route(request, function(response, status) {
         if (status == google.maps.DirectionsStatus.OK) {
           directionsDisplay.setDirections(response);
         }
       });
     }