Per aggiungere indicatori avanzati a una mappa, crea una nuova istanza di AdvancedMarkerOptions
e poi utilizza GoogleMap.addMarker()
per aggiungere l'indicatore:
Kotlin
private val SYDNEY = LatLng(-33.87365, 151.20689)
val marker: Marker? = map.addMarker( AdvancedMarkerOptions() .position(SYDNEY) .iconView(textView) .zIndex(zIndex) )
Java
private final LatLng SYDNEY = new LatLng(-33.87365, 151.20689);
Marker marker = map.addMarker( new AdvancedMarkerOptions() .position(SYDNEY) .iconView(textView) .zIndex(zIndex));
GoogleMap.addMarker()
restituisce un'istanza di
Marker
.
Se necessario, puoi trasmettere il valore restituito a AdvancedMarker
.
Utilizza AdvancedMarkerOptions
per configurare indicatori avanzati.
AdvancedMarkerOptions
è una sottoclasse di
MarkerOptions
,
quindi supporta le stesse impostazioni di MarkerOptions
.
AdvancedMarkerOptions
ti consente inoltre di:
Crea un'istanza della classe
PinConfig
, quindi utilizza l'istanzaPinConfig
per configurare l'istanzaAdvancedMarkerOptions
.Usa
PinConfig
per personalizzare le proprietà avanzate degli indicatori, ad esempio il colore di sfondo, il colore del bordo e il glifo.Creare un'istanza della classe Android
View
e utilizzare questa istanza per configurare l'istanzaAdvancedMarkerOptions
.L'istanza Visualizza ti consente di personalizzare completamente l'indicatore.
Utilizza PinConfig
Il corso PinConfig
contiene opzioni per personalizzare
indicatori avanzati. Usa PinConfig
per:
- Modificare il colore dello sfondo
- Modifica il colore del bordo
- Modifica il colore del glifo o aggiungi del testo
- Nascondi il glifo
Utilizza PinConfig.Builder
per creare un'istanza di PinConfig
:
Kotlin
// Use PinConfig.Builder to create an instance of PinConfig. val pinConfigBuilder: PinConfig.Builder = PinConfig.builder() pinConfigBuilder.setBackgroundColor(Color.MAGENTA) val pinConfig: PinConfig = pinConfigBuilder.build()// Use the PinConfig instance to set the icon for AdvancedMarkerOptions. val advancedMarkerOptions: AdvancedMarkerOptions = AdvancedMarkerOptions() .icon(BitmapDescriptorFactory.fromPinConfig(pinConfig)) .position(MARKER_POSITION)
// Pass the AdvancedMarkerOptions instance to addMarker(). val marker: Marker? = map.addMarker(advancedMarkerOptions)
Java
// Use PinConfig.Builder to create an instance of PinConfig. PinConfig.Builder pinConfigBuilder = PinConfig.builder(); pinConfigBuilder.setBackgroundColor(Color.MAGENTA); PinConfig pinConfig = pinConfigBuilder.build();
// Use the PinConfig instance to set the icon for AdvancedMarkerOptions. AdvancedMarkerOptions advancedMarkerOptions = new AdvancedMarkerOptions() .icon(BitmapDescriptorFactory.fromPinConfig(pinConfig)) .position(MARKER_POSITION);
// Pass the AdvancedMarkerOptions instance to addMarker(). Marker marker = map.addMarker(advancedMarkerOptions);
Modificare il colore dello sfondo
Utilizza il metodo PinConfig.background()
per modificare il colore di sfondo di un indicatore:
Kotlin
// Use PinConfig.Builder to create an instance of PinConfig. val pinConfigBuilder: PinConfig.Builder = PinConfig.builder() pinConfigBuilder.setBackgroundColor(Color.MAGENTA) val pinConfig: PinConfig = pinConfigBuilder.build()
Java
// Use PinConfig.Builder to create an instance of PinConfig. PinConfig.Builder pinConfigBuilder = PinConfig.builder(); pinConfigBuilder.setBackgroundColor(Color.MAGENTA); PinConfig pinConfig = pinConfigBuilder.build();
Modifica il colore del bordo
Utilizza il metodo PinConfig.borderColor()
per modificare il colore del bordo di un indicatore:
Kotlin
// Set the border color. val pinConfigBuilder: PinConfig.Builder = PinConfig.builder() pinConfigBuilder.setBorderColor(Color.BLUE) val pinConfig: PinConfig = pinConfigBuilder.build()
Java
// Set the border color. PinConfig.Builder pinConfigBuilder = PinConfig.builder(); pinConfigBuilder.setBorderColor(Color.BLUE); PinConfig pinConfig = pinConfigBuilder.build();
Cambia il glifo
Crea un'istanza di Glyph
, quindi utilizzala per configurare PinConfig
.
Utilizza il glifo per impostare il colore del testo e del testo del glifo, oppure per specificare un'immagine personalizzata da utilizzare come glifo.
Nell'esempio seguente viene impostato il testo glifo:
Kotlin
// Set the glyph text. val pinConfigBuilder: PinConfig.Builder = PinConfig.builder() val glyphText = Glyph("A")
// Alteratively, you can set the text color: // Glyph glyphText = new Glyph("A", Color.GREEN);
pinConfigBuilder.setGlyph(glyphText) val pinConfig: PinConfig = pinConfigBuilder.build()
Java
// Set the glyph text. PinConfig.Builder pinConfigBuilder = PinConfig.builder(); PinConfig.Glyph glyphText = new PinConfig.Glyph("A");
// Alternatively, you can set the text color: // PinConfig.Glyph glyphText = new PinConfig.Glyph("A", Color.GREEN);
pinConfigBuilder.setGlyph(glyphText); PinConfig pinConfig = pinConfigBuilder.build();
Imposta il colore del glifo:
Kotlin
val glyphColor = PinConfig.Glyph(Color.BLUE) pinConfigBuilder.setGlyph(glyphColor) val pinConfig: PinConfig = pinConfigBuilder.build()
Java
PinConfig.Glyph glyphColor = new PinConfig.Glyph(Color.BLUE); pinConfigBuilder.setGlyph(glyphColor); PinConfig pinConfig = pinConfigBuilder.build();
Imposta un'immagine personalizzata per il glifo. Questa tecnica è utile se vuoi usare un logo personalizzato o un altro indicatore visivo nell'indicatore.
Kotlin
// Set the glyph image. val glyphImage: Int = R.drawable.example_image val descriptor = PinConfig.BitmapDescriptorFactory.fromResource(glyphImage) pinConfigBuilder.setGlyph(Glyph(descriptor)) val pinConfig: PinConfig = pinConfigBuilder.build()
Java
// Set the glyph image. int glyphImage = R.drawable.example_image; BitmapDescriptor descriptor = BitmapDescriptorFactory.fromResource(glyphImage); pinConfigBuilder.setGlyph(new PinConfig.Glyph(descriptor)); PinConfig pinConfig = pinConfigBuilder.build();
Nascondi il glifo
Puoi nascondere il glifo in modo che il colore di sfondo riempia l'intero indicatore:
Kotlin
// Create a transparent glyph. val pinConfigBuilder: PinConfig.Builder = PinConfig.builder() pinConfigBuilder.setBackgroundColor(Color.MAGENTA) pinConfigBuilder.setGlyph(PinConfig.Glyph(Color.TRANSPARENT)) val pinConfig: PinConfig = pinConfigBuilder.build()
Java
// Create a transparent glyph. PinConfig.Builder pinConfigBuilder = PinConfig.builder(); pinConfigBuilder.setBackgroundColor(Color.MAGENTA); pinConfigBuilder.setGlyph(new PinConfig.Glyph(Color.TRANSPARENT)); PinConfig pinConfig = pinConfigBuilder.build();
Utilizza iconView
Il metodo AdvancedMarkerOptions.iconView()
ti consente di utilizzare qualsiasi Android
View
come indicatore. Se utilizzi una vista come indicatore, hai il controllo completo dell'indicatore.
Nell'app, prima crei la vista e poi utilizzi il metodo AdvancedMarkerOptions.iconView()
per aggiungerla agli indicatori avanzati.
Kotlin
// Create a TextView to use as the marker. val textView = TextView(this) textView.text = "Hello!!" textView.setBackgroundColor(Color.BLACK) textView.setTextColor(Color.YELLOW)
val marker: Marker? = map.addMarker( AdvancedMarkerOptions() .position(SYDNEY) .iconView(textView) )
Java
// Create a TextView to use as the marker. TextView textView = new TextView(this); textView.setText("Hello!!"); textView.setBackgroundColor(Color.BLACK); textView.setTextColor(Color.YELLOW);
Marker marker = map.addMarker( new AdvancedMarkerOptions() .position(SYDNEY) .iconView(textView));