Angular 带棱角的重叠标记器4

Angular 带棱角的重叠标记器4,angular,leaflet,Angular,Leaflet,我正在尝试在我的angular 4应用程序中使用重叠标记器和传单。 该模块在普通js和angular 1中运行良好 但是当我试着用角4,它给了我一个错误 ERROR ReferenceError: OverlappingMarkerSpiderfier is not defined 当我安装重叠标记蜘蛛侠时,问题就解决了 npm i overlapping-marker-spiderfier 但随后又出现了另一个错误 Uncaught ReferenceError: google is no

我正在尝试在我的angular 4应用程序中使用重叠标记器和传单。 该模块在普通js和angular 1中运行良好

但是当我试着用角4,它给了我一个错误

ERROR ReferenceError: OverlappingMarkerSpiderfier is not defined
当我安装重叠标记蜘蛛侠时,问题就解决了

npm i overlapping-marker-spiderfier
但随后又出现了另一个错误

Uncaught ReferenceError: google is not defined

首先,我假设index.html中包含了带有google maps api的脚本标记

您是否安装了@types/googlemaps?如果没有,请尝试使用安装

npm install --save @types/googlemaps 
然后将以下导入包含到组件中

import {} from '@types/googlemaps';
declare var google: any;
@Component({
    ...
})   
我希望这能解决你的问题。如果没有,那么尝试在组件中声明它

import {} from '@types/googlemaps';
declare var google: any;
@Component({
    ...
})   

您可以使用for传单来解决此问题。您必须以类似于用于google map的OverlappingMarkersPiderFire的npm版本的方式更改文件

在开始时,将模块导出为

module.exports = this['OverlappingMarkerSpiderfierLeafLet'];

然后可以通过导入模块并像在html中一样使用它来使用它

我已经添加了类型和变量。这些错误是从node_modules folder中的osm.js文件抛出的,那么最终的javascript文件是什么样子的?