だから、IBOutletで宣言されたGoogleマップがあります
@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はnilです:(
誰かが私のmapViewをこのGMSSyncTileLayerに渡す方法を教えてください。
または、x と y を使用して「mapView.projection」に相当するものを取得する方法を教えてください。とにかくそれがmapViewから本当に必要なものだからです。
また、これらの x と y の値は意味がありません...
^これは、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) にいますか? それは私の地図の中心にありますか?私はここで何を見ていますか?
ありがとう!