如何在VS Code IntelliSense中显示Leaflet Marker-Cluster Freezable方法

时间:2018-05-25 11:36:27

标签: angular typescript leaflet leaflet.markercluster

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

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

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

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

2 个答案:

答案 0 :(得分: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项目配置中引用此定义文件。

答案 1 :(得分: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'