This module renders a map component with some basic controls, based on Leaflet.
leaflet
leaflet-draw
esri-leaflet
import { LeafletMap } from '@acpaas-ui/ngx-leaflet';
Add the leaflet CSS styles to the src/angular.json
file.
"styles": [
"node_modules/leaflet/dist/leaflet.css",
"node_modules/leaflet-draw/dist/leaflet.draw.css"
]
Visit our documentation site for full how-to docs and guidelines
Name | Default value | Description |
---|---|---|
@Input() leafletMap: LeafletMap; |
- |
An instance of the Leaflet Map class. |
@Input() hasSidebar: boolean; |
false |
Define if the map has a sidebar. |
@Input() zoomLevel: number; |
19 |
Define how far to zoom in Leaflet Zoom Level |
Check the Leaflet API reference for Leaflet specific API's.
import { LeafletMap, baseMapWorldGray, baseMapAntwerp } from '@acpaas-ui/ngx-leaflet';
public leafletMap: LeafletMap = new LeafletMap({
zoom: 13, // default zoom level
center: [51.215, 4.425], // default center point
onAddPolygon: (layer) => {},
onAddLine: (layer) => {},
onEditFeature: (feature) => {},
});
public ngOnInit(): void {
this.leafletMap.onInit.subscribe(() => {
this.leafletMap.addTileLayer(baseMapWorldGray);
this.leafletMap.addTileLayer(baseMapAntwerp);
});
}
<aui-leaflet [leafletMap]="leafletMap" [hasSidebar]="true">
<div controls top left>
<aui-leaflet-drag-control></aui-leaflet-drag-control>
<aui-leaflet-draw-control></aui-leaflet-draw-control>
</div>
<div controls top right>
<aui-leaflet-fullscreen-control></aui-leaflet-fullscreen-control>
</div>
<div controls bottom left>
<aui-leaflet-locate-control zoomLevel="16"></aui-leaflet-locate-control>
</div>
<div controls bottom right>
<aui-leaflet-zoom-control></aui-leaflet-zoom-control>
</div>
<div>Content displayed in sidebar</div>
</aui-leaflet>
map
: The native leaflet map instanceaddTileLayer(layer: LeafletLayer)
: adds a tile layer to the map. (see leaflet docs)addFeatureLayer(config: any)
: adds a feature layer to the map. (see esri leaflet docs)addVectorLayer(config: LeafletLayer)
: adds a vector layer to the map. When passing the URL of the VectorTileServer, you don't need to suffix it with {z}/{y}/{x}.pbf, the following URL would work: https://tiles.arcgis.com/tiles/1KSVSmnHT2Lw9ea6/arcgis/rest/services/basemap_antwerpen_met_labels_20220218/VectorTileServer (Also the style that is provided under ../../VectorTileServer/resources/styles will be used by default.) See esri-leaflet-vector for more information.addGeoJSON(geoJson: any, config: any)
: add geoJSON to the map. (see leaflet docs)fitFeatureLayers(featureLayers)
: Fit the map bounds to the given feature layers.removeLayer(layer)
: removes a layerzoomIn()
: Zoom inzoomOut()
: Zoom outtoggleFullscreen()
: Toggle fullscreenlocate(zoomLevel)
: Start zooming to current location with an optional zoom levelsetView(center, zoom)
: Zoom to the given center and zoom values.addMarker(position, options)
: Adds a marker to the given position. (see leaflet docs)addHTMLMarker
: Adds an HTML marker to the given position.
Visit our Contribution Guidelines for more information on how to contribute.