Javascript 类型错误:a为null main.js

Javascript 类型错误:a为null main.js,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,所以我正在使用谷歌地图api,它给了我这个错误 InvalidValueError: not an Object" main.js:26:873 Bf() main.js:26 Xca() main.js line 61 > eval line 39 > eval line 30 > eval:8 Wca() main.js line 61 > eval line 39 > eval line 30 > eval:5 a_[u].Bj/<() main.

所以我正在使用谷歌地图api,它给了我这个错误

InvalidValueError: not an Object" main.js:26:873
Bf() main.js:26
Xca() main.js line 61 > eval line 39 > eval line 30 > eval:8
Wca() main.js line 61 > eval line 39 > eval line 30 > eval:5
a_[u].Bj/<() main.js line 61 > eval line 39 > eval line 30 > eval:11
kg() main.js:30
a_[u].Bj() main.js line 61 > eval line 39 > eval line 30 > eval:11
Bi[u].route/<() main.js:45
lg() main.js:30
<anonymous> main.js line 61 > eval line 39 > eval line 30 > eval:55
Nh.util() main.js line 61 > eval line 39 > eval:30
Oh/<() main.js:41
dg[u].Qd/</d[a]<() main.js:29
$f/<() main.js:29
dg[u].Qd/<() main.js:29
hg() main.js:30
dg[u].Qd() main.js:29
<anonymous> directions.js:1
TypeError: a is null
InvalidValueError:不是对象”main.js:26:873
Bf()main.js:26
Xca()main.js行61>eval行39>eval行30>eval:8
Wca()main.js第61行>评估第39行>评估第30行>评估:5
a_u[u].Bj/eval line 39>eval line 30>eval:11
kg()main.js:30
a_u[u].Bj()main.js行61>eval行39>eval行30>eval:11
Bi[u]。路线/评估线39>评估线30>评估线55
Nh.util()main.js第61行>评估第39行>评估:30

哦/移动
方向服务的呼叫。将
路由到末端,但在calcRoute内部


目前它位于全局上下文中的
calcRoute
之外,其中
request
ist未知(我猜你错把一些大括号弄错了)

你也可以添加你的HTML吗。
    var directionsDisplay;
    var directionsService = new google.maps.DirectionsService();
    var map;
    var waypts=[];
    var setpos = false;
    var pos;
    var start;
    var posMarker;
    var mapPage=0;
    var request;
    function initialize() {
      console.log('started');
      directionsDisplay = new google.maps.DirectionsRenderer();
      var mapOptions = {
        zoom: 6
      };
      var chicago = new google.maps.LatLng(41.850033, -87.6500523);
      map = new google.maps.Map(document.getElementById('map-canvas'),
      mapOptions);
      if(navigator.geolocation) {
          navigator.geolocation.getCurrentPosition(function(position) {
          pos = new google.maps.LatLng(position.coords.latitude,
          position.coords.longitude);

          var infowindow = new google.maps.InfoWindow({
            map: map,
            position: pos,
            content: 'Location found using HTML5.'
          });

          map.setCenter(pos);
          }, function() {
          handleNoGeolocation(true);
        });
      } 
      else {
        // Browser doesn't support Geolocation
        handleNoGeolocation(false);
      }
      map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);
      directionsDisplay.setMap(map);
    }

     function calcRoute() {
        var selectedMode = document.getElementById('mode').value;
        posMarker=null;

        if (setpos===false){
      start = document.getElementById('start').value;
        }
      var end = document.getElementById('end').value;
      if(selectedMode!== 'TRANSIT'){
        console.log('non-transit')
        var request = {
          origin: start,
          destination: end,
          waypoints: waypts,
          optimizeWaypoints: true,
          travelMode: google.maps.TravelMode[selectedMode]
         };
      }
      else if(mapPage===waypts.length+1){
        var request = {
          origin: waypts[mapPage-1],
          destination: end,
          travelMode: google.maps.TravelMode[selectedMode]
        };
      }
       else if(mapPage===1){
        var request = {
          origin: start,
          destination: waypts[mapPage+1],
          travelMode: google.maps.TravelMode[selectedMode]
        };
      }
      else {
        var request = {
           origin: waypts[mapPage-1],
           destination: waypts[mapPage+1],
           travelMode: google.maps.TravelMode[selectedMode]
        };
       }
     }

      directionsService.route(request, function(response, status) {
        if (status == google.maps.DirectionsStatus.OK) {
          directionsDisplay.setDirections(response);
          var route = response.routes[0];
          var summaryPanel = document.getElementById('directions_panel');
          summaryPanel.innerHTML = '';
          // For each route, display summary information.
            for (var i = 0; i < route.legs.length; i++) {
              var routeSegment = i + 1;
              summaryPanel.innerHTML += '<b>Route Segment: ' + routeSegment + '</b><br>';
              summaryPanel.innerHTML += route.legs[i].start_address + ' to ';
              summaryPanel.innerHTML += route.legs[i].end_address + '<br>';
              summaryPanel.innerHTML += route.legs[i].distance.text + '<br><br>';
             }
          }
         });

      function changeText(elem,text){
        var element=elem;
        element = text;
    }
    function addWay(){
          waypts.push({location:document.getElementById('waypoints').value,stopover:true});
        alert("added: " + document.getElementById('waypoints').value);
        for(var i = 0; i<waypts.length;i++){
            console.log(waypts[i]);
        }
        console.log("worked THANK BEJEEBUS");
    }
    function setCurrentPos(){
        setpos=!setpos;
          if(setpos===true){
              start = pos;
          }
          else changeText(document.getElementById('start').text,'Not your current position');
        console.log(start);
        console.log("pos set");
        posMarker = new google.maps.Marker({
          position: pos,
          map: map,
          title: 'Your Pos'
        });
    }
    function nextPage(){
        if(mapPage<=waypts.length+1)
          mapPage++;
          calcRoute();
    }
    function backPage(){
        if(mapPage>1){
        mapPage--;
        calcRoute();
        }
    }
    google.maps.event.addDomListener(window, 'load', initialize);