如何在 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 - 如何更新地图上的标记