javascript - 将图 block 的 xyz 坐标转换为经度/纬度

标签 javascript gis openlayers-3

我想使用 openlayers 制作 map ,但以独特的方式将其居中。例如,我的 z/x/y 坐标为 12/2045/-1362,如何将其转换为经度/纬度?这与此完全相反:How to get X Y Z coordinates of tile by click on Leaflet map

我很难得到上面链接的逻辑并反转它。我希望这里有人对此有经验或现成的公式。谢谢

稍后我会像这样渲染我的 map 的中心:

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 瓦片坐标(原点左上)

关于javascript - 将图 block 的 xyz 坐标转换为经度/纬度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32046601/

相关文章:

svg - 如何在OpenLayers-3中将SVG图像用作 map 标记?

javascript - 为什么 FullCalendar 将此事件呈现为单日事件?

javascript - 查看传单 geojson 时出现扭曲

javascript - Openlayers 3 中的 map 加载回调

c++ - 将点从 cs::cartesian 转换为 WGS84

google-maps - 如何使用传单显示 "Google API directions"折线?

javascript - 如何在 openlayers 3 中的图标周围添加可点击的边距?

javascript - 如何使用 Javascript 检测区域的宽度并应用正确的菜单间距

javascript - 在辅助屏幕上定位弹出窗口

javascript - Django,Javascript : Form injected into DOM via javascript innerHtml crashes google chrome tab on submit. 在 IE 中工作