typescript - Angular 8 och Google Maps med markörklustring - Typfel markercluster är inte en konstruktör
Jag försöker komma igång med Google Maps och Marker Clustering (naturligt, alltså utan att använda AGM). Kartan laddas utan problem och jag har lagt till flera markörer på kartan. Men när jag försöker lägga till marker clusterer får jag ett typfel. Det lyder:
FEL TypeError: "_google_markerclusterer__WEBPACK_IMPORTED_MODULE_7__ är inte en konstruktor"
Jag har installerat marker clusterer med npm på följande sätt:
npm i @google/markerclusterer --save-dev
Lade sedan till följande i min komponent högst upp i filen tillsammans med mina andra importeringar som hanterar markörerna/klustringen:
import * as MarkerClusterer from "@google/markerclusterer";
Sedan använder jag det i min klass som exemplet säger att:
const gmarkers = [];
_.each(this.venueData.venues, (venue) => {
const mPosition = new google.maps.LatLng(venue.latlng.lat, venue.latlng.lng);
const marker = new google.maps.Marker({position: mPosition, map: this.map});
gmarkers.push(marker);
});
const test = new MarkerClusterer(this.map, gmarkers,
{imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'}
);
Jag har försökt avinstallera och installera om Google Marker Clusterer samt försökt byta till Marker Clusterer Plus men samma problem kvarstår.
Svar #1
Jag lyckades lösa detta genom att ändra följande import.
Ändra detta:
import * as MarkerClusterer from '@google/markerclusterer';
Till :
import MarkerClusterer from '@google/markerclusterer';
Svar #2
Lägg till markerclusterer i Angular-byggnaden och deklarera MarkerClusterer i komponentfilen.
I angular.json
"scripts": [
"node_modules/@google/markerclusterer/dist/markerclusterer.min.js"
]
I component.ts
declare var MarkerClusterer:any;
Observera: Innan du laddar markerclusterer.js, se till att du laddar Google Maps-skriptet.
