Google Maps MarkerCluster抛出:ERROR TypeError:赋值给常量变量



我目前正在使用Google地图javascript API和MarkerCluster作为整个Angular 6应用程序的一部分。在使用--prod设置编译应用程序后,我在加载地图数据时收到以下致命错误:

错误类型错误:赋值给常量变量。在C.cluster(4647bcce1c4da198696d2d.js:1:59803((4647bcce1c4da198696d2d.js:1:556646(在z。计算(4647 bcce1c4da198696d2d.js:1:65272(,位于markerCluster.map.render(4647 bcce1c4da198696d2d.js:1:68639(markerClusterer.map.addMarkers(46.47bcce1c4da198696d2d.js:1:68161(
在e._next(4647 bcce1c4da198696d2d.js:1:71953(在e.__tryOrUnsb(main.256af8f39dd3b7bd3744.js:1:534499(在e.next(main.256af8f39dd3b7bd3744.js:1:533644(在e._next(主256af8f39dd3b7bd3744.js:1:532696(

在不使用--prod选项的情况下使用ng serve或ng build时,一切都很好。目标设置是tsconfig.json、tscofig.app.json和tsconfig.spec.json中的es5。

角度分量中显示地图的方法如下:

mapInitializer() {
this.apiMarkers = [];
this.coordinates = new google.maps.LatLng(this.lat, this.lng);
this.mapOptions = {
center: this.coordinates,
zoom: 8,
gestureHandling: 'cooperative',
fullscreenControl: true,
},

this.map = new google.maps.Map(this.gmap.nativeElement, this.mapOptions);
this.markerClusterer = new MarkerClusterer({map: this.map});
}
createMapMarkers(){            
//clear before rendering new
this.markerClusterer.clearMarkers();
// reset zoom level for clusterer (interger values only)
this.map.setZoom(8);

//creating a new info window with markers info
var infoWindow = new google.maps.InfoWindow({
content: "",
disableAutoPan: false,
});
var markers = [];
this.data.forEach((siteInfo )=> {
if(siteInfo.lat && siteInfo.long){
let label = siteInfo.Address;
let HazId = siteInfo.HazId;
let marker = new google.maps.Marker({
position: new google.maps.LatLng(siteInfo.lat, siteInfo.long),
title: siteInfo.Address,
icon: icon[siteInfo.Color], 
...siteInfo
});
//Adding marker to markers array
markers.push(marker);
}
})

// add markers to map
this.setMapBounds();
this.markerClusterer.addMarkers(markers);
}

在AfterViewInit((方法内部调用mapInitializer((,在从服务器检索数据后调用createMapMarkers((。如果我将MarkerCluster算法更改为GridAlgorithm,错误就会消失;然而,默认算法的性能要好得多。

当前使用以下版本:"谷歌地图/谷歌地图服务js":"3.2.5";,"googlemaps/markercluster":"1.0.22";,

任何关于如何有效解决该错误的意见都将受到赞赏。

提前感谢!

我今天在一个非Angular项目中遇到了同样的错误。我的生产构建设置使用UglifyJsPlugin压缩代码,并关闭unused设置为我修复了这个问题:

new UglifyJsPlugin({
uglifyOptions: {
ecma: 5,
compress: {
unused: false, // <-- Set this to false
},
},
}),

最新更新