关于分块地图加载缩放前后重新选择地图索引的思路

地图坐标系统

蓝色线条代表全局坐标的坐标轴,黑色线条代表容器内部局部坐标的坐标轴,浅蓝色的地图块,其左上角的三个数字分别代表此地图的x,y索引以及处于哪一个缩放级别,红点是任意一个目标点,地图模型阐明完毕,接下来说说我的 思路;

首先从外部传入一个参数要求更改缩放级别,假如级别定为m, 那么地图就要缩放2的m次,我们令2的m次方为M,接下来我们获取在可见范围内地图左上角地图的坐标(本地),也就是设地图索引片(a,b,c)的本地坐标的(x,y),全局坐标为(α,β),经过缩放后它的本地坐标应变为(a*M,b*M),我们用变换后的坐标除以单位地图块的单位长宽*得到此地图变换后的地图索引(a',b',c'),然后以他为起始序列分别 加载e,f张地图(e,f就是地图可视域除以单位地图长宽后得到的行列应加载的最大图片数),这里的伪 代码就是
for(var xx:int = 0;xx <e;xx++)
  for(var yy:int = 0;yy<f;yy++){
   //加载(xx+a',yy+b',c')对应的地图;
    code1

  //定位地图坐标分别为
  unitMap.x = xx*unidMap.width  +α;
  unitMap.y = yy*unitMap.height +β;
}


以上就是我的思路,者哪位 高手有更加妙的算法也请与大家分享下吧
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值