如何在 Swift 中使用 googleMaps 更新我的位置自定义标记

Posted

技术标签:

【中文标题】如何在 Swift 中使用 googleMaps 更新我的位置自定义标记【英文标题】:How to update my location Custom Marker with googleMaps in Swift 【发布时间】:2022-01-10 04:27:21 【问题描述】:

我目前正在尝试创建一种方法来使用自定义图标更改 googlemaps 的蓝点,但目前我遇到标记打印但不清除其最后位置的问题,这是我正在使用的代码正确现在使用“CLLocationManagerDelegate”和“GMSMap”

    //MARK: - location delegate methods

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) 
    if userLocation == nil 
        userLocation = manager.location!.coordinate
        let location = GMSCameraPosition.camera(withLatitude: userLocation.latitude, longitude: userLocation.longitude, zoom: 15)
        mapView.animate(to: location)

    
    
    userLocation = manager.location!.coordinate
    let userLocationMarker = GMSMarker(position: manager.location!.coordinate)
    userLocationMarker.icon = UIImage(named: "est-my-location")
    userLocationMarker.map = mapView

【问题讨论】:

您每次都在创建一个新的标记。您需要一个标记并更改其位置。 【参考方案1】:

didUpdateLocations locations 获取最后位置并更新标记位置。

尝试这样做:

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) 

    let newLocation = locations.last // find your device's Last location
    let position    = GMSCameraPosition.camera(withTarget: newLocation!.coordinate, zoom: 15.0) // show your device location on map
    mapView.animate(to: position)

    let lat  = (newLocation?.coordinate.latitude)! // get current location latitude
    let long = (newLocation?.coordinate.longitude)! //get current location longitude
    
    userLocationMarker.icon     = UIImage(named: "est-my-location")
    userLocationMarker.position = CLLocationCoordinate2DMake(lat,long)
    
    DispatchQueue.main.async 
    userLocationMarker.map = mapView  // Setting marker on mapview in main thread.
    

【讨论】:

以上是关于如何在 Swift 中使用 googleMaps 更新我的位置自定义标记的主要内容,如果未能解决你的问题,请参考以下文章

使用googleMaps api在swift mapView中显示方向按钮

如何在 GoogleMaps for iOS 中使用自定义标记进行标记聚类?

Swift - GoogleMaps SDK 获得单指或双指点击手势

swift 3 google maps - 如何更新地图上的标记

如何在 tableViewCell、Google 地图、Swift 中添加从地图中选择的选项

Flutter中如何在PageView中正确使用GoogleMap