2016-08-02 2 views
1

私はいくつかのカスタムタイルを描画するためにopenlayers 3、3.17.1を使用していました。私は、ol.source.UrlTileサブクラスのgetTileメソッドに渡されたy座標が負であることに気付きました。どうして?Openlayers 3では、なぜTMSのy座標が負の値になっていますか?

編集:ここで私は

var MyVectorTile = function (options) { 
    ol.source.VectorTile.call(this, options); 
    this.customOption_ = options.customOption; 
}; 
ol.inherits(MyVectorTile, ol.source.VectorTile); 
MyVectorTile.prototype.getTile = function (z, x, y, pixelRatio, proj) { 
    console.log(z, x, y); 
    return ol.source.VectorTile.prototype.getTile.call(this, z, x, y, pixelRatio, proj); 
} 

を見ているものを見るためにはここでそれを見るために別の方法だ方法です - OL3を経て、私の最高の推測

new ol.layer.Tile({ 
    visible: true, 
    preload: 16, 
    source: new ol.source.TileDebug({ 
    projection: "EPSG:3857", 
    tileGrid: new ol.tilegrid.createXYZ({ 
      maxZoom: 22 
     }), 
    color: 'rgba(255,204,0,1)' 
}), 
title: 'Ol3 Tile Debug' 
}); 
+0

これは明らかか疑問な質問ですか?ドキュメントへのリンクで十分です – ryansstack

+0

経度-180度(負のx座標になります)を超えない限り、TMS座標には負の数値はありません。 'ol.source.UrlTile'で' getTile() '関数を見つけることができません - カスタムタイルやコードについてもっと詳しく投稿できますか?どの参考システムを使用していますか? – chrki

答えて

1

マップにこのレイヤーを追加JavaScriptデバッガでは、これらは内部座標であり、ol.source.TileDebugはそれらをそのまま表示します。

ol.TileUrlFunction.createFromTemplateには、this partがあります。私は、これは負のyは(彼らは「テンプレート」のプレースホルダを持つURLを呼び出す)正1に調整し、タイルのURLに{y}プレースホルダに挿入変える伝えることができるものから、

var y = -tileCoord[2] - 1; 

、私はOpenStreetMapのタイルを試してみました入力と出力が一致します。

ol.source.TileDebugしかし、この関数は実行されません(「テンプレート」URLはありません。指定しても関数が呼び出されなくても)、その内部座標が画面に表示されます。

関連する問題