GIS地图缩放级别和各级别分辨率的计算
2010-09-09 15:08
375 查看
在GIS中,地图的缩放比例的正确计算非常重要,下面给出计算原理和方法:
设定最大比例为max,最小比例为min,地图分辨率由小到大按b倍等比例缩放,计算缩放级别数N和各级别的分辨率resolutions[i]的方法如下:
1,计算最大最小分辨率比率
ratio = max / min -----(1)
2,计算缩放级别数N
可建立关系式:
min * pow(b, (N-1)) = max
代入(1)得到,pow(b, (N-1)) = ratio
推算出 N = (ln(ratio) / ln(b)) + 1
因为实际需要的N为整数,我们用向下取整函数进行取整,舍弃小数部分:
N = floor((ln(ratio) / ln(b)) + 1)
3,根据第2步计算出来的N,可以创建分辨率数组resolutions
,则各级别分辨率计算如下:
for (int i = 0; i < N; i++)
{
resolutions[i] = max / pow(b, i);
}
由于在第2步中,对N取整的原因,上面计算出来的第N个级别的分辨率与之前设定的min不一定相等,所以需要对min重新赋值:
min = resolution[N-1];
这样就完成了缩放级别和各级别分辨率的计算,为后面地图的正确缩放奠定了基础
设定最大比例为max,最小比例为min,地图分辨率由小到大按b倍等比例缩放,计算缩放级别数N和各级别的分辨率resolutions[i]的方法如下:
1,计算最大最小分辨率比率
ratio = max / min -----(1)
2,计算缩放级别数N
可建立关系式:
min * pow(b, (N-1)) = max
代入(1)得到,pow(b, (N-1)) = ratio
推算出 N = (ln(ratio) / ln(b)) + 1
因为实际需要的N为整数,我们用向下取整函数进行取整,舍弃小数部分:
N = floor((ln(ratio) / ln(b)) + 1)
3,根据第2步计算出来的N,可以创建分辨率数组resolutions
,则各级别分辨率计算如下:
for (int i = 0; i < N; i++)
{
resolutions[i] = max / pow(b, i);
}
由于在第2步中,对N取整的原因,上面计算出来的第N个级别的分辨率与之前设定的min不一定相等,所以需要对min重新赋值:
min = resolution[N-1];
这样就完成了缩放级别和各级别分辨率的计算,为后面地图的正确缩放奠定了基础
相关文章推荐
- 百度地图API二:根据标注点坐标范围计算显示缩放级别zoom自适应显示地图
- 根据多个坐标点计算缩放地图的级别
- 百度地图API二:根据标注点坐标范围计算显示缩放级别zoom自适应显示地图
- 百度地图 根据标注点坐标范围计算显示缩放级别zoom自适应显示地图
- OpenLayers中地图缩放级别的设置方法
- 高德获取地图缩放级别
- OpenLayers3根据范围设置地图缩放级别
- GIS地图学习笔记六之按图层缩放地图
- android/ios--百度地图控制当前地图缩放级别(解决方案)
- OpenLayers中地图缩放级别的设置方法
- google map限制地图缩放级别和显示范围
- openlayers中设置地图缩放级别
- 天地图专题三:根据标注点的范围确定天地图的中心点和缩放级别
- 自动缩放地图到合适级别
- 微信小程序<map>改变地图缩放级别
- 谷歌卫星地图不同级别对应的比例尺、分辨率、视点高度
- 谷歌卫星地图不同级别对应的比例尺、分辨率、视点高度
- OpenLayers中地图缩放级别的设置方…
- 谷歌卫星地图不同级别对应的比例尺、分辨率、视点高度
- google map限制地图缩放级别和显示范围