地图分幅组件的实现(一) ——图号和经纬度转换组件

当前的制图一般有两种分幅方式,经纬分幅和矩形分幅。国内制图规范采用经纬分幅,可参考国标《国家基本比例尺地形图分幅和编号 GB/T 13989 - 92》。

经纬分幅的主要特点是依据百万分幅编号,行列方式细分,得到不同比例尺下的行列号,根据所在百万分幅和所在行列的行列号得到分幅号。50万到5千比例尺的分幅号都是10位编码。前三位是所在百万图幅编号,第四位是当前比例尺,后六位是所在行和所在列,行列号不足三位补三位,补零到行列编号前以对齐。具体可参考国标。

这里主要考虑的是如何写成组件,以便在工程中应用。对于制图,分幅的作用是便于输出和打印。事实上分幅在国内用得还是比较多,特别是测绘上,大比例尺应用得更多。

一般的分幅会在GIS系统中有两个需求,其一,通过分幅号得到图幅范围,例如我们要对某区域一系列的图幅自动输出,那就需要根据图号得到输出范围,然后才能输出。其二,在典型的GIS系统中,常常需要根据当前的坐标点确定所在图幅,以及图幅的范围。需求有了,如何实现呢?

因为比较常用,可以考虑写成组件。根据国标,50万到5千的分幅基础是百万分幅为基础的,所以,可以先实现百万分幅,然后再实现其他的分幅。如下图。我设计了一个百万分幅的接口,在接口中可以通过经纬度查询百万分幅的行列号,百万分幅图号查范围,坐标查图号。

地图分幅组件的实现(一) ——图号和经纬度转换组件

接下来在百万的基础上,我继续设计类似的方法,如下图

地图分幅组件的实现(一) ——图号和经纬度转换组件

I500KTo5KSheetLine是我写的处理其他比例尺的一个接口,接口里面的方法复用了百万分幅的方法。

上述接口基本满足了分幅的需求。以下是一个测试用例。

地图分幅组件的实现(一) ——图号和经纬度转换组件

转载请注明: http://blog.csdn.net/jx1228/archive/2011/04/08/6308863.aspx