Skip to content

Basemap styles cleanup #95

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
May 28, 2025
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -178,90 +178,73 @@ fun parseAnimationCurve(value: String): AnimationCurve {
}
}

fun BasemapStyle.getJsonValue(): String? {
return when (this) {
BasemapStyle.ArcGISImagery -> "arcgisImagery"
BasemapStyle.ArcGISImageryStandard -> "arcgisImageryStandard"
BasemapStyle.ArcGISImageryLabels -> "arcgisImageryLabels"
BasemapStyle.ArcGISLightGray -> "arcgisLightGray"
BasemapStyle.ArcGISLightGray -> null
BasemapStyle.ArcGISLightGrayLabels -> null
BasemapStyle.ArcGISDarkGray -> "arcgisDarkGray"
BasemapStyle.ArcGISDarkGrayBase -> null
BasemapStyle.ArcGISDarkGrayLabels -> null
BasemapStyle.ArcGISNavigation -> "arcgisNavigation"
BasemapStyle.ArcGISNavigationNight -> "arcgisNavigationNight"
BasemapStyle.ArcGISStreets -> "arcgisStreets"
BasemapStyle.ArcGISStreetsNight -> "arcgisStreetsNight"
BasemapStyle.OsmStreetsRelief -> "arcgisStreetsRelief"
BasemapStyle.ArcGISTopographic -> "arcgisTopographic"
BasemapStyle.ArcGISOceans -> "arcgisOceans"
BasemapStyle.ArcGISOceansBase -> null
BasemapStyle.ArcGISOceansLabels -> null
BasemapStyle.ArcGISTerrain -> "arcgisTerrain"
BasemapStyle.ArcGISTerrainBase -> null
BasemapStyle.ArcGISTerrainDetail -> null
BasemapStyle.ArcGISCommunity -> "arcgisCommunity"
BasemapStyle.ArcGISChartedTerritory -> "arcgisChartedTerritory"
BasemapStyle.ArcGISColoredPencil -> "arcgisColoredPencil"
BasemapStyle.ArcGISNova -> "arcgisNova"
BasemapStyle.ArcGISModernAntique -> "arcgisModernAntique"
BasemapStyle.ArcGISMidcentury -> "arcgisMidcentury"
BasemapStyle.ArcGISNewspaper -> "arcgisNewspaper"
BasemapStyle.ArcGISHillshadeLight -> "arcgisHillshadeLight"
BasemapStyle.ArcGISHillshadeDark -> "arcgisHillshadeDark"
BasemapStyle.ArcGISStreetsReliefBase -> null
BasemapStyle.ArcGISTopographicBase -> null
BasemapStyle.ArcGISChartedTerritoryBase -> null
BasemapStyle.ArcGISModernAntiqueBase -> null
BasemapStyle.OsmStandard -> "osmStandard"
BasemapStyle.OsmStandardRelief -> "osmStandardRelief"
BasemapStyle.OsmStandardReliefBase -> null
BasemapStyle.OsmStreets -> "osmStreets"
BasemapStyle.OsmStreetsRelief -> "osmStreetsRelief"
BasemapStyle.OsmStreetsReliefBase -> null
BasemapStyle.OsmLightGray -> "osmLightGray"
BasemapStyle.OsmLightGrayBase -> null
BasemapStyle.OsmLightGrayLabels -> null
BasemapStyle.OsmDarkGray -> "osmDarkGray"
BasemapStyle.OsmDarkGrayBase -> null
BasemapStyle.OsmDarkGrayLabels -> null
BasemapStyle.OsmHybrid -> "hybrid"
else -> null
}
private val basemapStyleMapping = mapOf(
BasemapStyle.ArcGISImagery to "arcgisImagery",
BasemapStyle.ArcGISImageryStandard to "arcgisImageryStandard",
BasemapStyle.ArcGISImageryLabels to "arcgisImageryLabels",
BasemapStyle.ArcGISLightGray to "arcgisLightGray",
BasemapStyle.ArcGISLightGrayBase to "arcgisLightGrayBase",
BasemapStyle.ArcGISLightGrayLabels to "arcgisLightGrayLabels",
BasemapStyle.ArcGISDarkGray to "arcgisDarkGray",
BasemapStyle.ArcGISDarkGrayBase to "arcgisDarkGrayBase",
BasemapStyle.ArcGISDarkGrayLabels to "arcgisDarkGrayLabels",
BasemapStyle.ArcGISNavigation to "arcgisNavigation",
BasemapStyle.ArcGISNavigationNight to "arcgisNavigationNight",
BasemapStyle.ArcGISStreets to "arcgisStreets",
BasemapStyle.ArcGISStreetsRelief to "arcgisStreetsRelief",
BasemapStyle.ArcGISStreetsReliefBase to "arcgisStreetsReliefBase",
BasemapStyle.ArcGISStreetsNight to "arcgisStreetsNight",
BasemapStyle.ArcGISTopographic to "arcgisTopographic",
BasemapStyle.ArcGISTopographicBase to "arcgisTopographicBase",
BasemapStyle.ArcGISOceans to "arcgisOceans",
BasemapStyle.ArcGISOceansBase to "arcgisOceansBase",
BasemapStyle.ArcGISOceansLabels to "arcgisOceansLabels",
BasemapStyle.ArcGISTerrain to "arcgisTerrain",
BasemapStyle.ArcGISTerrainBase to "arcgisTerrainBase",
BasemapStyle.ArcGISTerrainDetail to "arcgisTerrainDetail",
BasemapStyle.ArcGISCommunity to "arcgisCommunity",
BasemapStyle.ArcGISChartedTerritory to "arcgisChartedTerritory",
BasemapStyle.ArcGISChartedTerritoryBase to "arcgisChartedTerritoryBase",
BasemapStyle.ArcGISColoredPencil to "arcgisColoredPencil",
BasemapStyle.ArcGISNova to "arcgisNova",
BasemapStyle.ArcGISModernAntique to "arcgisModernAntique",
BasemapStyle.ArcGISModernAntiqueBase to "arcgisModernAntiqueBase",
BasemapStyle.ArcGISMidcentury to "arcgisMidcentury",
BasemapStyle.ArcGISNewspaper to "arcgisNewspaper",
BasemapStyle.ArcGISHillshadeLight to "arcgisHillshadeLight",
BasemapStyle.ArcGISHillshadeDark to "arcgisHillshadeDark",
BasemapStyle.ArcGISOutdoor to "arcgisOutdoor",
BasemapStyle.ArcGISHumanGeography to "arcgisHumanGeography",
BasemapStyle.ArcGISHumanGeographyBase to "arcgisHumanGeographyBase",
BasemapStyle.ArcGISHumanGeographyDetail to "arcgisHumanGeographyDetail",
BasemapStyle.ArcGISHumanGeographyLabels to "arcgisHumanGeographyLabels",
BasemapStyle.ArcGISHumanGeographyDark to "arcgisHumanGeographyDark",
BasemapStyle.ArcGISHumanGeographyDarkBase to "arcgisHumanGeographyDarkBase",
BasemapStyle.ArcGISHumanGeographyDarkDetail to "arcgisHumanGeographyDarkDetail",
BasemapStyle.ArcGISHumanGeographyDarkLabels to "arcgisHumanGeographyDarkLabels",
BasemapStyle.OsmStandard to "osmStandard",
BasemapStyle.OsmStandardRelief to "osmStandardRelief",
BasemapStyle.OsmStandardReliefBase to "osmStandardReliefBase",
BasemapStyle.OsmStreets to "osmStreets",
BasemapStyle.OsmStreetsRelief to "osmStreetsRelief",
BasemapStyle.OsmStreetsReliefBase to "osmStreetsReliefBase",
BasemapStyle.OsmLightGray to "osmLightGray",
BasemapStyle.OsmLightGrayBase to "osmLightGrayBase",
BasemapStyle.OsmLightGrayLabels to "osmLightGrayLabels",
BasemapStyle.OsmDarkGray to "osmDarkGray",
BasemapStyle.OsmDarkGrayBase to "osmDarkGrayBase",
BasemapStyle.OsmDarkGrayLabels to "osmDarkGrayLabels",
BasemapStyle.OsmBlueprint to "osmBlueprint",
BasemapStyle.OsmHybrid to "osmHybrid",
BasemapStyle.OsmHybridDetail to "osmHybridDetail",
BasemapStyle.OsmNavigation to "osmNavigation",
BasemapStyle.OsmNavigationDark to "osmNavigationDark"
)

fun BasemapStyle.getJsonValue(): String {
return basemapStyleMapping[this]!!
}

fun parseBasemapStyle(value: String): BasemapStyle? {
return when (value) {
"arcgisImagery" -> BasemapStyle.ArcGISImagery
"arcgisImageryStandard" -> BasemapStyle.ArcGISImageryStandard
"arcgisImageryLabels" -> BasemapStyle.ArcGISImageryLabels
"arcgisLightGray" -> BasemapStyle.ArcGISLightGray
"arcgisDarkGray" -> BasemapStyle.ArcGISDarkGray
"arcgisNavigation" -> BasemapStyle.ArcGISNavigation
"arcgisNavigationNight" -> BasemapStyle.ArcGISNavigationNight
"arcgisStreets" -> BasemapStyle.ArcGISStreets
"arcgisStreetsNight" -> BasemapStyle.ArcGISStreetsNight
"arcgisStreetsRelief" -> BasemapStyle.OsmStreetsRelief
"arcgisTopographic" -> BasemapStyle.ArcGISTopographic
"arcgisOceans" -> BasemapStyle.ArcGISOceans
"arcgisTerrain" -> BasemapStyle.ArcGISTerrain
"arcgisCommunity" -> BasemapStyle.ArcGISCommunity
"arcgisChartedTerritory" -> BasemapStyle.ArcGISChartedTerritory
"arcgisColoredPencil" -> BasemapStyle.ArcGISColoredPencil
"arcgisNova" -> BasemapStyle.ArcGISNova
"arcgisModernAntique" -> BasemapStyle.ArcGISModernAntique
"arcgisMidcentury" -> BasemapStyle.ArcGISMidcentury
"arcgisNewspaper" -> BasemapStyle.ArcGISNewspaper
"arcgisHillshadeLight" -> BasemapStyle.ArcGISHillshadeLight
"arcgisHillshadeDark" -> BasemapStyle.ArcGISHillshadeDark
"osmStandard" -> BasemapStyle.OsmStandard
"osmStandardRelief" -> BasemapStyle.OsmStandardRelief
"osmStreets" -> BasemapStyle.OsmStreets
"osmStreetsRelief" -> BasemapStyle.OsmStreetsRelief
"osmLightGray" -> BasemapStyle.OsmLightGray
"osmDarkGray" -> BasemapStyle.OsmDarkGray
"hybrid" -> BasemapStyle.OsmHybrid
else -> null
}
return basemapStyleMapping.entries.firstOrNull { it.value == value }?.key
}
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,9 @@ extension Basemap.Style: CaseIterable {
.arcGISStreets,
.arcGISStreetsNight,
.arcGISStreetsRelief,
.arcGISStreetsReliefBase,
.arcGISTopographic,
.arcGISTopographicBase,
.arcGISOceans,
.arcGISOceansBase,
.arcGISOceansLabels,
Expand All @@ -624,29 +626,41 @@ extension Basemap.Style: CaseIterable {
.arcGISTerrainDetail,
.arcGISCommunity,
.arcGISChartedTerritory,
.arcGISChartedTerritoryBase,
.arcGISColoredPencil,
.arcGISNova,
.arcGISModernAntique,
.arcGISModernAntiqueBase,
.arcGISMidcentury,
.arcGISNewspaper,
.arcGISHillshadeLight,
.arcGISHillshadeDark,
.arcGISStreetsReliefBase,
.arcGISTopographicBase,
.arcGISChartedTerritoryBase,
.arcGISModernAntiqueBase,
.arcGISOutdoor,
.arcGISHumanGeography,
.arcGISHumanGeographyBase,
.arcGISHumanGeographyDetail,
.arcGISHumanGeographyLabels,
.arcGISHumanGeographyDark,
.arcGISHumanGeographyDarkBase,
.arcGISHumanGeographyDarkDetail,
.arcGISHumanGeographyDarkLabels,
.osmStandard,
.osmStandardRelief,
.osmStandardReliefBase,
.osmStreets,
.osmStreetsRelief,
.osmStreetsReliefBase,
.osmLightGray,
.osmLightGrayBase,
.osmLightGrayLabels,
.osmDarkGray,
.osmDarkGrayBase,
.osmDarkGrayLabels,
.osmStreetsReliefBase
.osmBlueprint,
.osmHybrid,
.osmHybridDetail,
.osmNavigation,
.osmNavigationDark,
]
}
}
Expand All @@ -663,49 +677,57 @@ extension Basemap.Style {
case .arcGISLightGray:
return "arcgisLightGray"
case .arcGISLightGrayBase:
return "arcgisDarkGray"
return "arcgisLightGrayBase"
case .arcGISLightGrayLabels:
return nil
return "arcgisLightGrayLabels"
case .arcGISDarkGray:
return nil
return "arcgisDarkGray"
case .arcGISDarkGrayBase:
return nil
return "arcgisDarkGrayBase"
case .arcGISDarkGrayLabels:
return nil
return "arcgisDarkGrayLabels"
case .arcGISNavigation:
return "arcgisNavigation"
case .arcGISNavigationNight:
return "arcgisNavigationNight"
case .arcGISStreets:
return "arcgisStreets"
case .arcGISStreetsNight:
return "arcgisStreetsNight"
case .arcGISStreetsRelief:
return "arcgisStreetsRelief"
case .arcGISStreetsReliefBase:
return "arcgisStreetsReliefBase"
case .arcGISStreetsNight:
return "arcgisStreetsNight"
case .arcGISTopographic:
return "arcgisTopographic"
case .arcGISTopographicBase:
return "arcgisTopographicBase"
case .arcGISOceans:
return "arcgisOceans"
case .arcGISOceansBase:
return nil
return "arcgisOceansBase"
case .arcGISOceansLabels:
return nil
return "arcgisOceansLabels"
case .arcGISTerrain:
return "arcgisTerrain"
case .arcGISTerrainBase:
return nil
return "arcgisTerrainBase"
case .arcGISTerrainDetail:
return nil
return "arcgisTerrainDetail"
case .arcGISCommunity:
return "arcgisCommunity"
case .arcGISChartedTerritory:
return "arcgisChartedTerritory"
case .arcGISChartedTerritoryBase:
return "arcgisChartedTerritoryBase"
case .arcGISColoredPencil:
return "arcgisColoredPencil"
case .arcGISNova:
return "arcgisNova"
case .arcGISModernAntique:
return "arcgisModernAntique"
case .arcGISModernAntiqueBase:
return "arcgisModernAntiqueBase"
case .arcGISMidcentury:
return "arcgisMidcentury"
case .arcGISNewspaper:
Expand All @@ -714,14 +736,24 @@ extension Basemap.Style {
return "arcgisHillshadeLight"
case .arcGISHillshadeDark:
return "arcgisHillshadeDark"
case .arcGISStreetsReliefBase:
return nil
case .arcGISTopographicBase:
return nil
case .arcGISChartedTerritoryBase:
return nil
case .arcGISModernAntiqueBase:
return nil
case .arcGISOutdoor:
return "arcgisOutdoor"
case .arcGISHumanGeography:
return "arcgisHumanGeography"
case .arcGISHumanGeographyBase:
return "arcgisHumanGeographyBase"
case .arcGISHumanGeographyDetail:
return "arcgisHumanGeographyDetail"
case .arcGISHumanGeographyLabels:
return "arcgisHumanGeographyLabels"
case .arcGISHumanGeographyDark:
return "arcgisHumanGeographyDark"
case .arcGISHumanGeographyDarkBase:
return "arcgisHumanGeographyDarkBase"
case .arcGISHumanGeographyDarkDetail:
return "arcgisHumanGeographyDarkDetail"
case .arcGISHumanGeographyDarkLabels:
return "arcgisHumanGeographyDarkLabels"
case .osmStandard:
return "osmStandard"
case .osmStandardRelief:
Expand All @@ -732,22 +764,31 @@ extension Basemap.Style {
return "osmStreets"
case .osmStreetsRelief:
return "osmStreetsRelief"
case .osmStreetsReliefBase:
return "osmStreetsReliefBase"
case .osmLightGray:
return "osmLightGray"
case .osmLightGrayBase:
return nil
return "osmLightGrayBase"
case .osmLightGrayLabels:
return nil
return "osmLightGrayLabels"
case .osmDarkGray:
return "osmDarkGray"
case .osmDarkGrayBase:
return nil
return "osmDarkGrayBase"
case .osmDarkGrayLabels:
return nil
case .osmStreetsReliefBase:
return nil
@unknown default:
return nil
return "osmDarkGrayLabels"
case .osmBlueprint:
return "osmBlueprint"
case .osmHybrid:
return "osmHybrid"
case .osmHybridDetail:
return "osmHybridDetail"
case .osmNavigation:
return "osmNavigation"
case .osmNavigationDark:
return "osmNavigationDark"

}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ class GraphicsParser {
case "simple-marker":
return parseSimpleMarkerSymbol(dictionary)
case "picture-marker":
return parsePictureMarkerSymbol(dictionary)
return try parsePictureMarkerSymbol(dictionary)
case "simple-fill":
return parseSimpleFillMarkerSymbol(dictionary)
case "simple-line":
Expand Down
Loading