Базовая настройка маркера

Выберите платформу: Android iOS JavaScript

Карта Сан-Франциско с маркерами, выполненными в оригинальном стиле.

Вы можете настроить внешний вид маркеров, сконфигурировав объект PinStyle . Тип PinStyle предоставляет возможности для изменения цвета фона и границы, текста и цвета глифа, высоты, используемого изображения и других параметров для дополнительной настройки.

В приведенном ниже примере кода показано, как создать новый маркер и оформить его, используя некоторые из доступных параметров настройки:

Map(mode: .hybrid) {
  Marker(
      position: .init(latitude: 51.5074, longitude: -0.1278, altitude: 0.0),
      label: "London",
      style: .pin(.init(scale: 2.0))
  )
}

На этой странице показано, как настраивать маркеры следующими способами:

Увеличьте масштаб маркера

Для масштабирования маркера используйте параметр 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)}
        )
  )
}

Изменить цвет фона

Используйте параметр PinElement.background , чтобы изменить цвет фона маркера:

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
  )
}

Изменить цвет границы

Используйте параметр markerOptions.borderColor , чтобы изменить цвет границы маркера:

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
  )
}

Добавить текст к глифу

Используйте метод markerOptions.glyph , чтобы заменить стандартный глиф текстовым символом. Текстовый глиф маркера масштабируется вместе с маркером:

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
    }
  )
}