@dlr-eoc/map-maplibre
v15.0.0-next.1
Published
This is a angular module that exports a maplibre-gl component that can handle UKIS layers. See @dlr-eoc/services-layers for supported types.
Downloads
16
Maintainers
Readme
@dlr-eoc/map-maplibre
how to use this in a ukis-angular (@dlr-eoc/core-ui) project
For examples see demo maps
add the following dependencies to the package.json
- "@dlr-eoc/map-maplibre"
- "@dlr-eoc/layer-control" (optional)
- "@dlr-eoc/base-layers-raster" (optional)
add styles from maplibre to your application
e.g. in your apps style file
// styles.scss/styles.css
@import 'maplibre-gl/dist/maplibre-gl.css';
...
or in the angular config file
// angular.json
...
"styles": [
...
"node_modules/maplibre-gl/dist/maplibre-gl.css",
"src/styles.scss"
],
...
add the following to route-view.component.ts
import { MapMaplibreComponent } from '@dlr-eoc/map-maplibre';
import { LayerControlComponent } from '@dlr-eoc/layer-control';
...
standalone: true,
imports: [
...
MapMaplibreComponent,
LayerControlComponent
]
add the following to a route-view.component.html
<section class="content-area map-view">
<ukis-map-maplibre [mapState]="mapStateSvc" [layersSvc]="layerSvc"></ukis-map-maplibre>
</section>
add the following to a route-view.component.ts
import { LayersService } from '@dlr-eoc/services-layers';
import { MapStateService } from '@dlr-eoc/services-map-state';
import { MapMaplibreService } from '@dlr-eoc/map-maplibre';
import { OsmTileLayer, EocLitemap, BlueMarbleTile } from '@dlr-eoc/base-layers-raster';
constructor(
public layerSvc: LayersService,
public mapStateSvc: MapStateService,
public mapSvc: MapMaplibreService) { }
// add a OnInit Function
export class <MyComponent> implements OnInit...
ngOnInit() {
this.addBaselayers();
}
addBaselayers() {
const layers = [
new OsmTileLayer({
visible: false
}),
new EocLitemap({
visible: true
}),
new BlueMarbleTile({
visible: false
})
];
layers.map(l => this.layerSvc.addLayer(l, 'Baselayers'));
}
TODO
There are currently no popups implemented for layers
Some properties of Layers or Layergroups are currently not used. E.g.
Layer.continuousWorld
: this is not available in maplibreLayer.minResolution
: this is not available in maplibre use minZoomLayer.maxResolution
: this is not available in maplibre use maxZoomLayer.bbox
: Works only with some sources see https://maplibre.org/maplibre-style-spec/sources/#sources - boundsLayer.events
: TODO: https://maplibre.org/maplibre-gl-js/docs/API/classes/maplibregl.StyleLayer/ on/ofLayer.crossOrigin
: this is not available in maplibre
===
This library was generated with Angular CLI version 14.2.0.
Code scaffolding
Run ng generate component component-name --project map-maplibre
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module --project map-maplibre
.
Note: Don't forget to add
--project map-maplibre
or else it will be added to the default project in yourangular.json
file.
Build
Run ng build map-maplibre
to build the project. The build artifacts will be stored in the dist/
directory.
Publishing
After building your library with ng build map-maplibre
, go to the dist folder cd dist/map-maplibre
and run npm publish
.
Running unit tests
Run ng test map-maplibre
to execute the unit tests via Karma.
Further help
To get more help on the Angular CLI use ng help
or go check out the Angular CLI Overview and Command Reference page.