2

我正在开发一个使用 Leaflet 地图服务的 Angular 项目。我遇到了集群问题。我想切换集群,为此我找到了一个包,其中包含启用/禁用集群功能的方法:Leaflet.MarkerCluster.Freezable

我已按照软件包安装说明进行操作:

  • npm install leaflet.markercluster.freezable --save
    将它安装在我的node_modules文件夹下并更新package.json(安装成功)
  • 现在,如果我尝试import 'leaflet.markercluster.freezable';在我的Type-Script 文件中,我的 VS 代码不会在 IntelliSense 功能中显示包中的方法。

我不明白出了什么问题(我认为导入可能有问题)。

4

2 回答 2

2

不幸的是,Leaflet.MarkerCluster.Freezable 库还没有可用的类型。

您应该能够自己编写它们,如下所示:

Leaflet.markercluster.freezable.d.ts

import * as L from 'leaflet';

declare module 'leaflet' {
  class MarkerClusterGroup {
    freezeAtZoom(frozenZoom?: number | boolean | 'max' | 'maxKeepSpiderfy'): this;

    unfreeze(): this;

    disableClustering(): this;

    disableClusteringKeepSpiderfy(): this;

    enableClustering(): this;
  }
}

然后在你的 TypeScript 项目配置中引用这个定义文件。

于 2018-05-25T12:21:13.187 回答
0

请在脚本部分中将leaflet.markercluster.freezable.js 文件路径添加到您的angular cli json文件中,如下所示

..\node_modules\leaflet.markercluster.freezable\dist\leaflet.markercluster.freezable.js

"scripts": [
        "../node_modules/angular-ui-grid/ui-grid.min.js",
   "../node_modules/leaflet.markercluster.freezable/dist/leaflet.markercluster.freezable.js"
      ],

然后我认为它会起作用 import 'leaflet.markercluster.freezable'

于 2018-05-25T11:44:28.440 回答