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

Posted

技术标签:

【中文标题】swift 3 google maps - 如何更新地图上的标记【英文标题】:swift 3 google maps - how to update marker on the map 【发布时间】:2017-06-30 13:37:26 【问题描述】:

我正在使用谷歌地图

这是我的代码:

import UIKit
import GoogleMaps

 class ViewController: UIViewController 

@IBAction func pressed(_ sender: Any) 

    //self.myMapView.marker.position = CLLocationCoordinate2D(latitude: +31.75097956, longitude: +35.23694378)






@IBOutlet weak var myMapView: GMSMapView!


override func viewDidLoad() 
    super.viewDidLoad()


    let camera = GMSCameraPosition.camera(withLatitude: +31.75097946, longitude: +35.23694368, zoom: 17.0)
    self.myMapView.mapType =  .terrain
    self.myMapView.camera = camera
    // Creates a marker in the center of the map.
    let marker = GMSMarker()
    marker.position = CLLocationCoordinate2D(latitude: +31.75097946, longitude: +35.23694368)
    marker.title = "some text"
    marker.map = self.myMapView
    marker.opacity = 1.0


有一个 UIView 可以在其中加载地图。还有一个按钮。 按下按钮时,我想更新标记的位置。

谢谢

【问题讨论】:

您要更新您在viewDidLoad() 上添加的标记位置吗? 是的。没错 【参考方案1】:

创建marker 作为类变量。并且按钮点击功能添加如下代码

import UIKit
import GoogleMaps

class ViewController: UIViewController 


@IBOutlet weak var myMapView: GMSMapView!
var marker: GMSMarker!


override func viewDidLoad() 
    super.viewDidLoad()


    let camera = GMSCameraPosition.camera(withLatitude: +31.75097946, longitude: +35.23694368, zoom: 17.0)
    self.myMapView.mapType =  .terrain
    self.myMapView.camera = camera
    // Creates a marker in the center of the map.
    marker = GMSMarker()
    marker.position = CLLocationCoordinate2D(latitude: +31.75097946, longitude: +35.23694368)
    marker.title = "some text"
    marker.map = self.myMapView
    marker.opacity = 1.0



@IBAction func pressed(_ sender: Any) 

    //New location coordinate 
     marker.position = CLLocationCoordinate2D(latitude: -1.75097946, longitude: +15.23694368)

     let camera = GMSCameraPosition.camera(withTarget: marker.position, zoom: 17.0)
     mapView.camera = camera



【讨论】:

以上是关于swift 3 google maps - 如何更新地图上的标记的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3 - 在 GMSMarker 上长按并打印其坐标(Google Maps iOS SDK)

如何在 swift 中为 ios 的 google maps sdk 中的地图视图添加标记

如何在 Google Map iOS Swift 中获取点击位置的 Lat Long

如何将自定义的 InfoWindow 添加到 google-maps swift ui 中的标记?

Google Maps Swift 中的脉动标记动画

如何使用iOS和Swift从Google SDK获取附近的地点?