google离线切片加载要点

google离线切片下载工具:全能电子地图下载器1.95   ,网上可以找到破解工具

 

google地图采用Web墨卡托投影,其世界坐标范围为【 -20037508, -20037508,20037508, 20037508.34 】,离线地图加载方式与天地图等切片加载方法及流程完全相同,只是个别参数需要调整,

1、google切片的行列号与天地图的行列号是反着的, google的col  为天地图的row 

2、切片原点为 【-20037508.3427892,20037508.3427892】 

3、谷歌切片为平面投影切片,其 resolution 分辨率为 距离分辨率(单位m),即图片上每个像素代表的实际距离,可以通过简单方法来计算

    假想第0级切片为一张256*256的世界地图,其面积为( 20037508+ 20037508)*( 20037508+ 20037508),

    所以每个像素代表的距离就是 (20037508+ 20037508)/256  = 156543.0339

    则每一级切片的距离分辨率为: 156543.0339 / pow(2,level);

 

有了这些基本参数,后面的的坐标和行列号的转换和其他切片是一样一样的

 

4、通过坐标找行列号

  public  function getTileRowColByCoord(pt:Point, rowCol:Object, resolution:Number):void
  {
   var qRow:Number = Math.abs(pt.y - m_tilePoint.y) / (tileSize * resolution);
   var qCol:Number = Math.abs(pt.x - m_tilePoint.x) / (tileSize * resolution);
   
   //向下舍入
   rowCol.row = Math.floor(qRow);
   rowCol.col = Math.floor(qCol);   
  }

 

5、通过行列号找坐标

  //通过行列获取地理坐标
  public function getCoordByRowCol(row:int, col:int,level:Number):Point
  {
   var pt:Point = new Point();
   m_curResolution = getResolution(level);
   var y:Number = Math.abs(m_tilePoint.y - row * (tileSize * m_curResolution));
   var x:Number = Math.abs(col * (tileSize * m_curResolution ) + m_tilePoint.x); 
   pt.x = x;
   pt.y = y;
   return pt;
  }

到此基本就搞定了,只是有点不爽的是用的都是web墨卡托投影坐标,坐标值不是咱们印象中的WGS-84的经度、纬度值,但也有标准的方法来转换

  /**
   wgs84转为墨卡托坐标(经纬度转墨卡托)
   
   lon :    w84经度
   lat :    w84纬度
   */
  public function forwardMercator(lon,lat):Array {
   lon = parseFloat(lon);
   lat = parseFloat(lat);
   var x = lon * 20037508.34 / 180;
   var y = Math.log(Math.tan((90 + lat) * Math.PI / 360)) / (Math.PI / 180);
   y = y * 20037508.34 / 180;       
   return [x,y];
  };
  
  /**
   将墨卡托坐标转为wgs84(墨卡托转经纬度)
  
   x :    墨卡托经度
   y :    墨卡托纬度
   */
  public  function inverseMercator(x, y):Array {
   var lon = (x / 20037508.34) * 180;
   var lat = (y / 20037508.34) * 180;
   lat = 180/Math.PI * (2 * Math.atan(Math.exp(lat * Math.PI / 180)) - Math.PI / 2);
   return [lon, lat];
  };

推荐几个技术链接参考:

   WebGIS前端地图显示之根据地理范围换算出瓦片行列号的原理http://blog.sina.com.cn/s/blog_5d25ac4e0102v6kb.html

  Google投影说明:http://blog.csdn.net/mygisforum/article/details/8162751

   当然还有:http://blog.csdn.net/chaiqi/article/details/8025973

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值