美文网首页GiserWebGIS
国内主要地图瓦片坐标系定义及计算原理

国内主要地图瓦片坐标系定义及计算原理

作者: CntChen | 来源:发表于2016-05-10 20:05 被阅读7123次

    本文在简书的公式编辑器错误,导致内容出错。
    移步 github 查看博文.

    相关文章

      网友评论

      • brandycoffee:天啦 为什么我看不见文章?
        brandycoffee:@19d4b4a39bab 找到了,作者搬到github了 http://cntchen.github.io/2016/05/09/%E5%9B%BD%E5%86%85%E4%B8%BB%E8%A6%81%E5%9C%B0%E5%9B%BE%E7%93%A6%E7%89%87%E5%9D%90%E6%A0%87%E7%B3%BB%E5%AE%9A%E4%B9%89%E5%8F%8A%E8%AE%A1%E7%AE%97%E5%8E%9F%E7%90%86/
        19d4b4a39bab:我也是
      • d6fa1b7576f5:高德地图中建筑物信息中除了像素坐标还有Coords信息
        Coords:-13, 141, -13, 129, 38, 129, 38, 141, -13, 141
        Coords信息如何转换为经纬度坐标?
        谢谢!
        CntChen:这些信息应是一个瓦片里面的像素座标, 所以需要根据这些数据所在的瓦片座标来计算.
      • WJ96:你好!对百度地图进行截图然后再拼接,可以用每个截图的左下角和右上角平面坐标来定位拼接吗?这样是不是会有偏差?我之前掉到了用经纬度的坑。
        CntChen: @wujj33 可能我的理解有偏差,具体业务并不是很了解哈。经纬度、瓦片编号、瓦片层级、瓦片上像素坐标这几个量,之间是可以计算的,所以确定了目标值,就要找齐其他几个量,这样应该是有解的。
        WJ96:@CntChen 我是自己用百度js api设计只有全景道路线的html,我自己想的是webdriver访问截图同时修改定位的点,再获取左下右上的坐标。请问你说的爬虫是怎么实现的?
        CntChen: @wujj33 最直接是使用爬虫 爬到的每张图(瓦片)是大小一致的 并且比较容易确定瓦片的属性
      • 12bc8f70152d:楼主你好,非常感谢你提供的算法,我用你的算法进行高德地图坐标转换,从经纬度到瓦片坐标貌似没问题,但是从经纬度到像素坐标的时候有点出入。我在进行y像素转换后得到的结果感觉不是很准确。你提供的算法是否可以理解为,计算瓦片坐标的算法相同,但最后取小数点后面的部分,最后乘以256得到该点在对应瓦片图的像素偏移量。不知道这样理解错了没有。我在进行x像素坐标计算得到的结果是准确的,y的误差有时大有时小,是我计算出错吗?
        fecf1d416cb9:“将墨卡托投影地图的左上角作为瓦片坐标系起点,往左方向为X轴,X轴与北纬85.05º重合且方向向左;往下方向为Y轴,Y轴与东经180º(亦为西经180º)重合且方向向下。”,这个文字描述和下面的图示都不一致,看的我好困惑啊,还是我没看懂?
        12bc8f70152d: @CntChen 非常感谢,用新的算法已经可以得到准确数据,但是要值得注意的是,输入的坐标要使用高德坐标。
        CntChen: 思路完全正确。
        我公式有个地方写错了: `1` 应该为 `1/2` `,你可以再尝试下。
        也可以直接看代码: https://github.com/CntChen/tile-lnglat-transform/blob/master/src/transform-class-slippy.js#L72
        如果还有问题,把转换的数据和结果贴出来,我去测试一下。
      • xringxie:高德地图最后一部分公式里:瓦片(tileX, tileY)的像素坐标(pixelX, pixelY)转经纬度坐标(lng, lat)

        tileX/ 256和tileY/256,如果tile像素下标从0开始,则下标范围是 [0-255],取 pixelX = 255 得到的 lng < 180;如果tile像素下标从1开始,则下标范围是[1-256],取pixelX=1 得到的 lng > -180

        请问博主,这是可允许的误差还是我理解错了?
        CntChen:@xringxie 好问题。
        1. 除数选择 256 应该是没有问题的,因为不管是 0~255 还是 1~256,都是 256 等份;
        2. 应该 0~255 是比较合适的,因为前面推算 pixelX 和 pixelY 的公式是向下取整的,所以得到的值是 0~255;
        3. 以 level = 0 为例,确实存在 pixelX=255 时 lng < 180, 但是有 tileX=1,pixelX = 0 的情况,此时就是 lng = 180; lng = -180 同理;
        4. 像素坐标作为单位的时候,其是有宽度的,数据是跳变的,比如像素点1,像素点0和像素点1的边界到像素点1和像素点2的边界,都属于像素点1,需要根据需求约定采用左边界还是右边界。

      本文标题:国内主要地图瓦片坐标系定义及计算原理

      本文链接:https://www.haomeiwen.com/subject/ytmyrttx.html