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.
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.
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)let groundImageState = GroundImageState(
bounds: GeoRectBounds(southWest: southWest, northEast: northEast),
image: resources.image, // Sendu UIImage-ið beint áfram
opacity: 0.5,
id: "groundImage"
)
content.groundImages = [GroundImage(state: groundImageState)]const image = createGroundImageState({
id: 'ground-image',
bounds: createGeoRectBounds({ southWest, northEast }),
imageUrl: GROUND_IMAGE_URL, // Sendu það sem vefslóð
opacity,
onClick: () => showToast('Ground image clicked.'),
});
<GroundImage state={image} />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.
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.
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.

// 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 = sliderOpacityfunc setOpacity(_ value: Double) {
opacity = value
groundImageState.opacity = value
}
// Endurbyggðu mörkin á meðan merkið er dregið
groundImageState.bounds = GeoRectBounds(southWest: sw, northEast: ne)// Á meðan dregið er, skrifaðu beint í stöðuhlutinn í stað þess að bíða eftir endurteiknun
const applyGeometry = (sw: GeoPoint, ne: GeoPoint) => {
image.bounds = createGeoRectBounds({ southWest: sw, northEast: ne });
polylineState.points = framePoints(sw, ne);
};
image.opacity = opacity;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.
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.
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.
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.
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.
// 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
}private func onGroundImageClick(_ event: GroundImageEvent) {
let isBase = groundImageState.image === resources.image
groundImageState.image = isBase ? resources.clickedImage : resources.image
}createGroundImageState({
bounds,
imageUrl,
onClick: event => showToast(event.clicked),
});Staða myndarinnar sem snert var — lestu núverandi mynd eða extra-gögnin.
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.