2016-11-30 9 views
0

マウスカーソルの下のタイルのURLを取得する必要があるので、この画像をボックスに拡大表示することができます。私はこれがOL3ではるかに簡単であることに同意しますが、このアプリケーションではOL2を使用する必要があります。この機能は、層の定義から呼び出され、私はそれは使用だ理解し、しかしOSMレイヤーからopenlayers 2タイルURLを取得する方法

function get_my_url (bounds) { 
    var res = this.map.getResolution(); 
    var x = Math.round ((bounds.left - this.maxExtent.left)/(res * this.tileSize.w)); 
    var y = Math.round ((this.maxExtent.top - bounds.top)/(res * this.tileSize.h)); 
    var z = this.map.getZoom(); 

    var path = z + "/" + x + "/" + y + "." + this.type; 
    var url = this.url; 
    if (url instanceof Array) { 
     url = this.selectUrl(path, url); 
    } 
    return url + path; 

} 

:私は、URL(taken from here)を計算スニペットを見つけました。私はこのタイプの関数がどのようにマウスのホバーまたはマウスのタイルをクリックして呼び出すことができるかの例を見つけることができません。

私は、上記のスニペットの「this」がタイルであると推測しています。タイルをこの関数に渡すにはどうしたらいいですか? getTile関数はありません。タイルURLを取得する簡単な方法はありますか?ありがとう。

点クリック又はovered「としてlonLat」、および「層」OSM層を参照すると

答えて

0

:同じOpenLayers.Layer.XYZを拡張非OSM層に対しても動作するはず

var bounds = new OpenLayers.Bounds(lonLat.lon, lonLat.lat, lonLat.lon, lonLat.lat); 
var xyz = layer.getXYZ(bounds); 
var tileUrl = OpenLayers.String.format(layer.url[0], xyz); 

関連する問題