【问题标题】:Convert xyz coordinate of a tile to longitude/latitude将图块的 xyz 坐标转换为经度/纬度
【发布时间】:2015-08-17 09:11:31
【问题描述】:

我想使用 openlayers 制作地图,但以一种独特的方式居中。例如,我的 z/x/y 坐标为 12/2045/-1362,如何将其转换为经度/纬度?与此截然相反:How to get X Y Z coordinates of tile by click on Leaflet 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
          });

希望我的问题能得到更多理解,谢谢。

编辑:添加代码

【问题讨论】:

  • 对我来说,不清楚,你在找permalink吗?
  • 抱歉,我阅读了链接。不,您从我创建的链接中获取现有代码,然后通过将其转换为 lat/lng 来根据平铺值 12/2045/-1362 更改中心值。这可能吗?
  • 我不这么认为。让我们看看其他人怎么说,同时我的猜测是你重新考虑你的用例。
  • 你从哪里/如何得到这个12/2045/-1362
  • openlayers.org/en/v3.5.0/examples/canvas-tiles.html?q=tiles 检查这个,默认情况下这里的缩放级别是 10,我只是进一步放大到 12。只是进一步编辑了我的问题.. 我的客户想要发生的是给定一个特定的xyz 瓦片坐标,我会使用 openlayers 显示它,该坐标应该是 ol.view 的值,因此瓦片是视图的中心。

标签: javascript gis openlayers-3


【解决方案1】:
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 你能帮我解决这个问题吗:gis.stackexchange.com/questions/173646/… 谢谢!
  • @Alvin Lindstam...不是在点击时获得结果,是否可以注册生成的图块并将所有结果保存在某种文本文件中,最好是 geojson: { "type": "特征”、“属性”:{“瓦片”:“10、510、-341”}、“几何”:{“类型”:“点”、“坐标”:[-58703.63772301562、6711782.579664757]}}
  • @阿尔文Lindstam或CSV:10510,-341,-78271.51696402207,6692214.700423751,-39135.75848200917,6731350.458905762,58703.63772301562,6711782.579664757(Z,X,Y,左下区块的一角,右以上瓦片的角, x_center,y_center)
  • @newbie_girl:当然,但这是这个问题的主题。如果您无法找到解决方案,请发布新问题。
  • @AlvinLindstam 感谢您的快速回复...请看一下这个问题:stackoverflow.com/questions/40344476/…
猜你喜欢
  • 2019-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-23
  • 1970-01-01
  • 1970-01-01
  • 2013-09-21
  • 1970-01-01
相关资源
最近更新 更多