É possível personalizar a aparência dos marcadores configurando o objeto PinStyle. O tipo PinStyle oferece opções para mudar as cores do plano de fundo e da borda, o texto e a cor do glifo, a altitude, a imagem a ser usada e mais opções para personalização adicional.
O exemplo de código a seguir mostra como criar um marcador e estilizar usando algumas das opções de personalização disponíveis:
Map(mode: .hybrid) {
Marker(
position: .init(latitude: 51.5074, longitude: -0.1278, altitude: 0.0),
label: "London",
style: .pin(.init(scale: 2.0))
)
}
Nesta página, mostramos como personalizar marcadores da seguinte forma:
- Ajustar a escala do marcador
- Mudar a cor do plano de fundo
- Mudar a cor da borda
- Adicionar texto a um glifo
Ajustar a escala do marcador
Para dimensionar um marcador, use a opção scale:
Map(mode: .hybrid) {
Marker(
position: .init(latitude: 35.6762, longitude: 139.6503, altitude: 0.0),
label: "Tokyo",
style: .pin(
.init(
backgroundColor: .blue,
borderColor: .yellow,
scale: 2.0
) {Text("G").minimumScaleFactor(0.01)}
)
)
}
Mudar a cor do plano de fundo
Use a opção PinElement.background para mudar a cor de fundo de um marcador:
Map(mode: .hybrid){
Marker(
position: .init(latitude: 48.8566, longitude: 2.3522, altitude: 0.0),
label: "Paris",
style: .pin(.init(backgroundColor: .yellow)) // Changes the pin's background color
)
}
Mudar a cor da borda
Use a opção markerOptions.borderColor para mudar a cor da borda de um marcador:
Map(mode: .hybrid){
Marker(
position: .init(latitude: -22.9068, longitude: -43.1729, altitude: 0.0),
label: "Rio de Janeiro",
style: .pin(.init(backgroundColor: .green, borderColor: .brown)) // Customizes the pin border
)
}
Adicionar texto a um glifo
Use o método markerOptions.glyph para substituir o glifo padrão por um caractere de texto. O glifo de texto do marcador é dimensionado com ele:
Map(mode: .hybrid){
Marker(
position: .init(latitude: 25.2048, longitude: 55.2708, altitude: 0.0),
label: "Dubai",
style: .pin(.init(backgroundColor: .green)) {
Text("D") // Adds text inside the marker glyph
}
)
}