Marghyrningur
Flötur skilgreindur með ytri hring auk hvaða fjölda gata sem er. Bættu við fyllingu og útlínu, settu hann í kortasýnina og þú hefur svæðamerkingu eða grímu. Meðferð gata hefur sína sérvisku í hverju korta-SDK, en MapConductor jafnar hana svo útlitið sé það sama alls staðar.
01 · Staða marghyrnings
PolygonState stendur fyrir einn flöt: ytri hring, göt, fyllingu, útlínu og snertistjóra. Úthlutaðu á eigind og formið uppfærist á staðnum, svo ritill sem dregur hornpunkta er ekkert annað en hnitaskipti.
val polygonState =
PolygonState(
points = outerRing,
holes = listOf(holeA, holeB),
strokeColor = Color.Red,
strokeWidth = 3.dp,
fillColor = Color(0x4D0064E6),
onClick = { event -> viewModel.onPolygonClick(event) },
)
Polygon(polygonState)
// Hornpunktar og göt uppfærast einfaldlega með því að vera endurskrifuð
polygonState.holes = nextHoleslet polygonState = PolygonState(
points: outerRing,
strokeColor: .red,
strokeWidth: 3.0,
fillColor: UIColor(red: 0, green: 0.39, blue: 0.9, alpha: 0.3),
holes: [holeA, holeB],
onClick: { event in viewModel.onPolygonClicked(event) }
)
content.polygons = [Polygon(state: polygonState)]const polygonState = createPolygonState({
id: 'demo-polygon',
points: vertices,
holes,
strokeColor: '#e74c3c',
strokeWidth,
fillColor: `rgba(0, 100, 230, ${fillOpacity})`,
onClick: () => showToast('Polygon clicked'),
});
<Polygon state={polygonState} />02 · Göt og sameining skörunar
Göt skera svæði út úr ytri hringnum. Í grímuhönnun setur þú oft nokkur göt þar sem þú vilt sýna í gegn — og þau göt enda eðlilega á að skarast.
Fái þau skarandi göt óbreytt teikna flest korta-SDK útlínu þar sem þau skarast og afhjúpa samskeytin. MapConductor sameinar götin fyrir teikningu, svo skörun verður að einu gati og engar aukalínur birtast.


// Skarandi göt má gefa óbreytt; þau eru sameinuð í eitt innanhúss
PolygonState(
points = outerRing,
holes =
listOf(
triangleA, // ← þessi skarast
triangleB,
),
fillColor = Color(0xCC787880),
)// Skarandi göt má gefa óbreytt; þau eru sameinuð í eitt innanhúss
let state = PolygonState(
points: outerRing,
fillColor: UIColor(white: 0.47, alpha: 0.8),
holes: [triangleA, triangleB]
)// Skarandi göt má gefa óbreytt; þau eru sameinuð í eitt innanhúss
const state = createPolygonState({
id: 'world-hole',
points: OUTER_POINTS,
holes, // Tveir þríhyrningar sem skarast
fillColor: 'rgba(120, 120, 128, 0.8)',
strokeColor: '#ef4444',
strokeWidth: 2,
});03 · Sama niðurstaða hjá hverjum þjónustuaðila
Fyrir utan skörun gata afhjúpa fylltir fletir nóg af mun milli véla. MapConductor jafnar hann svo einn PolygonState gefi eina mynd.
Skarandi göt eru sameinuð
Skörun er sameinuð í eitt svæði um leið og staðan er byggð — engin útlína þvert yfir skörunina og engin tvöföld fylling.
Sama formið án stuðnings við sveigjur
Vélar sem geta ekki teiknað stórbauga fá þéttan hring í staðinn, svo stór svæði stemma alls staðar.
Svæði sem fara yfir daglínuna
Hringir sem fara yfir 180° eru klofnir við mörkin, svo vélar sem myndu fylla löngu leiðina fylla samt réttu hliðina.
Sameiginleg smellprófun
Snertigreining er sameiginleg rökvísi og göt svara ekki, hvort sem undirliggjandi vél tekur tillit til þeirra eða ekki.
04 · Snerting
onClick tekur við stöðu marghyrningsins og hnitinu sem snert var — lestu fyllinguna eða extra-gögnin til að sýna nánari upplýsingar.
Staða marghyrningsins sem snert var; lestu fyllingarlit hans eða extra-gögnin.
Landfræðilega hnitið sem snert var.
Snerting inni í gati ræsir ekkert fyrir þann marghyrning; aðeins sýnilega fyllingin telur.
fun onPolygonClicked(event: PolygonEvent) {
markerState = MarkerState(
position = event.clicked,
icon = DefaultMarkerIcon(fillColor = event.state.fillColor),
)
}func onPolygonClicked(_ event: PolygonEvent) {
let color = event.state.fillColor.withAlphaComponent(1.0)
markerState = MarkerState(
position: GeoPoint.from(position: event.clicked),
id: "clicked",
icon: DefaultMarkerIcon(fillColor: color)
)
}onClick: event => {
setMarker(createMarkerState({
id: 'clicked',
position: event.clicked,
icon: new ColorDefaultIcon({ fillColor: event.state.fillColor }),
}));
},Þar sem marghyrningar skarast vinnur sá með hærra zIndex. Marghyrningum utan sýnilega svæðisins er sleppt, svo mörg stór svæði haldast lipur.