将瓦片的xyz坐标转换为经度/纬度
我想使用openlayers制作地图,但以一种独特的方式为中心。例如,我有一个12/2045/-1362的z/x/y坐标,我如何将它转换为经度/纬度?这是相反的极端:How to get X Y Z coordinates of tile by click on Leaflet map将瓦片的xyz坐标转换为经度/纬度
这对我来说很难得到上述链接的逻辑并将其反转。我希望这里有人有这方面的经验或现成的公式。由于
后来我将在渲染我的地图像这样的中心:
var z = 12;
var x = 2045;
var y = -1362;
function convertXYZtoCoor(z, x, y) {
// code here
return [lng, lat];
}
var coor = convertXYZtoCoor(z, x, y);
var view = new ol.View({
center: ol.proj.transform(
[coor[0], coor[1]], 'EPSG:4326', 'EPSG:3857'),
zoom: z
});
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
target: 'map',
view: view
});
希望我的问题是了解更多的感谢。
编辑:添加代码
var tileExtent = function(tileCoord){
var z = tileCoord[0];
var x = tileCoord[1];
var y = tileCoord[2];
var tileGridOrigin = tileGrid.getOrigin(z);
var tileSizeAtResolution = tileGrid.getTileSize(z) * tileGrid.getResolution(z);
return [
tileGridOrigin[0] + tileSizeAtResolution * x,
tileGridOrigin[1] + tileSizeAtResolution * y,
tileGridOrigin[0] + tileSizeAtResolution * (x + 1),
tileGridOrigin[1] + tileSizeAtResolution * (y + 1)
];
}
您可以测试/验证在http://jsfiddle.net/eurx57s7/
注(从OL3例如被盗,但在这里也适用于): 瓦片坐标OL3标准化瓦坐标(原点左下),而不是OSM瓦片坐标(原点左上角)
谢谢!!这是一个很好的解决方案!正是我需要的 –
@AlvinLindstam你能否帮我解决这个问题:http://gis.stackexchange.com/questions/173646/calculate-tiles-xyz-for-current-view-or-extent-in-openlayers谢谢! –
@Alvin Lindstam ...而不是在点击时获得结果,是否可以注册生成的图块并将所有结果保存在某种文本文件中,最好是geojson:{“type”:“Feature”,“properties”: {“tile”:“10,510,-341”},“geometry”:{“type”:“Point”,“coordinates”:[-58703.63772301562,6711782.579664757]}} –
对我而言,目前还不清楚,你在找[永久链接](http://openlayers.org/en/v3.8.2/examples /permalink.ht毫升#地图= 2/0/0/0)? –
我看了链接抱歉。不,您从我创建的链接中获取现有代码,只需将基于瓦片值12/2045/-1362的中心值转换为lat/lng即可更改中心值。这可能吗? –
我不这么认为。让我们看看其他人说的,同时我的猜测是你重新思考你的用例。 –