Google maps - InvalidValueError: setMap: не экземпляр карты - PullRequest
0 голосов
/ 26 октября 2019

Мой код выглядит следующим образом:

var mapLatLng = new google.maps.LatLng(27, -83)
 var mapOptions = {
 zoom: 8,
 center: mapLatLng,
 draggable: true,
 mapTypeId: google.maps.MapTypeId.TERRAIN,
 gestureHandling: ‘cooperative’,
 minZoom: 7
 }

 this.map = new google.maps.Map(document.getElementById(‘map_canvas’), mapOptions);

 this.drawingManager = new google.maps.drawing.DrawingManager({
 drawingMode: google.maps.drawing.OverlayType.POLYGON,
 map: this.map
 )}

в моем html-файле

<div id =“map_canvas”></div>

Я знаю, в чем заключается проблема, но я не уверен, как ее решить. Мне нужно использовать служебный класс, который импортирует API карт Google с библиотекой мест. Однако в другом служебном классе я должен импортировать библиотеки чертежей и геометрии из API-интерфейсов Google Maps.

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

Единственный способ заставить это работать - дважды импортировать API Google Maps. Проблема в том, что я получаю эту ошибку setMap из заголовка. Можно ли как-то обойти эту проблему, импортируя API Google Maps дважды?

1 Ответ

1 голос
/ 31 октября 2019

Повторный вызов API Карт может привести к ошибкам, таким как этот JS:

Вы включили API Карт Google на этой странице несколько раз. Это может привести к непредвиденным ошибкам.

Например, см. "Вы включили Google Maps API несколько раз на этой странице" Ошибка

Вы должны иметь возможность изменитьваш существующий вызов API JavaScript для включения дополнительных библиотек. Например, вызовите API только один раз и включите все эти библиотеки в запрос следующим образом:

https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places,drawing,geometry

Надеюсь, это поможет!

...