1

だから、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) にいますか? それは私の地図の中心にありますか?私はここで何を見ていますか?

ありがとう!

4

1 に答える 1