Чтобы создать пользовательский маркер, необходимо создать подкласс GMSMarker
и создать его iconView
в соответствии с вашими потребностями.
Из Документация Google Maps :
(UIView*) iconView [read, write, assign]
Вид маркера для визуализации.Если оставлено ноль, вместо этого возвращается свойство icon.
Пример:
class CustomMarker: GMSMarker {
var label: UILabel!
init(labelText: String) {
super.init()
let iconView = UIView(frame: CGRect(origin: .zero, size: CGSize(width: 50, height: 80)))
iconView.backgroundColor = .white
label = UILabel(frame: CGRect(origin: .zero, size: CGSize(width: iconView.bounds.width, height: 40)))
label.text = labelText
iconView.addSubview(label)
self.iconView = iconView
}
}
Использование:
let marker = CustomMarker(labelText: "my_label")
marker.position = CLLocationCoordinate2D(latitude: 0, longitude: 0)
marker.map = //your mapView object
Обратите внимание, что iconView
толькоиспользуется для создания уценки для вашего маркера, который будет отображаться.Ваш маркер не будет сложным, как обычно UIView
, поэтому добавление к нему любых жестов или сложных прокручиваемых видов не даст никакого эффекта.