地图上的线段长度与实地相应线段长度之比即为比例尺。它表示地图图形的缩小程度,如1∶10万,即图上1厘米长度相当于实地100000厘米(即1000 米)。严格讲,只有在表示小范围的大比例尺地图上,由于不考虑地球的曲率,全图比例尺才是一致的。通常绘注在地图上的比例尺称为主比例尺。在地图上,只有某些线或点符合主比例尺。比例尺与地图内容的详细程度和精度有关。一般讲,大比例尺地图,内容详细,几何精度高,可用于图上测量。小比例尺地图,内容概括性强,不宜于进行图上测量。(来源:百度百科)
A9L|/e6YQ01 如何计算地图的比例尺 Z Sfq9rM6DD0下面是计算比例尺的公式 { _6Af`ilt3`0scale =(map units / pixel) * (pixels / inch on display surface) * ( display surface units / map unit) 3sNews博客MD*k:| nI'fn` j p (map units / pixel)为每个像素对应的地图单位,即地图的分辨率(resolution)3sNews博客A N,drZq5iC}E (pixels / inch on display surface)即为DPI跟显示设备有关,一般为96 )vI1h |bj"nR0( display surface units / map unit) 为一个单位之间的转换,表示一个地图单位对应的显示设备上的单位数 E.I!X&W,V$VL0例如计算WGS84下面某个地图分辨率下面的比例尺: :cxF5m?Z0double PIXELS_PER_METER = 3779.53; Tf|[t0double EARTH_RADIUS_IN_METERS = 6371000;3sNews博客Ms:X8u-X"R[W b double METERS_PER_DEGREE = Math.PI * 2 * EARTH_RADIUS_IN_METERS / 360;3sNews博客F8pqDbX U double PIXELS_PER_DEGREE = PIXELS_PER_METER * METERS_PER_DEGREE;3sNews博客)P"\;]Q"y~d h,i FX{ C 首先定义每米对应的像素值PIXELS_PER_METER,这是个常数,等于3779.53(在椭球参数固定的情况下,采用不同的椭球,常数值不同)3sNews博客u&~zBry5H 然后定义椭球半径EARTH_RADIUS_IN_METERS,同样也是个常量,等于6371000。 8a"r] E'j+I_]4JmX0下面计算一度对应多少米 KpO|Ol/p0METERS_PER_DEGREE = Math.PI * 2 * EARTH_RADIUS_IN_METERS / 360;3sNews博客}s V#n7y6cZ}~ 最后计算一度对应的像素值 U5zN w]1m&TIk @0double PIXELS_PER_DEGREE = PIXELS_PER_METER * METERS_PER_DEGREE; 0}Q/}So l0在上面的计算中,并没有上面公式中提到的dpi,因为在PIXELS_PER_METER已经包含了dpi3sNews博客8X!uJL;t6IlIzc PIXELS_PER_METER = DPI *INCH_PER_METER B)hB;q6J"g8PHU0scale = Resolution *DPI *INCH_PER_METER* METERS_PER_DEGREE3sNews博客R_@g,i)SV 其中INCH_PER_METER* METERS_PER_DEGREE为( display surface units / map unit) J N$Yh[O0最终可以这么来表示 L"hd[L |0f*CZ0scale = Resolution* PIXELS_PER_DEGREE;3sNews博客Ju3CLd.]Q`kC+e 2什么时候需要用到这个公式3sNews博客1Vk4n!si Z 在ArcGIS API for Silverlight中指提供了ZoomToResolution的方法漫游到指定的分辨率,但这个方法对于用户来说很不友好,用户很难确定当前地图的分辨率,但用户很清楚想漫游到的比例尺,因此可以使用上面的公式将比例尺转换为分辨率进行漫游。 ,L6J&s4{ h5fh9cJ0参考资料:3sNews博客B]`R'b|0VMZ http://forums./Thread.asp?c=158&f=2455&t=279058 3di8wT9o:K%F0 |
|