1.1.4 • Published 11 months ago

@geosdi/ngx-leaflet-layers-plugin v1.1.4

Weekly downloads
-
License
MIT
Repository
-
Last release
11 months ago

NgxLeafletLayers

This library was generated with Angular CLI version 13.0.0.

General information

  • Service to create a store of BaseLayer interface for switching on a leaflet map

Installation

npm i @geosdi/ngx-leaflet-layers-plugin --save

It depends on :

"@angular/common": ">=12.0.0",
"@angular/core": ">=12.0.0",
"typescript": ">=4.0.0",
"leaflet": ">=1.7.1",
"leaflet-bing-layer": ">=3.3.0",
"rxjs": ">= 7.0.0"

Usage

BaseLayer interface

export interface BaseLayer {
 key: string;
 label: string;
 layer: any;
 logo_src: string;
 logo_mobile_src: string;
 contrast: string;
}
keylabellayerlogo_srclogo_mobile_srclogo_mobile_src
OPEN STREET MAPOPEN_STREET_MAPOpenStreetMapL.tileLayer('https://{s}.tile.osm.org/{z}/{x}/{y}.png', {maxZoom: 18,attribution: 'OpenStreetMap',id: 'OPEN_STREET_MAP'})logo_black.pnglogo_black_mobile.png#000
BING AERIALBING_AERIALBing Aerial Layer(L as any).tileLayer.bing({maxZoom: 18,bingMapsKey: bingKey,attribution: 'Bing Aerial Layer',imagerySet: 'Aerial',id: 'BING_AERIAL'})logo_white.pnglogo_white_mobile.png#fff
BING ROAD LAYERBING_ROAD_LAYERBing Road Layer(L as any).tileLayer.bing({maxZoom: 18,bingMapsKey: bingKey,attribution: 'Bing Road Layer',imagerySet: 'Road',id: 'BING_ROAD_LAYER'})logo_black.pnglogo_black_mobile.png#000
BING HYBRIDBING_HYBRIDBing Road Layer(L as any).tileLayer.bing({maxZoom: 18,bingMapsKey: bingKey,imagerySet: 'AerialWithLabels',attribution: 'Bing Hybrid Layer',id: 'BING_HYBRID'})logo_white.pnglogo_white_mobile.png#fff
METACARTAMETACARTAMetacartaL.tileLayer.wms('http://vmap0.tiles.osgeo.org/wms/vmap0', {maxZoom: 18,layers: 'basic',format: 'image/png',attribution: 'Metacarta', transparent: true,crs: L.CRS.EPSG4326,id: 'METACARTA'})logo_black.pnglogo_black_mobile.png#000
GEOSDI_BASEGEOSDI_BASEgeoSdiL.tileLayer.wms('http://dpc.geosdi.org/geoserver/wms', {maxZoom: 18,layers: 'Mappa_di_Base',format: 'image/png',attribution: 'geoSdi',transparent: true,crs: L.CRS.EPSG4326,id: 'GEOSDI_BASE'})logo_black.pnglogo_black_mobile.png#000
GEOSDI_NULL_BASEGEOSDI_NULL_BASEgeoSdi No MapL.tileLayer.wms('http://dpc.geosdi.org/geoserver/wms', {maxZoom: 18,layers: 'StratiDiBase:nullMap',format: 'image/png',attribution: 'geoSdi No Map',transparent: true,id: 'GEOSDI_NULL_BASE'})logo_black.pnglogo_black_mobile.png#000
EMPTYEMPTYEmptyLayer (c) geoSDIL.tileLayer.wms('')logo_black.pnglogo_black_mobile.png#000
GOOGLE_SATELLITEGOOGLE_SATELLITEGoogle SatelliteL.tileLayer('http://{s}.google.com/vt/lyrs=s&x={x}&y={y}&z={z}', {maxZoom: 20,attribution: 'Google Satellite',subdomains: 'mt0', 'mt1', 'mt2', 'mt3',id: 'GOOGLE_SATELLITE'})logo_white.pnglogo_white_mobile.png#fff
GOOGLE_NORMALGOOGLE_NORMALGoogle NormalL.tileLayer('http://{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z}', {maxZoom: 20,attribution: 'Google Normal',subdomains: 'mt0', 'mt1', 'mt2', 'mt3',id: 'GOOGLE_NORMAL'logo_black.pnglogo_black_mobile.png#000
GOOGLE_HYBRIDGOOGLE_HYBRIDGoogle HybridL.tileLayer('http://{s}.google.com/vt/lyrs=y,h&x={x}&y={y}&z={z}', {maxZoom: 20,attribution: 'Google Hybrid',subdomains: 'mt0', 'mt1', 'mt2', 'mt3',id: 'GOOGLE_HYBRID'})logo_white.pnglogo_white.png#fff
ORTHO_MAPORTHO_MAPOrthoMapL.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}', {maxZoom: 18,attribution: Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping,Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community,id: 'ORTHO_MAP'})logo_white.pnglogo_white.png#fff
DARK_BASE_MAPDARK_BASE_MAPDarkBaseMapL.tileLayer('https://cartodb-basemaps-{s}.global.ssl.fastly.net/dark_all/{z}/{x}/{y}.png', {maxZoom: 18,attribution: 'Map tiles by Carto',id: 'DARK_BASE_MAP'})logo_white.pnglogo_white.png#fff

Here's an example to create a list of base maps, that you can pass to Leaflet Control or a custom control, and add OpenStreeMap, as default base layer, to Map.

import { Injectable } from '@angular/core'; 

@Injectable({
 providedIn: 'root'
})
export class BootstrapService {


   constructor(private ngxLeafletLayersPluginService: NgxLeafletLayersPluginService) {
   }

  public initBaseMaps() {
   this.ngxLeafletLayersPluginService
     .withBaseLayers([BaseLayerEnum.OPEN_STREET_MAP,
     BaseLayerEnum.GOOGLE_SATELLITE, BaseLayerEnum.GOOGLE_NORMAL, BaseLayerEnum.GOOGLE_HYBRID,
     BaseLayerEnum.BING_HYBRID, BaseLayerEnum.BING_ROAD_LAYER, BaseLayerEnum.BING_AERIAL,
     BaseLayerEnum.ORTHO_MAP, BaseLayerEnum.DARK_BASE_MAP])
     .withDefaultBaseLayer(BaseLayerEnum.OPEN_STREET_MAP)
     .withMap(map)
     .build();
   }

}

Methods

Methodaction
changeBaseLayer(type: string or BaseLayerEnum, force: boolean)change map base layer, force equals false delegates the changing of layer to leaflet
currentBaseLayer()return current base layer
getAllBaseLayers()returns all the base layer create
getLogo()returns image for mobile or desktop. The images must be put in assets folder of your app
createLayer()create single base layer

Events

EventAction
subjectNotifyLogo$return the image depend on base map
subjectNotifyContrast$return constrast depend on base map
1.1.4

11 months ago

1.1.3

11 months ago

1.1.2

11 months ago

1.1.1

12 months ago

1.1.0

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago