通过卫星或者航天飞机等, 可以直接拍摄地球表面的栅格数据,称之为航片(Aerial Photography). 因为这是地球表面的直接影像, 所以可信度极高, 但是代价也很大, 时效性也比较差,也不利于直接的用于空间分析.
通过对航片的抽象,或者直接的采集矢量数据, 可以生成不同格式的矢量数据.
我们在这里说的地图发布,指的是从矢量数据转换为栅格数据.
一般来说, 为了进行转换, 我们需要定义比例尺, 每个比例尺定义一级的图片.
在每个比例尺下, 我们使用一定的规模的矢量数据, 分层管理, 每层的数据定义相关的显示样式. 一般来说,一个数据层可以对应多个,甚至全部的比例尺. 那么从数据层的角度来说, 在每一级的比例尺上, 只是显示要素的多寡不同,显示样式不同而已.
那么在一层的数据上, 究竟有哪些要素某个特定的比例尺上显示, 以怎样的方式显示呢?
矢量数据支持无极缩放,也即可以在任意比例尺下显示.那么在某个时刻特定的比例尺下, 哪些要素要显示?
我们先看两个极端,在极大比例尺下,大量的要素显示在一个极小局域内,如果所有的要素都显示,那么会密密麻麻,没有价值,也严重影响效率.那么很有必要过滤一些要素,在这个时候我们也需要按照一定的策略淘汰一些要素.有两种策略:
随机淘汰的机制很简单,实现起来也非常容易.默认生成的显示符号使用的就是这种策略.
我们这里重点的讲的是2:按照配图的要求进行淘汰.
按照我们配图的要求, 我们需要首先制定比例尺的等级.比如说制定2级:1:10000,1:5000.
当我们制定比例尺的时候, 意味着什么呢? 或者说, 1:10000和1:5000的地图在显示上有什么不同?至少有两点:
显示要素数量的不同,意味着有些要素要淘汰.可以根据我们前面定义的淘汰策略.只有一点需要注意,点型数据要把矢量外包和注记外包和在一起计算.
那么在其他比例尺下, 如何控制要素的显示,例如1:7500.很显然, 我们应该遵循以下的原则:
定义两个比例尺,是把比例尺划分为三个范围.例如比例尺1:10000和1:5000比例尺划分的范围是:(+∞,10000), [10000,5000),[5000,0)(总的比例尺范围是(+∞,0)).我们觉得采用下面的比例尺范围是比较合理的(+∞,7500)采用10000比例尺,[7500,0)采用5000比例尺.我们会把这个过程抽象为一个算法.
我们看到,这里的比例尺和显示符号关联在一起,而这正是标准接口的一部分.
我们的结论:
余留的问题是: