如何在谷歌地图SDK iOS上更改动态标记的坐标?

时间:2016-07-06 08:41:39

标签: ios google-maps google-maps-markers

我的服务器数据包含我的标记坐标,数据是动态的。接下来,我必须将它们添加到谷歌地图。但是5秒后(我有计时器)数据发生了变化,我必须在标记处更改我的数据。 我的功能:

//self.markers.map = nil
self.mapView.clear()
for temp_cord in double_arr {
  self.markers = GMSMarker(position: CLLocationCoordinate2D(latitude: Double(temp_cord[1])!, longitude: Double(temp_cord[2])!))
  self.markers.map = self.mapView
 }

如果我取消注释self.markers.map = nil我的标记会重复但不会删除。所以我的标记看起来像汽车,然后在谷歌地图上移动。

1 个答案:

答案 0 :(得分:1)

在绘制新的引脚组之前,必须先移除所有引脚。使用以下代码删除地图中的所有图钉。它适用于我

NSObject类

import Foundation
class LocationVO: NSObject {
var L_Latitude: String
var L_Longitude: String
var L_Id: String
var L_PlaceId: String
var L_Reference: String
var L_Name: String
}

的ViewController

func plotPins() {
    mapView_.clear()
    if isCurrentLoc {
        if marker_ == nil {
            marker_ = GMSMarker()
        }
    }
    else {
        marker_ = GMSMarker()
        marker_.userData = locationVO
    }
    var target: CLLocationCoordinate2D = CLLocationCoordinate2DMake(locationVO.L_Latitude, locationVO.L_Longitude)
    marker_.position = target
    marker_.title = "Current:"
    var coord: String = "\(latitude) \(longitude)"
    marker_.appearAnimation = kGMSMarkerAnimationPop
    DLog("%f %f", latitude, longitude)
    //    marker.icon = [UIImage imageNamed:@"marker"];
    if isCurrentLoc {
        marker_.opacity = 0.0
    }
    marker_.snippet = (coord)
    marker_.map = mapView_
}

谢谢,希望它有所帮助!!!