Я не знаю, есть ли лучшее решение для достижения этой цели.
Я использую оверлеи, как вы упомянули в своем вопросе.
Вы можете настроить оверлей со своим собственным красивым стилем на https://mapstyle.withgoogle.com/
Вы получите JSON для настройки, включите ключ приложения, и вы готовы к использованию в своем приложении.
В вашем приложении
import GoogleMaps
@IBOutlet weak var viewMap: GMSMapView!
public let kMapStyle = "[{\"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#f5f5f5\" } ] },{\"elementType\": \"labels.icon\",\"stylers\": [{\"visibility\": \"on\"}]},{\"elementType\": \"labels.text.fill\",\"stylers\": [{\"color\": \"#616161\"}]},{\"elementType\": \"labels.text.stroke\",\"stylers\": [{\"color\": \"#f5f5f5\"}]},{\"featureType\": \"administrative.land_parcel\",\"elementType\": \"labels.text.fill\",\"stylers\": [{\"color\": \"#bdbdbd\"}]},{\"featureType\": \"poi\",\"elementType\": \"geometry\",\"stylers\": [{\"color\": \"#eeeeee\"}]},{\"featureType\": \"poi\",\"featureType\":\"poi.business\",\"stylers\": [{\"visibility\": \"on\"}],\"elementType\": \"labels.text.fill\",\"stylers\": [{\"color\": \"#757575\"}]},{\"featureType\": \"poi.park\",\"elementType\": \"geometry\",\"stylers\": [{\"color\": \"#e5e5e5\"}]},{\"featureType\": \"poi.park\",\"elementType\": \"labels.text.fill\",\"stylers\": [{\"color\": \"#9e9e9e\"}]},{\"featureType\": \"road\",\"elementType\": \"geometry\",\"stylers\": [{\"color\": \"#ffffff\"}]},{\"featureType\": \"road.arterial\",\"elementType\": \"labels.text.fill\",\"stylers\": [{\"color\": \"#757575\"}]},{\"featureType\": \"road.highway\",\"elementType\": \"geometry\",\"stylers\": [{\"color\": \"#dadada\"}]},{\"featureType\": \"road.highway\",\"elementType\": \"labels.text.fill\",\"stylers\": [{\"color\": \"#616161\"}]},{\"featureType\": \"road.local\",\"elementType\": \"labels.text.fill\",\"stylers\": [{\"color\": \"#9e9e9e\"}]},{\"featureType\": \"transit.line\",\"elementType\": \"geometry\",\"stylers\": [{\"color\": \"#e5e5e5\"}]},{\"featureType\": \"transit.station\",\"elementType\": \"geometry\",\"stylers\": [{\"color\": \"#eeeeee\"}]},{\"featureType\": \"water\",\"elementType\": \"geometry\",\"stylers\": [{\"color\": \"#c9c9c9\"}]},{\"featureType\": \"water\",\"elementType\": \"labels.text.fill\",\"stylers\": [{\"color\": \"#9e9e9e\"}]}]"
//YOUR JSON FOR STYLE
override func viewDidLoad() {
super.viewDidLoad()
do {
viewMap.mapStyle = try GMSMapStyle(jsonString: kMapStyle)
} catch {
NSLog("One or more of the map styles failed to load. \(error)")
}
}
Пожалуйста, дайте мне знать, если это поможет, или у вас возникнут другие проблемы во время реализации.