Документация относительно GMSCircle гласит, что некоторые наложения, такие как маркеры, будут отображать заголовок на карте. Я не уверен, верно ли это при использовании GMSCircle.
Однако в качестве обходного пути для вашей проблемы вы можете поместить метку в GMSCircle при использовании GMSMarker с UIlabel из ответа SO в комментарий Mamaessen выше. Вот фрагмент кода, включенный в GMSCircle:
class ViewController: UIViewController {
override func loadView() {
var circle: GMSCircle!
let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 9.0)
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
view = mapView
circle = GMSCircle(position:camera.target , radius: 50000)
circle.fillColor = UIColor.green.withAlphaComponent(0.5)
circle.strokeColor = .blue
circle.strokeWidth = 2
circle.title = "THIS IS CIRCLE"
circle.map = mapView
let labelMarker = GMSMarker(position: camera.target)
let label = UILabel()
label.text = circle.title
label.textColor = UIColor.red
label.sizeToFit()
labelMarker.iconView = label
labelMarker.map = mapView
}
}
Если вы хотите, чтобы он отображался после нажатия на круг, как всплывающее окно при нажатии на круг, вы можете использовать изображение в виде круга и использовать это как значок вашего маркера, а текстовая метка должна быть в заголовке маркера. Вот как я реализую это в коде. Просто обратите внимание, что вы можете заметить строку marker.icon = UIImage(named: "circle")
, здесь вы можете указать название изображения, которое вы хотите в качестве маркера. В моем случае я сделал Новый набор изображений в моих Активах и поместил изображение, которое я хочу использовать в качестве своего пользовательского маркера.
lass ViewController: UIViewController {
override func loadView() {
let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 9.0)
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
view = mapView
// Creates a marker in the center of the map.
let marker = GMSMarker()
marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
marker.title = "Sydney"
marker.icon = UIImage(named: "circle")
marker.map = mapView
}
}
Надеюсь, это поможет!