下载后可任意编辑本人有 vb+AO AE MO MAPX SO |vc+ao 工程源代码,和资料需要这些代码的朋友请加我 qq:527602799,代码优惠转让,并随盘有接近 3 个多 G 的 gis 系列资料.在信息系统开发中,间或需要用图示的方式将信息、数据等按地理分布显示出来,假如为此而专门购买一个 GIS 系统成本太高了。基于上述原因,我们自行开发了一个矢量地图绘制程序。本文介绍如何利用 VB6.0 制作自己的矢量地图,实现矢量地图的绘制、缩放、漫游等功能。1、地图数据的采集采集地图的矢量数据可以使用数字化仪等工具,也可以用人工的方法读取。笔者使用人工的方法读取了广西边界的轮廓图,方法是:对于闭合的广西边界先任意地定一个起点(假如是非闭合线如河流,取一个端点为起点),沿广西边界,按顺时针方向,大约每隔 0.1 个经距或纬距(比较粗藻,但是对于示意图来说就足够了),读出边界上一个点的经度和纬度值作为矢量地图的坐标,直到回到起点(对于非闭合线,则读到另外一个端点)。同样地我们也可以读出河流、地区边界、城市点等数据。本文示例中所绘的广西地图边界就是通过这种方法读出来的,共有 311 个点。2、地图矢量数据的存储我们采纳 ACCESS 数据库 mapdata.mdb 表 mdata 来存储采集到的地图边界数据。表 MDATA 结构如下(本文示例绘制地图的外边界,只用到 fx,fy,ftype 字段,其余字段对于一个完整的矢量地图包含外边界、河流、城市点等,是很有用的):字段名称 类型说明fx单精度经度,横坐标fy单精度纬度,纵坐标ftype整型当前记录坐标类型(边界或是城市),值为 1 表示外边界,2 表示内分界,3 表示河流,4 表城市fgroup整型分组,该字段值相同表示属于同一边界或同一区域的城市fdata字符串型 数据点的说明3、描绘地图我们可以把地图描绘在支持 line 方法的对象上(比如窗体或图片框)。本例中,我们将地图描绘在一个名为picdrawmap 的 pictruebox(图片框)控件上。我们利用图片框的 line 方法:picdrawmap.line(x1,y1)-(x2,y2)把地图边界的点一个一个依次连接起来而构成一条地图边界线,如图 1。用 VB 绘制自己的矢量地图 下载后可任意编辑(1)在窗体中加入图片框和命令按钮图片框名为 picdrawmap,命令按钮“显示地图”名为:cmdshowmap,命令按钮“放大”名为:cmdzoomout,命令按钮“缩小”名为:cmdzoomin。然后调整好它们的大小、位置。(2)picdrawmap 图片框中输出线条外观、样式、粗细...