比例尺(scale):表示图上距离与代表的实地距离之比,地图的比例尺实际上是地图的主比例尺。例如地图上1厘米代表实地距离5千米,可写成:1∶500,000或写成:1/500,000。
分辨率(resolution):表示当前地图范围内,1像素代表多少地图单位(X地图单位/像素),地图单位取决于数据本身的空间参考。
Resolution和Scale的转换算法:
Resolution跟dpi有关,跟地图的单位有关。(dpi代表每英寸的像素数)
Resolution和Scale的转换算法
举例:
案例一:如果地图的坐标单位是米, dpi为96
1英寸= 2.54厘米;
1英寸=96像素;
最终换算的单位是米;
如果当前地图比例尺为1: 125000000,则代表图上1米实地125000000米;
米和像素间的换算公式:
1英寸=0.0254米=96像素
1像素=0.0254/96 米
则根据1:125000000比例尺,图上1像素代表实地距离是125000000*0.0254/96 = 33072.9166666667米。我们这个换算结果和切片的结果略微有0.07米的误差。这个误差产生的原因是英寸换算厘米的参数决定的,server使用的换算参数1英寸约等于0.0254000508米。
案例二:如果地理坐标系是wgs84,地图的单位是度,dpi为96
Server中度和米之间的换算参数:
1度约等于111194.872221777米
接下来就需要进行度和像素间的换算:
当比例尺为1:64000000米时,相当于1像素 = 64000000*0.0254000508/96 = 16933.3672米
再将米转换为度 16933.3672/111194.872221777 = 0.1522855043731385度
因此当地图单位为度时,近似计算在1:64000000 对应的Resolution为0.1522855043731385度
Openlayers中的比例尺(scale)和分辨率(resolution)
Scale:比例尺,图上距离和实地距离之比。
units per pixels)。
Extent:地图的范围(地图四周)。
zoomlevel:缩放的级别(0~15)。
注:因为这几个变量均为对”地图显示“的量化描述,因此均有最大和最小值。
map,baselayer:map即地图,其size也是决定显示的因素。baselayer相当于一个地图中的底图,许多尺度变换函数均在baselayer类中实现,所以map中必须添加baselayer。
在Openlayers中如要正确显示一副地图,则上面的变量必须要正确设置,但不一定全部设置,全部设置,计算不正确的话可能导致冲突。可选择设置部分,其余由Openlayers自动计算。