分辨率和比例尺换算 resolution/scale

分辨率

(1)平面坐标系

Resolution,地面分辨率,类似Spatial Resolution(空间分辨率),我们这里主要关注用象元(pixel size)表示的形式:一个像素(pixel)代表的地面尺寸(米)。以天地图为例,Level为1时,图片大小为256*256(4个Tile),那么赤道空间分辨率为:赤道周长/512。其他纬度的空间分辨率则为 纬度圈长度/512,极端的北极则为0。Level为2时,赤道的空间分辨率为 赤道周长/1024,其他纬度为 纬度圈长度除以1024。很明显,Ground Resolution取决于两个参数,缩放级别Level和纬度latitude ,Level决定像素的多少,latitude决定地面距离的长短。

以LEVEL为1级的时候为前提,取屏幕分辨率为96DPI(像素/英寸)

地面分辨率:一像素代表地面的距离(米),单位为像素/米;

Resolution = 实际距离/屏幕上的像素个数 = 实际距离(米)/512 (像素)

比例尺

(1)平面坐标系

比例尺:屏幕上的距离代表的地面的距离,无单位,仅为一个数值

Scale = 512(像素)/屏幕分辨率(像素/英寸) * 0.0254(米/英寸) /实际距离(米)

(2)经纬度

经纬度跟平面的思路差不多,不过由于经纬度的表征距离的时候用的是度数,所以在换算的时候,需要把度数
换成米,其换算公司如下:

Scale = 1 : (96 * 2 * Math.PI * 6378137 * resolution / 360 / 0.0254);

转换代码


export function scale2Resolution(scale, unit) {
  debugger
  let resolution
  if (unit === 'degrees') {
    //   scale=   96 * 2 * Math.PI * 6378137 * resolution / 360 / 0.0254
    resolution = scale * 0.0254 * 360 / 96 / 2 / Math.PI / 6378137;
  } else {
    resolution = 0.0254 / 96 * scale;
  }
  return resolution;
}

export function resolution2Scale(resolution, unit) {
  debugger
  let scale
  if (unit === 'degrees') {
    scale = 96 * 2 * Math.PI * 6378137 * resolution / 360 / 0.0254
  } else {
    scale = 96 * resolution / 0.0254
  }
  return scale;
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值