地图比例尺的计算

广告也精彩 广告也精彩

地图上的线段长度与实地相应线段长度之比即为比例尺。它表示地图图形的缩小程度,如1∶10万,即图上1厘米长度相当于实地100000厘米(即1000米)。严格讲,只有在表示小范围的大比例尺地图上,由于不考虑地球的曲率,全图比例尺才是一致的。通常绘注在地图上的比例尺称为主比例尺。在地图上,只有某些线或点符合主比例尺。比例尺与地图内容的详细程度和精度有关。一般讲,大比例尺地图,内容详细,几何精度高,可用于图上测量。小比例尺地图,内容概括性强,不宜于进行图上测量。(来源:百度百科)

1 如何计算地图的比例尺

下面是计算比例尺的公式

scale =(map units / pixel) * (pixels / inch on display surface) * ( display surface units / map unit)

(map units / pixel)为每个像素对应的地图单位,即地图的分辨率(resolution)

(pixels / inch on display surface)即为DPI跟显示设备有关,一般为96

( display surface units / map unit) 为一个单位之间的转换,表示一个地图单位对应的显示设备上的单位数

例如计算WGS84下面某个地图分辨率下面的比例尺:

double PIXELS_PER_METER = 3779.53;

double EARTH_RADIUS_IN_METERS = 6371000;

double METERS_PER_DEGREE = Math.PI * 2 * EARTH_RADIUS_IN_METERS / 360;

double PIXELS_PER_DEGREE = PIXELS_PER_METER * METERS_PER_DEGREE;

首先定义每米对应的像素值PIXELS_PER_METER,这是个常数,等于3779.53(在椭球参数固定的情况下,采用不同的椭球,常数值不同)

然后定义椭球半径EARTH_RADIUS_IN_METERS,同样也是个常量,等于6371000。

下面计算一度对应多少米

METERS_PER_DEGREE = Math.PI * 2 * EARTH_RADIUS_IN_METERS / 360;

最后计算一度对应的像素值

double PIXELS_PER_DEGREE = PIXELS_PER_METER * METERS_PER_DEGREE;

在上面的计算中,并没有上面公式中提到的dpi,因为在PIXELS_PER_METER已经包含了dpi

PIXELS_PER_METER = DPI *INCH_PER_METER

scale = Resolution *DPI *INCH_PER_METER* METERS_PER_DEGREE

其中INCH_PER_METER* METERS_PER_DEGREE为( display surface units / map unit)

最终可以这么来表示

scale = Resolution* PIXELS_PER_DEGREE;

2什么时候需要用到这个公式

在ArcGISAPI forSilverlight中指提供了ZoomToResolution的方法漫游到指定的分辨率,但这个方法对于用户来说很不友好,用户很难确定当前地图的分辨率,但用户很清楚想漫游到的比例尺,因此可以使用上面的公式将比例尺转换为分辨率进行漫游。

广告也精彩 广告也精彩
版权声明:admin 发表于 2023-10-26 8:11:02。
转载请注明:地图比例尺的计算 | 嘿全导航
广告也精彩 广告也精彩

暂无评论

暂无评论...