我想创建一个函数,可以使用传单绘制组件选择多个标记,例如Mapmarker National Geographic 。我已经创建了一个工具栏,用户可以绘制折线、多边形、圆形、矩形并放置一个默认图标标记。
我已经研究过如何选择多个标记,但我还没有找到适合我的问题的解决方案。有人可以帮我创建这个功能吗?
这是我的代码:
import {Component, ViewEncapsulation} from '@angular/core';
import {MapService} from "./../../shared/leaflet/map.service";
import {GeocodingService} from "./../../shared/leaflet/geocoding.service";
import 'leaflet-map';
@Component({
encapsulation: ViewEncapsulation.None,
selector: 'maps',
templateUrl: './app/components/maps/maps.component.html',
styleUrls: [ './app/components/maps/maps.components.css' ],
providers: [MapService, GeocodingService]
})
export class MapsComponent {
constructor(private mapService: MapService, private geocoder: GeocodingService) {
}
ngOnInit(): void {
console.log('map component');
}
ngAfterViewInit() {
let map = L.map("map", {
zoomControl: false,
center: L.latLng(40.731253, -73.996139),
zoom: 12,
minZoom: 4,
maxZoom: 19,
layers: [this.mapService.baseMaps.OpenStreetMap]
});
L.control.zoom({ position: "topright" }).addTo(map);
L.control.scale().addTo(map);
this.mapService.map = map;
this.geocoder.getCurrentLocation()
.subscribe(
location => map.panTo([location.latitude, location.longitude]),
err => console.error(err)
);
var drawnItems = new L.FeatureGroup();
map.addLayer(drawnItems);
var drawControl = new L.Control.Draw({
edit: {
featureGroup: drawnItems,
}
});
map.addControl(drawControl);
map.on(L.Draw.Event.CREATED, function (e) {
var layer = e.layer;
drawnItems.addLayer(layer);
});
}
}