Карты Angular 8 и Google с маркерной кластеризацией - ошибка типа markercluster не является конструктором - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь начать работу с Google Maps и Маркерной кластеризацией (изначально, то есть без использования AGM). Карта загружается все отлично, и я добавил несколько маркеров на карту. Однако при попытке добавить кластерный маркер я получаю ошибку типа. Что гласит:

ОШИБКА TypeError: "_google_markerclusterer__WEBPACK_IMPORTED_MODULE_7__ не является конструктором"

Я установил кластер маркеров, используя npm, например:

npm i @google/markerclusterer --save-dev

Затем добавил следующее в мой компонент в верхней части файла с моими другими импортерами, которые обрабатывают маркеры / кластеризацию:

import * as MarkerClusterer from "@google/markerclusterer";

Затем в моем классе я использую это, как говорит пример:

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'}
            );

Я попытался удалить и переустановить кластерный маркер google, а также попытался переключиться на кластерный маркер плюс, но проблема все та же.

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Добавьте markerclusterer в угловую сборку и объявите MarkerClusterer в файле компонента.

В angular.json

"scripts": [
    "node_modules/@google/markerclusterer/dist/markerclusterer.min.js"
 ]

В component.ts

declare var MarkerClusterer:any;

Примечание. Допри загрузке markerclusterer.js убедитесь, что вы загрузили скрипт Google Maps.

0 голосов
/ 24 октября 2019

Мне удалось решить эту проблему, изменив следующий импорт.

Измените это:

import * as MarkerClusterer from '@google/markerclusterer';

На:

import MarkerClusterer from '@google/markerclusterer';
...