Mapbox-从未调用过invalidateTileAt

问题描述

我的目标是在瓷砖变化时执行某些任务。我有一个自定义类,它充当我的数据源:

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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...