Skjölun / Grunnatriði / GroundImage

GroundImage — að festa mynd á kortið

Skilgreindu rétthyrning með suðvestur- og norðausturpunkti og leggðu eina mynd innan hans: grunnmyndir hæða, gömul kort, loftmyndir, þín eigin litakóðuðu skýringarmyndir — hvaða mynd sem ekki hefur verið flísuð má leggja beint á kortið. Mörkum og gegnsæi má breyta síðar, og myndin fylgir hreyfingum myndavélarinnar og situr föst á jörðinni.

BOUNDS
SW / NE
IMAGE
image / url
OPACITY
0.0 – 1.0
TILE SIZE
512 · aðeins á flísaleiðinni
Vettvangur

01 · Staða jarðmyndar

GroundImageState stendur fyrir eina mynd: mörk, myndina sjálfa, ógegnsæi og snertistjóra. Myndin er gefin á því formi sem er eðlilegt á hverjum vettvangi — Drawable á Android, UIImage á iOS, vefslóð á vefnum.

GroundImageMapPageViewModel.kt · Jetpack Compose
val groundImageState =
    GroundImageState(
        id = "groundImage",
        bounds =
            GeoRectBounds(
                southWest = southWestPosition,
                northEast = northEastPosition,
            ),
        image = drawable,       // Sendu Drawable-ið beint áfram
        opacity = 0.5f,
        onClick = this::onGroundImageClick,
    )

GroundImage(groundImageState)
Eigind
Lýsing
bounds
Rétthyrningurinn sem myndin þekur, skilgreindur með suðvestur- og norðausturhorni sínu.
image / imageUrl
Myndin: Drawable á Android, UIImage á iOS, vefslóð myndar á vefnum.
opacity
Ógegnsæi — 0,0 alveg gegnsætt, 1,0 ógegnsætt. Lækkaðu það til að blanda við grunnkortið.
tileSize
Kantlengd flísar sem er aðeins notuð þegar myndin er teiknuð sem rasterflísar; ónotuð hjá þjónustuaðilum með innbyggt myndayfirlag. Sjálfgefna gildið 512 er í lagi.
extra
Hvaða gögn sem er, skilað til baka við snertingu.
onClick
Snertistjóri; tekur við stöðu myndarinnar og hnitinu sem snert var.

02 · Mörk og ógegnsæi

Mörkin eru rétthyrningur. Sé hlutfall myndarinnar annað en markanna er hún teygð til að passa, svo stilltu mörkin að hlutfalli þeirrar teikningar sem þú ert að leggja. Mörkum, ógegnsæi og myndinni má öllum úthluta upp á nýtt og það tekur gildi strax.

SW
NE
Punktarnir suðvestur (SV) og norðaustur (NA) ákvarða rétthyrninginn. Útlínan og merkin á myndinni koma úr kóða sýnisforritsins.
BOUNDS

Endurbyggðu mörkin með drætti

Úthlutaðu mörkunum upp á nýtt á meðan hornmerkin tvö eru dregin og myndin fylgir — hversu lipurlega hún fylgir samfelldum uppfærslum er misjafnt eftir þjónustuaðilum.

OPACITY

Blandaðu við grunnkortið

Lækkaðu ógegnsæið og göturnar og örnefnin undir skína í gegn. Sumar vélar takmarka hvenær eða hvernig sú breyting tekur gildi.

Sýnidæmi · gamalt kort fellt að mörkum sínum
Að breyta mörkum og ógegnsæi
// Dragðu hornmerkin til að endurbyggja mörkin
override fun onMarkerDrag(dragged: MarkerState) {
    when (dragged.id) {
        "south_west" -> southWestPosition = GeoPoint.from(dragged.position)
        "north_east" -> northEastPosition = GeoPoint.from(dragged.position)
    }
    bounds = GeoRectBounds(southWest = southWestPosition, northEast = northEastPosition)
}

// Ógegnsæi er einföld úthlutun
groundImageState.opacity = sliderOpacity

03 · Sama niðurstaða hjá hverjum þjónustuaðila

GroundImage er sá eiginleiki þar sem munurinn milli korta-SDK-rekla er mestur. Búnaður myndayfirlaga er mjög ólíkur og sumar vélar eiga enga hliðstæðu. MapConductor jafnar eins mikið af því og hægt er, en hjá sumum þjónustuaðilum standa eftir takmarkanir á kvikum breytingum.

PLACEMENT

Sömu mörk, sama teygja

Myndin er felld að mörkunum sem þú gafst, óháð því hvernig vélin lýsir hnitum yfirlaga — sama staðsetning, sama stærð alls staðar.

NATIVE FIRST

Innbyggð frumstök fyrst

Hver rekill teiknar gegnum innbyggða myndayfirlag korta-SDK-sins þar sem slíkt er til — MediaLayer með ImageElement á ArcGIS, Rectangle með myndefni á Cesium og svo framvegis. Aðeins þar sem engin hliðstæða er til er myndin sneidd í flísar á bak við rasterlag. Kóðinn þinn er sá sami hvor leiðin sem er farin.

LIMITATIONS

Takmarkanir eftir þjónustuaðilum

Að endurbyggja mörkin (samfelldar uppfærslur meðan dregið er) og breyta ógegnsæi getur verið takmarkað af vélinni. Föst staðsetning er samræmd alls staðar, en prófaðu á þeim þjónustuaðilum sem þú stefnir á ef þú breytir þessu kvikt.

HIT TEST

Sameiginleg smellprófun

Snertigreining er sameiginleg rökvísi, svo onClick ræsist hvort sem vélin styður snertingar á myndayfirlögum eða ekki.

04 · Snerting

onClick tekur við stöðu myndarinnar og hnitinu sem snert var. Sýnidæmin skipta um myndina sjálfa við snertingu til að víxla milli tveggja útgáfa.

Að skipta um mynd við snertingu
// Skiptu um mynd við snertingu
override fun onGroundImageClick(clicked: GroundImageEvent) {
    val isBase = clicked.state.image == imageResources.image
    image = if (isBase) imageResources.clickedImage else imageResources.image
}
event.state

Staða myndarinnar sem snert var — lestu núverandi mynd eða extra-gögnin.

event.clicked

Landfræðilega hnitið sem snert var, svo þú vitir hvar innan markanna var hitt.

Gegnsæir hlutar myndarinnar teljast enn snertanlegir. Til að gera þá óvirka skaltu fella mörkin að innihaldi myndarinnar eða para hana við marghyrning.

Tengdar síður