ios - 如何创建我自己的 GMSMarker? (谷歌地图,iOS)- swift

标签 ios swift google-maps google-maps-markers gmsmapview

我想创建自己的标记,因为我需要跟踪有关它们的额外信息(例如,添加日期、标记 ID)...

于是又创建了一个类,如下:

    class myMarker: GMSMarker {
        var markerID: Int
        var addedDate: NSDate

    }

但我不知道下一步该怎么做……我应该创建一个“init”方法来填充我的 markerId 和 addedDate 吗?或者我应该覆盖 GMSMarker 构造函数(不是“init”) 可以是

    class myMarker: GMSMarker {
        var markerID: Int
        var addedDate: NSDate
        var myMarker: GMSMarker

        init(marID: Int, date: NSDate, GMSMarker: markerwithoutDateNorId){
           self.markerID = marID
           self.addedDate = date
           self.myMarker = markerwithoutDateNorId
        }
     }

我真的不知道如何实现它。也许我什至不需要实现构造函数,而是使用 GMSMarker 构造函数(我相信我继承了它),然后使用 set 方法来设置标记 ID 和日期?

或者我可以覆盖 GMSMarker 构造函数,然后使用 super(what-is-expecting-here) 然后我会添加日期和标记 ID。

我真的需要创建自己的标记类型,因为我需要跟踪这些事情……例如,我想在将来删除所有超过 1 周的标记……并且如果我不跟踪标记日期,那将是不可能的。

我真的需要 Swift 和一般编程。非常感谢您的帮助:)

最佳答案

还有另一种方法,GMSMarker 有 userData 属性可以接受 AnyObject。

var info: Dictionary<String, AnyObject>?
info[“markerID”] = 0
info[“addedDate”] = NSDate()

let marker = GMSMarker()
marker.position = CLLocationCoordinate2D(latitude:latitude, longitude:longitude)
marker.map = nil
marker.tracksInfoWindowChanges = false
marker.map = self.mapView
marker.userData = info

关于ios - 如何创建我自己的 GMSMarker? (谷歌地图,iOS)- swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38559871/

相关文章:

ios - DragInteraction itemsForBeginning 未触发

ios - 由于错误 "Failed to use existing instance 0 for app with bundle identifier: com.apple.Carousel",Apple Watch 应用无法构建

ios - 如何在不将它添加到 subview 的情况下截取 uiview?

javascript - 以编程方式绘制一组正方形的边界的最佳方法是什么?

javascript - 使用 Google Maps API 从当前缩放级别获取最大查看距离

objective-c - Ooyala 播放器 (iOS) : how to start in full screen?

ios - 使用默认按钮复制 UITabBarController 逻辑

c# - Xamarin 在页面之间传递参数

ios - ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering 不工作

java - moveCamera() 在 Android 上使用错误的位置数据