GIS基础

2023-03-18  本文已影响0人  不决书

地图投影计算方式:

3857: 地理范围为[-20037508.34,-20037508.34,20037508.34,20037508.34]
分辨率的计算公式为 res =((20037508.34 - (-20037508.34)) / 256) / Math.pow(2, z)

4326: 地理范围为[-180, -90,180,90]
分辨率的计算公式为 res =((180 - (-180)) / 256) / (Math.pow(2, (z + 1)))

地图切片

DPI

栅格化地图,一般用来表示英寸显示多少像素,表示图形的清晰度, 一般为96
矢量地图不存在

瓦片相关的计算

    const tileExtent = [-20037508.34,-20037508.34,20037508.34,20037508.34];
    const tileOrigin = [-20037508.34,20037508.34];
    const tileSize = 256;
    // 计算经纬度100, 39在8级时的行列号
    var lonlat = [100, 39];
    var xy = proj(lonlat, 'EPSG:4326', 'EPSG:3857');// [11131949.079327358, 4721671.572580107]
    var res8 = ((20037508.34 - (-20037508.34)) / tileSize ) / Math.pow(2, 8); // 611.4962261962891
    var size = res8 * 256;// 4891.9698095703125
    var x = Math.floor((xy[0] - tileOrigin[0]) / size);   //6371
    var y = Math.floor((tileOrigin[1] - xy[1]) / size);   //3130
  // 计算8级,行列号为100, 100的切片范围
  var res8 = ((20037508.34 - (-20037508.34)) / tileSize ) / Math.pow(2, 8); // 611.4962261962891
  var size = res8 * 256;// 4891.9698095703125
  var xmin = 100 * size + tileOrigin[0];  //-19548311.35904297
  var xmax = (100 + 1) * size + tileOrigin[0];  //-19543419.3892334
  var ymin = tileOrigin[1] - (100 + 1) * size;  //19543419.3892334
  var ymax = tileOrigin[1] - 100 * size;  //19548311.35904297
上一篇 下一篇

猜你喜欢

热点阅读