L'API Google Maps per Android offre alcuni semplici modi per aggiungere forme alle tue mappe e personalizzarle per la tua applicazione.
- Una
Polyline
è una serie di segmenti di linee connesse che possono formano qualsiasi forma tu voglia e possono essere utilizzate per contrassegnare percorsi e percorsi sulla mappa. - Un
Polygon
è una forma chiusa che può essere utilizzata per contrassegnare le aree sulla mappa. - Un
Circle
è una proiezione geografica accurata di un cerchio sulla superficie terrestre tracciato sulla mappa.
Puoi personalizzare l'aspetto di tutte queste forme modificando una di proprietà.
Esempi di codice
Il tutorial sull'aggiunta poligoni e polilinee per rappresentare aree e percorsi include tutto il codice di una semplice app per Android.
Inoltre, il repository ApiDemos su GitHub include esempi che mostrano l'uso delle forme e delle loro caratteristiche:
- CircleDemoActivity (Java/Kotlin): cerchio
- PolygonDemoActivity (Java / Kotlin): Polygon
- PolylineDemoActivity (Java / Kotlin): Polyline
Polilinee
La classe Polyline
definisce un insieme di linee connesse
segmenti sulla mappa. Un oggetto Polyline
è composto da un insieme di
LatLng
e crea una serie di segmenti di linea che
collegare queste località in una sequenza ordinata.
Questo video offre idee su come aiutare gli utenti a raggiungere la loro destinazione, utilizzando le polilinee per tracciare un percorso sulla mappa.
Per creare un polilinea, crea prima un oggetto PolylineOptions
e aggiungi i punti. I punti rappresentano un punto sulla superficie terrestre,
e sono espresse come oggetto LatLng
. I segmenti di linea sono tracciati
tra i punti in base all'ordine in cui li aggiungi alla
PolylineOptions
.
Per aggiungere punti a un oggetto PolylineOptions
, chiama PolylineOptions.add()
.
Tieni presente che questo metodo richiede un numero variabile di parametri, in modo che tu possa
aggiungi più punti di accesso alla volta (puoi anche chiamare PolylineOptions.addAll(Iterable<LatLng>)
se i punti sono già in un elenco).
Puoi quindi aggiungere la polilinea a una mappa richiamando
GoogleMap.addPolyline(PolylineOptions)
La
restituisce un oggetto Polyline
con il quale puoi modificare la polilinea in
in un secondo momento.
Il seguente snippet di codice illustra come aggiungere un rettangolo a una mappa:
Kotlin
// Instantiates a new Polyline object and adds points to define a rectangle val polylineOptions = PolylineOptions() .add(LatLng(37.35, -122.0)) .add(LatLng(37.45, -122.0)) // North of the previous point, but at the same longitude .add(LatLng(37.45, -122.2)) // Same latitude, and 30km to the west .add(LatLng(37.35, -122.2)) // Same longitude, and 16km to the south .add(LatLng(37.35, -122.0)) // Closes the polyline. // Get back the mutable Polyline val polyline = map.addPolyline(polylineOptions)
Java
// Instantiates a new Polyline object and adds points to define a rectangle PolylineOptions polylineOptions = new PolylineOptions() .add(new LatLng(37.35, -122.0)) .add(new LatLng(37.45, -122.0)) // North of the previous point, but at the same longitude .add(new LatLng(37.45, -122.2)) // Same latitude, and 30km to the west .add(new LatLng(37.35, -122.2)) // Same longitude, and 16km to the south .add(new LatLng(37.35, -122.0)); // Closes the polyline. // Get back the mutable Polyline Polyline polyline = map.addPolyline(polylineOptions);
Il rettangolo viene visualizzato sulla mappa come mostrato di seguito:
Per modificare la forma del polilinea dopo averlo aggiunto, puoi chiamare
Polyline.setPoints()
e fornire un nuovo elenco di punti per il polilinea.
Puoi personalizzare l'aspetto del polilinea sia prima di aggiungerlo alla mappa sia dopo. Consulta la sezione sulle personalizzazione dell'aspetto qui sotto per ulteriori dettagli.
Personalizzazione polilinea
Esistono diversi modi per personalizzare l'aspetto delle polilinee:
- Le polilinee multicolori impostano i segmenti delle polilinee su colori diversi.
- Polilinee con sfumature colorano una polilinea utilizzando una sfumatura di due colori.
- Le polilinee stampate assegnano uno stile a una polilinea mediante bitmap ripetute.
Per utilizzare le personalizzazioni delle polilinee, devi utilizzare la versione 18.1.0 o successive di Maps SDK for Android e l'ultimo renderer di Maps SDK for Android.
Creazione di una polilinea multicolore
Puoi utilizzare le sezioni per colorare singolarmente i segmenti di una polilinea, creando
StyleSpan
di oggetti e li aggiungi a PolylineOptions
utilizzando l'elemento addSpan()
o addSpans()
. Per impostazione predefinita, ogni elemento dell'array imposta il colore
del segmento di linea corrispondente. L'esempio seguente mostra l'impostazione di un segmento
colori per creare una polilinea con segmenti rossi e verdi:
Kotlin
val line = map.addPolyline( PolylineOptions() .add(LatLng(47.6677146, -122.3470447), LatLng(47.6442757, -122.2814693)) .addSpan(StyleSpan(Color.RED)) .addSpan(StyleSpan(Color.GREEN)) )
Java
Polyline line = map.addPolyline(new PolylineOptions() .add(new LatLng(47.6677146,-122.3470447), new LatLng(47.6442757,-122.2814693)) .addSpan(new StyleSpan(Color.RED)) .addSpan(new StyleSpan(Color.GREEN)));
Creazione di una polilinea sfumata
Puoi definire un gradiente specificando due interi alpha-red-green-blue (ARGB) di 32 bit per specificare i colori iniziale e finale del tratto. Imposta questa proprietà sull'oggetto options della forma chiamando PolylineOptions.addSpan()
.
L'esempio seguente mostra la creazione di una polilinea sfumata da rosso a giallo da
Dallo zoo del Woodland Park a Kirkland, WA.
Kotlin
val line = map.addPolyline( PolylineOptions() .add(LatLng(47.6677146, -122.3470447), LatLng(47.6442757, -122.2814693)) .addSpan( StyleSpan( StrokeStyle.gradientBuilder( Color.RED, Color.YELLOW ).build() ) ) )
Java
Polyline line = map.addPolyline(new PolylineOptions() .add(new LatLng(47.6677146,-122.3470447), new LatLng(47.6442757,-122.2814693)) .addSpan(new StyleSpan(StrokeStyle.gradientBuilder(Color.RED, Color.YELLOW).build())));
Creazione di una polilinea stampata
Puoi impostare l'aspetto di una polilinea su una trama bitmap ripetuta. Da fare
crea un valore StampStyle
di TextureStyle
, quindi imposta questa proprietà nella
richiamando PolylineOptions.addSpan()
come mostrato qui:
Kotlin
val stampStyle = TextureStyle.newBuilder(BitmapDescriptorFactory.fromResource(R.drawable.walking_dot)).build() val span = StyleSpan(StrokeStyle.colorBuilder(Color.RED).stamp(stampStyle).build()) map.addPolyline( PolylineOptions() .add(LatLng(47.6677146, -122.3470447), LatLng(47.6442757, -122.2814693)) .addSpan(span) )
Java
StampStyle stampStyle = TextureStyle.newBuilder(BitmapDescriptorFactory.fromResource(R.drawable.walking_dot)).build(); StyleSpan span = new StyleSpan(StrokeStyle.colorBuilder(Color.RED).stamp(stampStyle).build()); map.addPolyline(new PolylineOptions() .add(new LatLng(47.6677146,-122.3470447), new LatLng(47.6442757,-122.2814693)) .addSpan(span));
Eventi polilinea
Per impostazione predefinita, i polilinee non sono cliccabili. Puoi attivare e disattivare la pulsabilità chiamando Polyline.setClickable(boolean)
.
Utilizza un OnPolylineClickListener
per
Ascolta gli eventi di clic su una polilinea cliccabile. Per impostare questo listener sulla mappa,
chiama GoogleMap.setOnPolylineClickListener(OnPolylineClickListener)
.
Quando un utente fa clic su un polilinea, riceverai un callback onPolylineClick(Polyline)
.
Poligoni
Gli oggetti Polygon
sono simili a Polyline
di oggetti in quanto sono costituiti da una serie di coordinate in un ordine
sequenza. Tuttavia, anziché essere aperti, i poligoni sono progettati per
definire regioni all'interno di un circuito chiuso con l'interno riempito.
Puoi aggiungere un Polygon
alla mappa nello stesso modo in cui aggiungi
un Polyline
. Innanzitutto, crea un oggetto PolygonOptions
e aggiungere alcuni punti. Questi punti formeranno il contorno del poligono.
Successivamente, aggiungi il poligono alla mappa richiamando
GoogleMap.addPolygon(PolygonOptions)
, che
restituiscono un oggetto Polygon
.
Il seguente snippet di codice consente di aggiungere un rettangolo a una mappa.
Kotlin
// Instantiates a new Polygon object and adds points to define a rectangle val rectOptions = PolygonOptions() .add( LatLng(37.35, -122.0), LatLng(37.45, -122.0), LatLng(37.45, -122.2), LatLng(37.35, -122.2), LatLng(37.35, -122.0) ) // Get back the mutable Polygon val polygon = map.addPolygon(rectOptions)
Java
// Instantiates a new Polygon object and adds points to define a rectangle PolygonOptions polygonOptions = new PolygonOptions() .add(new LatLng(37.35, -122.0), new LatLng(37.45, -122.0), new LatLng(37.45, -122.2), new LatLng(37.35, -122.2), new LatLng(37.35, -122.0)); // Get back the mutable Polygon Polygon polygon = map.addPolygon(polygonOptions);
Per modificare la forma del poligono dopo averlo aggiunto, puoi chiamare
Polygon.setPoints()
e fornire un nuovo elenco di punti per il contorno
del poligono.
Puoi personalizzare l'aspetto del poligono sia prima che lo aggiunga alla mappa sia dopo. Per ulteriori dettagli, consulta la sezione sulla personalizzazione dell'aspetto di seguito.
Completamento automatico poligono
Nell'esempio precedente, il poligono è costituito da cinque coordinate, ma tieni presente che la prima e l'ultima coordinate sono la stessa posizione, che definisce l'anello. In pratica, tuttavia, poiché i poligoni definiscono aree chiuse, non è necessario definiscono quest'ultima coordinata. Se l'ultima coordinata è diversa dalla prima, il valore L'API "chiuderà" automaticamente al poligono aggiungendo la prima coordinata in alla fine della sequenza di coordinate.
I due poligoni seguenti sono equivalenti e la chiamata
polygon.getPoints()
per ognuno di essi restituirà tutti e 4 i punti.
Kotlin
val polygon1 = map.addPolygon( PolygonOptions() .add( LatLng(0.0, 0.0), LatLng(0.0, 5.0), LatLng(3.0, 5.0), LatLng(0.0, 0.0) ) .strokeColor(Color.RED) .fillColor(Color.BLUE) ) val polygon2 = map.addPolygon( PolygonOptions() .add( LatLng(0.0, 0.0), LatLng(0.0, 5.0), LatLng(3.0, 5.0) ) .strokeColor(Color.RED) .fillColor(Color.BLUE) )
Java
Polygon polygon1 = map.addPolygon(new PolygonOptions() .add(new LatLng(0, 0), new LatLng(0, 5), new LatLng(3, 5), new LatLng(0, 0)) .strokeColor(Color.RED) .fillColor(Color.BLUE)); Polygon polygon2 = map.addPolygon(new PolygonOptions() .add(new LatLng(0, 0), new LatLng(0, 5), new LatLng(3, 5)) .strokeColor(Color.RED) .fillColor(Color.BLUE));
Crea un poligono vuoto
È possibile combinare più percorsi in un singolo oggetto Polygon
per
creare forme complesse, ad esempio anelli pieni o "ciambelle" (dove poligonali
aree sono visualizzate all'interno del poligono come "isole"). Le forme complesse sono sempre
di più percorsi più semplici.
Devono essere definiti due percorsi nella stessa area. La più grande delle due regioni
definisce l'area di riempimento ed è un semplice poligono senza opzioni aggiuntive.
Quindi, passa un secondo percorso al metodo addHole()
. Quando il secondo percorso più piccolo è completamente racchiuso dal percorso più grande, sembra che un pezzo del poligono sia stato rimosso. Se il foro interseca il contorno del poligono,
il poligono verrà visualizzato senza riempimento.
Lo snippet riportato di seguito crea un singolo rettangolo con un foro rettangolare più piccolo.
Kotlin
val hole = listOf( LatLng(1.0, 1.0), LatLng(1.0, 2.0), LatLng(2.0, 2.0), LatLng(2.0, 1.0), LatLng(1.0, 1.0) ) val hollowPolygon = map.addPolygon( PolygonOptions() .add( LatLng(0.0, 0.0), LatLng(0.0, 5.0), LatLng(3.0, 5.0), LatLng(3.0, 0.0), LatLng(0.0, 0.0) ) .addHole(hole) .fillColor(Color.BLUE) )
Java
List<LatLng> hole = Arrays.asList(new LatLng(1, 1), new LatLng(1, 2), new LatLng(2, 2), new LatLng(2, 1), new LatLng(1, 1)); Polygon hollowPolygon = map.addPolygon(new PolygonOptions() .add(new LatLng(0, 0), new LatLng(0, 5), new LatLng(3, 5), new LatLng(3, 0), new LatLng(0, 0)) .addHole(hole) .fillColor(Color.BLUE));
Il poligono vuoto viene visualizzato sulla mappa come mostrato di seguito:
Eventi Polygon
Per impostazione predefinita, i poligoni non sono cliccabili. Puoi attivare e disattivare
cliccabilità chiamando Polygon.setClickable(boolean)
.
Utilizza un OnPolygonClickListener
per ascoltare gli eventi di clic su un poligono selezionabile. Per impostare questo listener sulla mappa, chiama GoogleMap.setOnPolygonClickListener(OnPolygonClickListener)
.
Quando un utente fa clic su un poligono, riceverai un callback onPolygonClick(Polygon)
.
Cerchi
Oltre a una classe Polygon
generica, l'API Maps include anche classi specifiche per gli oggetti Circle
, per semplificarne la creazione.
Per creare un cerchio, devi specificare le due proprietà seguenti:
center
comeLatLng
.radius
in metri.
Un cerchio è quindi definito come l'insieme di tutti i punti sulla superficie terrestre
che dista radius
metri dal center
specificato. A causa del modo in cui la proiezione di Mercatore utilizzata dall'API Maps esegue il rendering di una sfera su una superficie piana, questa apparirà come un cerchio quasi perfetto sulla mappa se si trova vicino all'equatore e apparirà sempre meno circolare (sullo schermo) man mano che il cerchio si allontana dall'equatore.
Per modificare la forma del cerchio dopo averlo aggiunto, puoi chiamare
Circle.setRadius()
o Circle.setCenter()
e fornire nuovi valori.
Puoi personalizzare l'aspetto del cerchio sia prima di aggiungerlo alla mappa sia dopo. Consulta la sezione sulle personalizzazione dell'aspetto qui sotto per ulteriori dettagli.
Il seguente snippet di codice aggiunge un cerchio alla mappa creando un oggetto CircleOptions
e chiamando GoogleMap.addCircle(CircleOptions)
:
Kotlin
// Instantiates a new CircleOptions object and defines the center and radius val circleOptions = CircleOptions() .center(LatLng(37.4, -122.1)) .radius(1000.0) // In meters // Get back the mutable Circle val circle = map.addCircle(circleOptions)
Java
// Instantiates a new CircleOptions object and defines the center and radius CircleOptions circleOptions = new CircleOptions() .center(new LatLng(37.4, -122.1)) .radius(1000); // In meters // Get back the mutable Circle Circle circle = map.addCircle(circleOptions);
Eventi cerchia
Per impostazione predefinita, non è possibile fare clic sui cerchi. Puoi attivare e disattivare
cliccabilità chiamando GoogleMap.addCircle()
con
CircleOptions.clickable(boolean)
o chiamando
Circle.setClickable(boolean)
.
Utilizza un OnCircleClickListener
per ascoltare gli eventi di clic su un cerchio cliccabile. Per impostare questo listener sulla mappa, chiama GoogleMap.setOnCircleClickListener(OnCircleClickListener)
.
Quando un utente fa clic su una cerchia, ricevi un
Callback onCircleClick(Circle)
, come mostrato nel seguente esempio di codice:
Kotlin
val circle = map.addCircle( CircleOptions() .center(LatLng(37.4, -122.1)) .radius(1000.0) .strokeWidth(10f) .strokeColor(Color.GREEN) .fillColor(Color.argb(128, 255, 0, 0)) .clickable(true) ) map.setOnCircleClickListener { // Flip the r, g and b components of the circle's stroke color. val strokeColor = it.strokeColor xor 0x00ffffff it.strokeColor = strokeColor }
Java
Circle circle = map.addCircle(new CircleOptions() .center(new LatLng(37.4, -122.1)) .radius(1000) .strokeWidth(10) .strokeColor(Color.GREEN) .fillColor(Color.argb(128, 255, 0, 0)) .clickable(true)); map.setOnCircleClickListener(new GoogleMap.OnCircleClickListener() { @Override public void onCircleClick(Circle circle) { // Flip the r, g and b components of the circle's stroke color. int strokeColor = circle.getStrokeColor() ^ 0x00ffffff; circle.setStrokeColor(strokeColor); } });
Personalizzazione dell'aspetto
Puoi modificare l'aspetto di una forma prima che venga aggiunta alla mappa (specificando la proprietà desiderata nell'oggetto options) o dopo che è stata aggiunta alla mappa. I getter sono esposto anche per tutte le proprietà, in modo da poter accedere facilmente lo stato desiderato della forma.
Il seguente snippet aggiunge una polilinea blu spessa con segmenti geodetici da da Melbourne a Perth. Le sezioni seguenti spiegano queste proprietà in modo più dettagliato.
Kotlin
val polyline = map.addPolyline( PolylineOptions() .add(LatLng(-37.81319, 144.96298), LatLng(-31.95285, 115.85734)) .width(25f) .color(Color.BLUE) .geodesic(true) )
Java
Polyline polyline = map.addPolyline(new PolylineOptions() .add(new LatLng(-37.81319, 144.96298), new LatLng(-31.95285, 115.85734)) .width(25) .color(Color.BLUE) .geodesic(true));
La mappa viene visualizzata come mostrato di seguito:
Nota: anche se la maggior parte di queste può essere applicata a qualsiasi forma descritta, alcune proprietà potrebbero non avere senso per determinate forme (ad es. un polilinea non può avere un colore di riempimento perché non ha un interno).
Colore tratto
Il colore del tratto è un numero intero alfa-rosso-verde-blu (ARGB) a 32 bit che specifica il valore
opacità e colore del tratto della forma. Imposta questa proprietà sull'oggetto options della forma chiamando *Options.strokeColor()
(o PolylineOptions.color()
nel caso di un polilinea). Se non specificato,
il colore predefinito del tratto è nero (Color.BLACK
).
Dopo aver aggiunto la forma alla mappa, puoi accedere al colore del tratto chiamando getStrokeColor()
(o getColor()
per un polilinea) e modificarlo chiamando setStrokeColor()
(setColor() for a polyline
).
Colore riempimento
Il colore di riempimento si applica solo a poligoni e cerchi. Non si applica alle linee polilinee perché non hanno interni definiti. Per un poligono, le regioni all'interno dei suoi fori non fanno parte dell'interno del poligono e non saranno se è stato impostato un colore di riempimento.
Il colore di riempimento è un numero intero alfa-rosso-verde-blu (ARGB) a 32 bit che specifica
opacità e colore dell'interno della forma. Imposta questa proprietà nella
dell'oggetto opzioni di una forma chiamando *Options.fillColor()
. Se non specificato,
il colore predefinito del tratto è trasparente (Color.TRANSPARENT
).
Dopo aver aggiunto la forma alla mappa, puoi accedere al colore di riempimento chiamando getFillColor()
e modificarlo chiamando setFillColor()
.
Ampiezza tratto
La larghezza del tratto della linea, come numero in virgola mobile in pixel
(px). La larghezza non viene ridimensionata quando viene ingrandita la mappa (ad esempio, una forma avrà
lo stesso spessore del tratto a tutti i livelli di zoom). Imposta questa proprietà sull'oggetto
option della forma chiamando *Options.strokeWidth()
(o PolylineOptions.width()
per un polilinea). Se non specificato, il tratto predefinito è di 10 pixel.
Dopo aver aggiunto la forma alla mappa, puoi accedere alla larghezza del tratto chiamando getStrokeWidth()
(o getWidth()
per un polilinea) e modificarla chiamando setStrokeWidth()
(setWidth() for a polyline
).
Sequenza tratto
Il pattern del tratto predefinito è una linea continua per le polilinee e per i contorni di
poligoni e cerchi. Puoi specificare un pattern del tratto personalizzato
PatternItem
oggetti, dove ogni elemento è un trattino, un punto o un
divario.
Il seguente esempio imposta il pattern di una polilinea su una sequenza ripetuta di un punto, seguita da uno spazio di 20 pixel, un trattino di 30 pixel e un altro spazio di 20 pixel.
Kotlin
val pattern = listOf( Dot(), Gap(20F), Dash(30F), Gap(20F) ) polyline.pattern = pattern
Java
List<PatternItem> pattern = Arrays.asList( new Dot(), new Gap(20), new Dash(30), new Gap(20)); polyline.setPattern(pattern);
Il pattern si ripete lungo la linea, a partire dal primo elemento del pattern nel primo vertice specificato per la forma.
Tipi di giunti
Per le polilinee e i contorni dei poligoni, puoi specificare uno smusso o un rotondo
JointType
per sostituire il tipo di giunto a mitra fisso predefinito.
Il seguente esempio applica un tipo di giunzione rotondo a una polilinea:
Kotlin
polyline.jointType = JointType.ROUND
Java
polyline.setJointType(JointType.ROUND);
Il tipo di giunzione influisce sulle curve interne della linea. Se la linea presenta un tratto che include trattini, il tipo di giunzione si applica anche quando un trattino è a cavallo un'articolazione. I tipi di giunti non influiscono sui punti, in quanto sono sempre circolari.
Coprilinee
Puoi specificare uno stile Cap
per ogni estremità di un polilinea. Opzioni
sono di testa (impostazione predefinita), quadrate, rotonde o bitmap personalizzate.
Imposta lo stile in PolylineOptions.startCap
e
PolylineOptions.endCap
oppure utilizza
metodi getter e setter appropriati.
Lo snippet seguente specifica un tratto finale arrotondato all'inizio di un polilinea.
Kotlin
polyline.startCap = RoundCap()
Java
polyline.setStartCap(new RoundCap());
Lo snippet seguente specifica una bitmap personalizzata per il tappo terminale:
Kotlin
polyline.endCap = CustomCap(BitmapDescriptorFactory.fromResource(R.drawable.arrow), 16F)
Java
polyline.setEndCap( new CustomCap(BitmapDescriptorFactory.fromResource(R.drawable.arrow), 16));
Quando utilizzi una bitmap personalizzata, devi specificare una larghezza del tratto di riferimento in pixel. L'API ridimensiona la bitmap di conseguenza. La larghezza del tratto di riferimento è la larghezza del tratto che hai utilizzato per progettare l'immagine bitmap del tappo nelle dimensioni originali dell'immagine. Lo spessore del tratto di riferimento predefinito è 10 pixel. Suggerimento: per determinare lo spessore del tratto di riferimento, apri l'immagine bitmap in Esegui lo zoom al 100% in un editor di immagini e traccia la larghezza desiderata del tratto della linea rispetto all'immagine.
Se utilizzi
BitmapDescriptorFactory.fromResource()
per creare la bitmap, assicurati di utilizzare una risorsa indipendente dalla densità
(nodpi).
Segmenti geodetici
L'impostazione geodetica si applica solo a polilinee e poligoni. Non si applica alle cerchie perché non sono definite come un insieme di segmenti.
L'impostazione geodetica determina il modo in cui i segmenti di linea tra i vertici della polilinea o del poligono vengono disegnati. I segmenti geodetici sono quelli che seguire il percorso più breve lungo la superficie terrestre (una sfera) e spesso Appaiono come linee curve su una mappa con una proiezione di Mercatore. I segmenti non geodetici vengono tracciati come linee rette sulla mappa.
Imposta questa proprietà nell'oggetto option della forma chiamando
*Options.geodesic()
dove true
indica che i segmenti devono essere disegnati come linee geodetiche e false
indica che i segmenti devono essere disegnati come linee rette.
Se non specificato, il valore predefinito è segmenti non geodetici (false
).
Dopo aver aggiunto la forma alla mappa, puoi accedere all'impostazione geodetica
chiamando il numero isGeodesic()
e potrebbe essere modificato chiamando il numero setGeodesic()
.
Z-index
L'indice z specifica l'ordine di impilaggio di questa forma rispetto ad altri overlay (altre forme, overlay del suolo e overlay delle schede) sulla mappa. Un overlay con un indice z elevato viene disegnato sopra gli overlay con indici z inferiori. Due overlay con lo stesso z-index vengono disegnati in un ordine arbitrario.
Tieni presente che gli indicatori vengono sempre disegnati sopra gli altri overlay, indipendentemente dall'indice z degli altri overlay.
Imposta questa proprietà sull'oggetto opzioni della forma chiamando *Options.zIndex()
.
Se non specificato, il valore predefinito dello z-index è 0
. Dopo aver aggiunto la forma alla mappa, puoi accedere all'indice z chiamando getZIndex()
e modificarlo chiamando setZIndex()
.
Visibilità
La visibilità specifica se la forma deve essere disegnata sulla mappa, dove
true
indica che deve essere disegnata e false
indica che non deve essere disegnata. it
ti consente di non visualizzare temporaneamente una forma sulla mappa. Per rimuovere definitivamente la forma dalla mappa, chiama remove()
sulla forma.
Imposta questa proprietà sull'oggetto options della forma chiamando
*Options.visible()
. Se non specificato, la visibilità predefinita è true
.
Dopo aver aggiunto la forma alla mappa, puoi accedere alla visibilità chiamando isVisible()
e modificarla chiamando setVisible()
.
Associare dati a una forma
Puoi archiviare un oggetto dati arbitrario con una polilinea, un poligono o un cerchio utilizzando il metodo setTag()
della forma e recuperarlo utilizzando getTag()
.
Ad esempio, chiama Polyline.setTag()
per archiviare un dato
oggetto con una polilinea e richiama Polyline.getTag()
a
per recuperare l'oggetto dati.
Il codice seguente definisce un tag arbitrario (A
) per la polilinea specificata:
Kotlin
val polyline = map.addPolyline( PolylineOptions() .clickable(true) .add( LatLng(-35.016, 143.321), LatLng(-34.747, 145.592), LatLng(-34.364, 147.891), LatLng(-33.501, 150.217), LatLng(-32.306, 149.248), LatLng(-32.491, 147.309) ) ) polyline.tag = "A"
Java
Polyline polyline = map.addPolyline((new PolylineOptions()) .clickable(true) .add(new LatLng(-35.016, 143.321), new LatLng(-34.747, 145.592), new LatLng(-34.364, 147.891), new LatLng(-33.501, 150.217), new LatLng(-32.306, 149.248), new LatLng(-32.491, 147.309))); polyline.setTag("A");
Di seguito sono riportati alcuni esempi di scenari in cui è utile archiviare e recuperare i dati con le forme:
- La tua app può adattarsi a diversi tipi di forme e vuoi gestirle in modo diverso quando l'utente fa clic su questi ultimi.
- Potresti interagire con un sistema che dispone di identificatori di record univoci, dove le forme rappresentano record specifici in quel sistema.
- I dati di forma possono indicare una priorità per determinare lo z-index per il forma.