向Leaflet

时间:2017-10-21 10:52:44

标签: javascript ionic-framework leaflet

该代码适用于离子v1应用程序上的两个航路点,但如果我添加两个以上,我会收到以下错误:

Uncaught TypeError: Cannot read property 'lat' of undefined
at o.LatLng.distanceTo (file:///android_asset/www/lib/leaflet/leaflet.js:6:14158)
at e._extendToWaypoints (file:///android_asset/www/lib/leaflet-routing-machine-3.2.5/dist/leaflet-routing-machine.js:3751:18)
at e.initialize (file:///android_asset/www/lib/leaflet-routing-machine-3.2.5/dist/leaflet-routing-machine.js:3699:10)
at new e (file:///android_asset/www/lib/leaflet/leaflet.js:6:2539)
at Object.line (file:///android_asset/www/lib/leaflet-routing-machine-3.2.5/dist/leaflet-routing-machine.js:3329:16)
at e.<anonymous> (file:///android_asset/www/js/services/Maps.js:461:35)
at e.fireEvent (file:///android_asset/www/lib/leaflet/leaflet.js:6:4952)
at e.<anonymous> (file:///android_asset/www/lib/leaflet-routing-machine-3.2.5/dist/leaflet-routing-machine.js:2907:13)
at e._routeDone (file:///android_asset/www/lib/lrm-mapbox/lrm-mapbox.js:289:20)
at e.<anonymous> (file:///android_asset/www/lib/lrm-mapbox/lrm-mapbox.js:248:22) 

奇怪的是,这个代码在几个月前运行良好,但突然间它开始失败了。有问题的代码是:

function getRoute() {
    var r = L.Routing.control({

      waypoints: waypoints,
      router: new L.Routing.Mapbox(Config.mapBoxApiKey,
        {
          serviceUrl: 'https://api.tiles.mapbox.com/v4/directions/',
          timeout: 30 * 1000,
          profile: 'mapbox.' + tipo
        }
      ),
      lineOptions: {
        styles: styles
      },
      fitSelectedRoutes: false,
      routeWhileDragging: false,
      createMarker: function () {
        return null;
      }

    });

    return r;
  }

  var control = getRoute();
  var routeLayer = L.layerGroup([control]); <---- HERE I GET THE ERROR

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在传单中,ControlsLayers不同。

特别是,你不能让他们成为Layer Group的孩子。

Leaflet Routing Machine plugin home page所示,您只需使用addTo()方法将您的控件添加到地图中:

L.Routing.control({
  waypoints: waypoints
}).addTo(map);

在您的确切情况下:

getRoute().addTo(map);