WebGIS第一季第5集:缩放级别和坐标系大小

| | Comments (0) | TrackBacks (0)
因为WebGIS采用的是"有级缩放"、而非"无级缩放",因而需要定义几个缩放级别,这个定义是在config.php内完成的,对每一张地图自定义几个量级即可。

这几天看到和ka-map齐名的、甚至大有优势的open layer,功能更加灵活花哨、而且支持的API文档丰富完善,且它的文档中提到无须定义缩放级别,没有仔细看,因而没有发言权。

有了缩放级别之后就面临着新的问题──如何在不同级别显示出不同的信息量?因为在大地图上展现出来的信息含量很多,如果这些信息一直展示着,那么在小地图上观看的时候就会拥挤不堪。

因而每一个图层的信息是否要被显示出来,就要根据当前的缩放级别来定义了。这个操作可以在.map文件内实现,通过MinScale和MaxScale两个参数来确定当前图层要在哪个级别区间内展现。

在上一集中对比的几个地图服务商,发现中国的服务商都取巧的做了很多伪实现,其中go2map的缩放级别值得一说,它们的地图应该只有两个组:

第一个组只有一层,即最底层的一张标准测绘图、上面只有地面情况,并且可能是由一张大图片作出来的,为什么这么说呢?因为无论放大缩小,会发现go2map的道路宽度是跟着一起变化的,也就是说道路等信息实际是被"画"在一张图片上的。

第二个组由若干层构成,每层都是由点构成、且每个点含有一个地名信息,主要用于在地图上体现出出不同地方的地名,go2map有多少缩放级别、这个组里就含有多少层,以此来确定地图上文字的丰富程度。

如果按照上集所说,其余信息都是动态创建,那么有了上面两个组就足够了,剩下的工作就是在数据库内记录各种地理信息,在搜索的时候经过筛选进行输出、并动态绘制在地图上,且每一个动态绘制点都被注入html代码,用以实现浮动弹窗。

这种方法和英文版的Google Maps有很大不同,经过比较发现只有Google Maps是最健全、严格依据图层绘制的分层地图。

上述文字先放一放,现在来说坐标系大小,这两个话题都是今后工作的铺垫:

多种不同的映射系统我都没看明白,但至少可以利用直角坐标系来构建简单的webgis了。对于ka-map的直角坐标系而言,就是一个无限边界的广域平面,任何方向都是无限延伸的。当不考虑经纬度与坐标系之间的对应关系时,可将地图放在任何位置。

我将一张背景图放在0,0位置,并确定第一象限为正方向,此时背景图左下角的经纬度对应的就是坐标系原点,地球上其余各点经纬度均可据此推算出来。

为了推算,还要确定背景图上每一个像素代表的实际举例,这是通过地图附加的地理信息文件确定的,文件扩展名为.tfw,格式网上有专门介绍。

一旦确定了这些基本信息,以后调整的时候就比较麻烦了,不能去调整原始信息,因为一旦调整了原始参数,所有点坐标都要重新计算。因而最好的做法就是在开始之前就将这些数据确定。

日后如果想对地图扩充,就是对边界进行扩充,这是我此刻的想法,换言之从一开始就应该将最细腻程度确定,之后可以放大、但无法缩小(这些话说出来好像很混乱,不知是我理解不够透彻、还是表达能力不强)。

再把上述文字放一放,备注一下最近的工作,免得日后忘了:

1、每个功能点都测试通过了,但是还没有整理出明确简单的操作步骤,自己操作都颠三倒四、步骤繁杂,要精简、要直观;

2、似乎有很多功能都是多余的,甚至有些功能在任何民用级webgis中都未体现,要列出所有功能点,然后由具体产品来指导哪些功能是真正需要的;

3、具有依赖关系的多个模组都是必要的,但每一个究竟都是做什么用的还不清楚,有些模组甚至无法满足KISS原则,要整理一份标准模组列表,以便快速搭建和优化;

4、程序代码中引起的错误和警告多得吓人,虽然程序能跑、但底层混乱不堪,正在优化代码、逐步纠错,力求出错完全,并写出branch版本,脱离主线;

5、这东西的具体的、实际的应用在哪里?虽然我是一个科学家,但是每天纯理论学习好枯燥,能否找个服务器来跑个有用的demo?用以娱乐、也能更有动力去完善;

0 TrackBacks

Listed below are links to blogs that reference this entry: WebGIS第一季第5集:缩放级别和坐标系大小.

TrackBack URL for this entry: http://shangning.net/chinese/mt-tb.cgi/192

Leave a comment

友情链接

Google