A versão 3.1.0 do SDK do Maps para Android é uma nova implementação com a mesma plataforma de API da versão anterior. Nela, todas as classes e todos os métodos permanecem iguais, e há novos recursos para você testar.
- Personalização dos mapas
- Como lidar com marcadores sobrepostos
- Personalização de polilinha
Este guia mostra como usar os novos recursos.
Personalização dos mapas (Beta)
A personalização do Google Maps oferece várias ferramentas e recursos que permitem personalizar e gerenciar mais facilmente a forma como os mapas são estilizados. Em vez de estilizar seu mapa em código usando as APIs e os SDKs do Google Maps, é possível gerenciar e estilizar seus mapas no Console do Google Cloud. Para ver mais informações, consulte Visão geral da personalização de mapas para Android.
Como lidar com marcadores sobrepostos (Beta)
Você pode especificar se os marcadores personalizados poderão modificar as etiquetas padrão do Mapa básico quando houver uma sobreposição e indicar a prioridade relativa entre esses marcadores. Para mais informações, consulte Como lidar com marcadores sobrepostos (Android).
Personalização de polilinha (Beta)
Agora há várias novas maneiras de personalizar a aparência das polilinhas:
- As polilinhas de várias cores definem segmentos de polilinha com cores diferentes.
- As polilinhas em gradiente colorem uma polilinha usando um gradiente de duas cores.
- As polilinhas estampadas definem o estilo de uma polilinha usando bitmaps repetidos.
Como criar uma polilinha de várias cores
É possível usar períodos para segmentos de cor individuais de uma polilinha, criando objetos StyleSpan
e adicionando-os a PolylineOptions
, usando os métodos addSpan()
ou addSpans()
. Por padrão, cada item na matriz define a cor do segmento da linha correspondente. O exemplo a seguir mostra a definição de cores de segmentos para criar uma polilinha com segmentos vermelhos e verdes:
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)));
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)) )
Como criar uma polilinha em gradiente
Você pode definir um gradiente especificando dois números inteiros de alfa-vermelho-verde-azul (ARGB, na sigla em inglês) de 32 bits para definir as cores inicial e final do traço. Configure essa propriedade no objeto de opções da forma chamando PolylineOptions.addSpan()
.
O exemplo a seguir mostra como criar uma polilinha em gradiente vermelho a amarelo, do Woodland Park Zoo em Kirkland, WA.
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())));
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() ) ) )
Como criar uma polilinha estampada
Você pode definir a aparência de uma polilinha como uma textura de bitmap repetida. Para fazer isso, crie um StampStyle
de TextureStyle
e defina essa propriedade no objeto de opções da forma chamando PolylineOptions.addSpan()
como mostrado aqui:
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));
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) )