@ -929,6 +929,7 @@ export const defaultMapActionButtonSettings: MapActionButtonSettings = {
}
export enum MapProvider {
openfreemap = 'openfreemap' ,
openstreet = 'openstreet' ,
google = 'google' ,
here = 'here' ,
@ -940,6 +941,7 @@ export const mapProviders = Object.keys(MapProvider) as MapProvider[];
export const mapProviderTranslationMap = new Map < MapProvider , string > (
[
[ MapProvider . openfreemap , 'widgets.maps.layer.provider.openfreemap.title' ] ,
[ MapProvider . openstreet , 'widgets.maps.layer.provider.openstreet.title' ] ,
[ MapProvider . google , 'widgets.maps.layer.provider.google.title' ] ,
[ MapProvider . here , 'widgets.maps.layer.provider.here.title' ] ,
@ -975,6 +977,9 @@ export const mapLayerValid = (layer: MapLayerSettings): boolean => {
return false ;
}
switch ( layer . provider ) {
case MapProvider . openfreemap :
const openFreeMapLayer = layer as OpenFreeMapLayerSettings ;
return ! ! openFreeMapLayer . layerType ;
case MapProvider . openstreet :
const openStreetLayer = layer as OpenStreetMapLayerSettings ;
return ! ! openStreetLayer . layerType ;
@ -1008,6 +1013,9 @@ export const defaultLayerTitle = (layer: MapLayerSettings): string => {
return null ;
}
switch ( layer . provider ) {
case MapProvider . openfreemap :
const ofmLayer = layer as OpenFreeMapLayerSettings ;
return openFreeMapStyleTranslationMap . get ( ofmLayer . layerType ) ;
case MapProvider . openstreet :
const openStreetLayer = layer as OpenStreetMapLayerSettings ;
return openStreetMapLayerTranslationMap . get ( openStreetLayer . layerType ) ;
@ -1059,6 +1067,32 @@ export const defaultOpenStreetMapLayerSettings: OpenStreetMapLayerSettings = {
layerType : OpenStreetLayerType.openStreetMapnik
}
export enum OpenFreeMapStyleType {
bright = 'bright' ,
positron = 'positron' ,
liberty = 'liberty'
}
export const openFreeMapStyleTypes = Object . values ( OpenFreeMapStyleType ) as OpenFreeMapStyleType [ ] ;
export const openFreeMapStyleTranslationMap = new Map < OpenFreeMapStyleType , string > (
[
[ OpenFreeMapStyleType . liberty , 'widgets.maps.layer.provider.openfreemap.liberty' ] ,
[ OpenFreeMapStyleType . bright , 'widgets.maps.layer.provider.openfreemap.bright' ] ,
[ OpenFreeMapStyleType . positron , 'widgets.maps.layer.provider.openfreemap.positron' ]
]
) ;
export interface OpenFreeMapLayerSettings extends MapLayerSettings {
provider : MapProvider.openfreemap ;
layerType : OpenFreeMapStyleType ;
}
export const defaultOpenFreeMapLayerSettings : OpenFreeMapLayerSettings = {
provider : MapProvider.openfreemap ,
layerType : OpenFreeMapStyleType.bright
}
export enum GoogleLayerType {
roadmap = 'roadmap' ,
satellite = 'satellite' ,
@ -1148,6 +1182,8 @@ export const defaultTencentMapLayerSettings: TencentMapLayerSettings = {
export interface CustomMapLayerSettings extends MapLayerSettings {
provider : MapProvider.custom ;
tileUrl : string ;
vectorTiles? : boolean ;
customAttribution? : string ;
}
export const defaultCustomMapLayerSettings : CustomMapLayerSettings = {
@ -1157,6 +1193,8 @@ export const defaultCustomMapLayerSettings: CustomMapLayerSettings = {
export const defaultMapLayerSettings = ( provider : MapProvider ) : MapLayerSettings = > {
switch ( provider ) {
case MapProvider . openfreemap :
return defaultOpenFreeMapLayerSettings ;
case MapProvider . openstreet :
return defaultOpenStreetMapLayerSettings ;
case MapProvider . google :
@ -1173,9 +1211,9 @@ export const defaultMapLayerSettings = (provider: MapProvider): MapLayerSettings
export const defaultMapLayers : MapLayerSettings [ ] = [
{
label : '{i18n:widgets.maps.layer.roadmap}' ,
provider : MapProvider.openstreet ,
layerType : OpenStreetLayerType.openStreetMapnik ,
} as OpenStreet MapLayerSettings ,
provider : MapProvider.openfreemap ,
layerType : OpenFreeMapStyleType.bright ,
} as OpenFree MapLayerSettings ,
{
label : '{i18n:widgets.maps.layer.satellite}' ,
provider : MapProvider.openstreet ,