如何在swift中选择更改谷歌地图标记颜色?

Der*_*ike 8 google-maps marker google-maps-markers ios swift

我有一个带有a的视图控制器,GMSMapView并在地图上加载了许多标记.我可以更改选择哪个标记,mapView.selectedMarker = ...但如何更改所选标记的颜色?

Der*_*ike 21

您可以使用GMSMarker.markerImage(with: <UIColor?>)重置标记的图标.

文档:Google Maps iOS SDK GMSMarker类参考

import GoogleMaps

// view controller
class MapViewController: UIViewController {

    // outlets
    @IBOutlet weak var mapView: GMSMapView!

    // view did load method
    override func viewDidLoad() {
        super.viewDidLoad()

        // set map view delegate
        mapView.delegate = self
    }
}

// extension for GMSMapViewDelegate
extension MapViewController: GMSMapViewDelegate {

    // tap map marker
    func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
        print("didTap marker \(marker.title)")

        // remove color from currently selected marker
        if let selectedMarker = mapView.selectedMarker {
            selectedMarker.icon = GMSMarker.markerImage(with: nil)
        }

        // select new marker and make green
        mapView.selectedMarker = marker
        marker.icon = GMSMarker.markerImage(with: UIColor.green)

        // tap event handled by delegate
        return true
    }
}
Run Code Online (Sandbox Code Playgroud)