Получение ошибки времени выполнения при использовании ol-ext / AnimatedCluster в приложении Typescript - PullRequest
0 голосов
/ 25 января 2019

Я хотел бы использовать модуль AnimatedCluster из ol-ext (https://github.com/Viglino/ol-ext) в моем приложении Typescript. Я создал для него модуль типов, импортировал его в класс компонентов. Код создается, но я получаюошибка во время выполнения, когда я пытаюсь добавить слой AnimatedCluster на мою карту.

Это ошибка, которую я получаю во время выполнения:

vendor.js?v=4SAa8LuhjenIVeZBpu4Xc7BJBZJ1PGb7_mdlreEEFl8:1744 
ERROR TypeError: a.dg is not a function
    at vendor.js?v=4SAa8LuhjenIVeZBpu4Xc7BJBZJ1PGb7_mdlreEEFl8:186538
    at B.k.forEach (vendor.js?v=4SAa8LuhjenIVeZBpu4Xc7BJBZJ1PGb7_mdlreEEFl8:186470)
    at mg.k.dg (vendor.js?v=4SAa8LuhjenIVeZBpu4Xc7BJBZJ1PGb7_mdlreEEFl8:186538)
    at K.k.pq (vendor.js?v=4SAa8LuhjenIVeZBpu4Xc7BJBZJ1PGb7_mdlreEEFl8:186552)
    at K.<anonymous> (vendor.js?v=4SAa8LuhjenIVeZBpu4Xc7BJBZJ1PGb7_mdlreEEFl8:186538)
    at ZoneDelegate.invokeTask (vendor.js?v=4SAa8LuhjenIVeZBpu4Xc7BJBZJ1PGb7_mdlreEEFl8:189060)
    at Object.onInvokeTask (vendor.js?v=4SAa8LuhjenIVeZBpu4Xc7BJBZJ1PGb7_mdlreEEFl8:5046)
    at ZoneDelegate.invokeTask (vendor.js?v=4SAa8LuhjenIVeZBpu4Xc7BJBZJ1PGb7_mdlreEEFl8:189059)
    at Zone.runTask (vendor.js?v=4SAa8LuhjenIVeZBpu4Xc7BJBZJ1PGb7_mdlreEEFl8:188827)
    at ZoneTask.invokeTask (vendor.js?v=4SAa8LuhjenIVeZBpu4Xc7BJBZJ1PGb7_mdlreEEFl8:189134)

Так выглядит мой модуль типов (\ src\ MyApp \ animated-clusters.d.ts):

declare module 'ol-ext/layer/AnimatedCluster';

Вот как я импортирую модуль в компонент карты:

import * as ol from 'openlayers';
import AnimatedCluster from 'ol-ext/layer/AnimatedCluster';

Вот код, который создает карту и добавляетслой AnimatedCluster к нему:

// create view
this.olView = new ol.View({
    center: [0, 0],
    zoom: 2,
    minZoom: 6.5,
    maxZoom: 20,
    extent: this.olExtent
});

// create map
this.olMap = new ol.Map({
    controls: [],
    target: this.element.nativeElement.firstElementChild,
    view: this.olView
});

// create layer
let source = new ol.source.TileArcGISRest({
                    url: 'http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer'
});

this.baseMapLayer = new ol.layer.Tile();
this.olMap.addLayer(this.baseMapLayer);

this.baseMapLayer.setSource(source);

// Cluster Source
let clusterSource = new ol.source.Cluster({
        distance: 40,
        source: new ol.source.Vector()
});

// Animated cluster layer - USING DEFAULT STYLE
let clusterLayer = new AnimatedCluster(
   {
      name: 'Cluster',
      source: clusterSource,
      animationDuration: 0,
      visible: true
    });

// **** THIS IS WHERE THE ERROR OCCURS
this.olMap.addLayer(clusterLayer);

// add 2000 features
let nb = 2000;
let ext = map.getView().calculateExtent(map.getSize());
let features = [];
 for (let i = 0; i < nb; ++i) {
    features[i] = new ol.Feature(new ol.geom.Point([ext[0] + (ext[2] - ext[0]) * Math.random(), ext[1] + (ext[3] - ext[1]) * Math.random()]));
    features[i].set('id', i);
}

clusterSource.getSource().addFeatures(features);

Я налил через stackoverflow, gis.stackexchange и остальную часть Интернета, но я не могу найти то, что мне не хватает / делает неправильно. Любой вклад будет принят с благодарностью.

...