Skjölun / Kortasýn / Kortahönnun

Að skipta um kortahönnun (flísar)

Útlit kortsins ræðst af einu mapDesignType. Veldu eitt af forstillingunum sem fylgja hverjum þjónustuaðila, eða skilgreindu þína eigin út frá stíl-JSON eða flísaslóð. Skiptin eru ekkert nema úthlutun á eigind — kortið þarf ekki að endurbyggja.

ANDROID
com.mapconductor:core
iOS
MapConductorCore
REACT
@mapconductor/js-sdk-core

01 · Hönnunargerðin

Hver hönnun þjónustuaðila útfærir MapDesignTypeInterface (MapDesignTypeProtocol á iOS). Lærðu þessa þrjá meðlimi og meðhöndlunin helst eins milli þjónustuaðila.

id

Auðkennir hönnunina — annaðhvort innbyggða gildi þjónustuaðilans (t.d. mapType-fasti hjá Google) eða strengur.

getValue()

Gildið sem er rétt vél þjónustuaðilans, þar með talin vefslóð stíl-JSON eða flísaskilgreining.

attributionRules

Reglur sem skipta um heimildatexta eftir aðdrætti og svæði. Nauðsynlegar þegar þú kemur með þínar eigin flísar.

02 · Forstillingar

Hver pakki þjónustuaðila birtir staðalhannanir sínar sem fasta. Sýnisforritin nota þessa lista beint sem valkosti.

Þjónustuaðili
Gerð
Forstillingar
Google Maps
GoogleMapDesign
Normal · Satellite · Hybrid · Terrain · None
MapLibre
MapLibreDesign
DemoTiles · OsmBright / En / Ja · MapTilerBasicEn / Ja · MapTilerTonerEn / Ja · OpenMapTiles(9)
MapKit
iOS · React
MapKitMapDesign
Standard · Satellite · Hybrid · SatelliteFlyover · HybridFlyover · MutedStandard
Mapbox
MapboxMapDesign
React: MapboxDesign
Standard · StandardSatellite · Streets · Outdoors · Light · Dark · Satellite · SatelliteStreets · NavigationDay / Night
Á React: Streets · Outdoors · Light · Dark · SatelliteStreets, auk stíl-JSON úr OsmBright- og MapTiler-fjölskyldunni
MapTiler
MapTilerDesign
Streets · StreetsDark · StreetsLight · Basic · Bright · Satellite · Outdoor · Winter · Topo · Toner · Dataviz · Backdrop · Ocean · Landscape · Aquarelle · OpenStreetMap(16)
HERE
HereMapDesign
NormalDay / Night · Satellite · HybridDay / Night · LiteDay / Night · LiteHybridDay / Night · LogisticsDay / Night · LogisticsHybridDay · RoadNetworkDay / Night (14; á iOS 15, með LogisticsHybridNight)
ArcGIS
ArcGISDesign
iOS / React: ArcGISMapDesign
Streets · Imagery · Topographic · Navigation · Nova · Newspaper · HumanGeography… · OsmStandard …(61)
TomTom
TomTomMapDesign
React: TomTomDesign
Standard · Driving · Satellite
React hefur einnig StandardLight / Dark · DrivingLight / Dark · MonoLight / Dark
Longdo
LongdoDesign
Normal · Easy · Pastel · PastelGray · Hard · Gray · Light · Night · Dark · Political · Osm · Satellite · Hybrid(13)
Leaflet
React
LeafletDesign
OpenStreetMap · None + auk hvaða XYZ-flísa sem er
OpenLayers
React
OpenLayersDesign
OpenStreetMap · None + auk hvaða XYZ-flísa sem er
Azure Maps
React
AzureMapsDesign
Road · RoadShadedRelief · Blank · BlankAccessible · Satellite · SatelliteRoadLabels · GrayscaleDark / Light · Night · HighContrastDark / Light(12)
Cesium
React
CesiumDesign
Default · None

Aðeins þær línur sem eru ólíkar eftir vettvangi eru merktar; annars staðar eru gerðarheitið og fastaheitin þau sömu á öllum þremur vettvöngunum.

Vettvangur

03 · Að skipta

Úthlutaðu á mapDesignType á stöðu kortasýnarinnar. Staðan er vöktuð, svo kortið breytist um leið og þú úthlutar.

