所以,我有一个在 IBOutlet 中声明的谷歌地图
@IBOutlet weak var mapView: GMSMapView!
我像这样在 idleAtCameraPosition 函数中创建我的 GMSSyncTileLayer
func mapView(mapView: GMSMapView!, idleAtCameraPosition position: GMSCameraPosition!) {
var layer = TestTileLayer()
layer.map = mapView
}
这是我的 GMSSyncTileLayer
class TestTileLayer: GMSSyncTileLayer {
//MainActivityX() is the name of the View Controller my GMSMapView is in ^
let mainActivity = MainActivityX()
override func tileForX(x: UInt, y: UInt, zoom: UInt) -> UIImage! {
NSLog("X: \(x)")
NSLog("Y: \(y)")
//This is nil :(
NSLog("mapView: \(mainActivity.mapView)")
var boost:Float = 1.00
if let heatmap: UIImage = LFHeatMap.heatMapForMapView(mainActivity.mapView, boost:boost, locations:locations as[AnyObject]) {
NSLog("heatmap")
return heatmap
}
else {
NSLog("kGMSTileLayerNoTile")
return kGMSTileLayerNoTile
}
}
这是我的日志摘录——
2015-06-07 22:18:15.586 Hightide[7011:2387342] Y: 3133
2015-06-07 22:18:15.586 Hightide[7011:2387342] mapView: nil
2015-06-07 22:18:15.587 Hightide[7011:2387344] kGMSTileLayerNoTile
2015-06-07 22:18:15.587 Hightide[7011:2387344] X: 2339
我的地图视图为零:(
有人可以告诉我如何将我的 mapView 传递给这个 GMSSyncTileLayer。
或者告诉我如何使用 x 和 y 来获得等效的 'mapView.projection' ?因为无论如何这就是我真正需要的 mapView 。
这些 x 和 y 值对我来说也没有任何意义......
尽管我阅读了有关Tile Layers的文档
^根据我为 X 和 Y 获得的值,这没有意义
2015-06-07 22:18:15.586 Hightide[7011:2387342] Y: 3133 ???
2015-06-07 22:18:15.587 Hightide[7011:2387344] X: 2339 ???
我仍然很难理解这些 x 和 y 值代表什么。当我一直缩小时,它们会变为零,当我放大时,它们会越来越高。我知道这一点......但不明白这些价值观的含义。
我真的在坐标 (2339,3133) 吗?它在我地图的中心吗?我在这里看什么?
谢谢!