问题描述
我的目标是在瓷砖变化时执行某些任务。我有一个自定义类,它充当我的数据源:
class MyDataSource: NSObject,MGLComputedShapeSourceDataSource {
func featuresInTileAt(x: UInt,y: UInt,zoomLevel: UInt) -> [MGLShape & MGLFeature] {
}
}
它工作正常-当我移动到地图上的其他位置时,它会被调用并为我提供当前的x,y和zoomLevel值。我也想做无效化,并找到方法:invalidateTileAt(x: UInt,zoomLevel: UInt)
。如果我正确理解了它的目的,我希望它在下一次调用featuresInTileAt
之前被调用,这样我就可以在新值出现之前使用当前值。我实现了一个自定义类:
class MyComputedShapeSource: MGLComputedShapeSource {
override func invalidateTileAt(x: UInt,zoomLevel: UInt) {
//...
}
}
let myDataSource = MyDataSource()
myDataSource?.delegate = self
let mySource = MyComputedShapeSource(identifier: "mySource",dataSource: myDataSource!,options: nil)
self.style.addSource(mySource!)
featuresInTileAt
工作正常,但是从未调用过invalidateTileAt
。我的代码是否有问题,或者我可能不正确理解该方法的用途,应该手动调用它?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)