MapDesignMapPage.kt · Jetpack Compose
// state er MapViewStateInterface<*>; þrengdu það að gerð þjónustuaðilans áður en úthlutað er
when (state) {
    is GoogleMapViewStateInterface ->
        state.mapDesignType = GoogleMapDesign.Satellite
    is MapLibreViewStateInterface ->
        state.mapDesignType = MapLibreDesign.OsmBrightJa
    is MapTilerViewStateInterface ->
        state.mapDesignType = MapTilerDesign.Toner
}

04 · Að skilgreina eigin hönnun

Forstillingargerðirnar eru líka opinberir smiðir. Gefðu id auk vefslóðar á stíl-JSON (vigur) eða flísaslóðarsniðmáts (raster) og þín eigin hönnun fær nákvæmlega sömu meðferð og forstilling.

CustomDesigns.kt · MapLibre / út frá stíl-JSON
// MapLibreDesign er data class: réttu því vefslóð á stíl-JSON og þú átt þína eigin hönnun
val GsiPale =
    MapLibreDesign(
        id = "gsi-pale",
        styleJsonURL = "https://example.com/styles/gsi-pale/style.json",
        attributionRules =
            listOf(
                AttributionRule(attribution = "GSI-flísar"),
                AttributionRule(attribution = "GEBCO", minZoom = 5, maxZoom = 8),
            ),
    )
MapDesignPageViewModel.kt · bætt við valkostina
private val mapLibreDesigns =
    listOf(
        MapDesignOption(label = "OsmBright", design = MapLibreDesign.OsmBright),
        MapDesignOption(label = "GSI Pale", design = GsiPale),
    )
GoogleMapDesign.Custom · vefja innbyggt gildi
// Vefur innbyggðu mapType-fastann óbreyttan og bætir aðeins við heimildinni
val NormalWithNotice =
    GoogleMapDesign.Custom(
        id = MAP_TYPE_NORMAL,
        attributionRules = listOf(AttributionRule(attribution = "Eigin gögn 2026")),
    )

Þar sem kortategundin er innbyggður fasti — Google Maps — notaðu GoogleMapDesign.Custom, sendu fastann sem id og gefðu þinn eigin heimildatexta. MapTiler, Mapbox og HERE bjóða smiði af sama formi.

05 · Reglur um heimildir

Þegar þú kemur með þínar eigin flísar skaltu bera skilyrði flísaveitandans um heimildir sem reglur. Aðeins þær reglur sem eiga við núverandi aðdrátt og sýnarglugga birtast.

attribution
Textinn sem á að birtast; HTML með tenglum er tekið gilt.
minZoom / maxZoom
Aðdráttarsviðið sem textinn birtist á — hann hverfur utan þess.
bounds
Rétthyrningurinn sem textinn á við, t.d. flísar sem þekja aðeins Japan.

06 · Sýnisforrit

Öll þrjú sýnisforritin koma með hönnunarrofa. Viðmótið er hefðbundið á hverjum vettvangi; aðeins úthlutunin er sameiginleg.

Map design ▾
ANDROID · ExposedDropdownMenu
Map design ⌄
iOS · SwiftUI Menu
<select>
REACT · map-design-selector
Það sem myndbandið sýnir · Android + MapLibreKotlin · Jetpack Compose
val mapViewState = rememberMapLibreMapViewState(
    mapDesign = MapLibreDesign.DemoTiles,
    cameraPosition = MapCameraPosition(
        position = GeoPoint.fromLatLong(21.382314, -157.933097),
        zoom = 12.0,
    ),
)

val designs = listOf(
    "Demo" to MapLibreDesign.DemoTiles,
    "OSM Bright" to MapLibreDesign.OsmBrightJa,
    "Toner" to MapLibreDesign.MapTilerTonerJa,
)

MapLibreMapView(state = mapViewState, modifier = Modifier.weight(1f))

Row {
    designs.forEach { (label, design) ->
        // Just an assignment. The map is not rebuilt, so the camera stays where it is
        Button(onClick = { mapViewState.mapDesignType = design }) { Text(label) }
    }
}
Sýnidæmi á myndbandi · skipt um hönnun
Myndband ekki tekið upp ennEitt kort þar sem mapDesignType er endurúthlutað og forstillingarnar taka við hver af annarri. Augnablik skiptanna er allur punkturinn.

Tengdar síður