Вот как я создаю карту и изменяю параметр управления рисованием с помощью кнопки: сначала я объявляю две переменные: одну для карты и одну для DrawingManager
theMap: any;
drawingManager: any;
, когда я создаю карту вngOnInit и вызовите DrawingManager:
this.theMap = this.initMap(lat, lng);
if(this.theMap) {
this.initDrawingManager(this.theMap)
}
. Две функции для создания карты и инициализации менеджера чертежей:
initMap(lat, lng) {
let mapProp = {
center: new google.maps.LatLng(lat, lng),
zoom: 16,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
let map = new google.maps.Map(document.getElementById("map"), mapProp);
let marker = new google.maps.Marker({
icon: 'https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png',
animation: google.maps.Animation.DROP,
position: { lat: lat, lng: lng },
map: map
})
return map;
}
и
initDrawingManager(map) {
this.drawingManager = new google.maps.drawing.DrawingManager({
// drawingMode: google.maps.drawing.OverlayType.MARKER,
drawingControl: false,
drawingControlOptions: {
position: google.maps.ControlPosition.TOP_CENTER,
drawingModes: ['circle', 'polygon']
},
// markerOptions: {icon: 'https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png'},
polygonOptions: {
draggable: true,
editable: true
},
circleOptions: {
// fillColor: '#ffff00',
// fillOpacity: 1,
// strokeWeight: 5,
draggable: true,
clickable: true,
editable: true,
zIndex: 1
}
});
this.drawingManager.setMap(map);
}
Функцияизменяет параметр DrawingControl:
change() {
this.drawingManager.setOptions({
drawingControl: true
});
}
и HTML-код:
<button
(click)="change()">
change
</button>
При нажатии кнопки на карте появятся элементы управления рисованием.
Наша разница в том, что я создаю карту в ngOnInit.