转载地址http://www.3q2008.com/soft/search.asp?keyword=143
请访问 以下地址,查看最新版本, 新增加支持 建筑物 距离测量, 鸟瞰, 地图放大缩小,
|
这套系统印象深刻 因为,写了一个无限拖放的控件,做出了有些象游戏里建设建筑物的效果,想在哪里想盖房子就盖
地图 建筑物无限增加拖拉图标/城市地图/商城超市地图/
效果很COOL的控件, 可以任意拖放, 无限生成新的实体,虽然只是使用了控件数组的load 的,但因为用到了才发觉里面的奥妙 当然代码里少不了的 详细的注视 :) 不过有兴趣的朋友建议 看看演示程序,
1.引言
城市基础信息数据库指的是一个存储和表达一定区域信息数据的集合,该集合将此区域上每一角落的信息都收集、整理、归纳,并且建立一套完整的管理系统,可以对这些数据进行科学的管理,同时向用户提供数据查询功能。用户可以使用城市基础信息数据库对这一区域信息进行数字化管理,也可以通过查询,快速、完整、形象地了解此区域的宏观和微观的各种情况。
1.1研究意义
城市基础信息数据库是数字城市的一个重要分支,它运用计算机技术实现对城市各种信息数据的输入,存储,查询,检索,处理,分析,显示和更新等功能,强大而实用的城市信息系统将是未来城市的基础设施之一,也是城市信息化程度的标志。
现在一些发达国家已经建立了功能极为强大的城市信息数据库,应用于城市动态管理和规划,并将其作为对城市重大问题和突发性事件进行辅助决策的现代化手段。而我国在个领域和西方发达国家差距很大,城市数字化程度不高,数据更新不及时,没有统一的建设标准和规范导致数据共享和可移植的实现比较困难,在城市数字规划和辅助决策方面几乎可以说是一处空白,弥补差距和不足,将是我国以后必做的工作。
在我国已经制作的城市基础信息数据库中,存在一个数据共享和可移植性差的问题,这主要是因为没有按照统一的城市基础信息数据库建库标准和规范来建设数据库,各地区和行业大都是按照自定义的标准来建库,对数据的采集整理大多数没有提供数据分类和编码表以及数据格式转换参数,这就给数据共享带来的不便,因此本文对城市基础信息数据库建库标准进行了着重描述.
由于其他建筑的详细信息,基本相同就不一一列举了
usrHotel
酒店宾馆
usrFactory
企业工厂
usrGov
行政区
usrShool
学校
usrHospital
医院
usrBank
银行网点
usrPost
邮政网点
usrHouse
住宅区
usrMine
矿产资源
usrMarket
大型商场
程序核心代码说明
建筑物控件,采用VB的自定义控件编写,由于VB的IMAGE控件的等一些控件无法,以尽量少的代码完成,无限拖放,所以本系统采用了自定义控件,这也就时程序的核心之一,
该控件只要拖放在VB窗体上,不用加任何代码 就可以实现控件在窗体上任意移动, 从而完成建筑物的控件的任意位置放置,
建筑物控件任意生成,采用的是控件数组 使用load 函数加载 对象,实现 任意生成控件自身对象,使用ADO对象, 将控件的坐标名称和显示的内容存储在tblMap表里
下面分析自定义控件 usrItem的部分核心代码.
主要使用自定义控件的 UserControl.Extender 属性,获得实体对象属性,虽然VB的类功能没用C++那么强大,但她的方便之处也不少,通过 UserControl.Extender 获得实体对象任意属性,使其在控件的内容就可以控制任意的对象的实体,达到控制全局的作用,
下面驶控件自动移动的主要代码
以上代码实现了控件在窗体上的的无限移动
控件实体存储打开对应数据的代码
'处理对应的建筑的 基本函数
DetailItem()
双击控件实体时,所做的东西, 带开对应的窗体传入筛选语句使显示详细信息的窗体只显示对应的一条记录
'*************************************************************************
' 功能描述: '======设置窗口为最顶层============
'1 设置窗口为最顶层
' 调用形式:
' TopWindow Me.hwnd
'说明:将上句复制到Form_Load()事件中即可
'说明:将上句复制到Form_Load()事件中即可 DetailForm me
'设置窗体的属性,
DetailForm(frm As Form)
‘该函数将对应建筑控件的信息存储在对应的详细 窗体上,并用窗体的隐藏数据记录建筑控件的信息
'更新记录同时更新 地图信息
Function UpdateCtl
'删除记录同时删除地图信息 '若返回False 则不可以删除
Function DelCtl
'更新地图的图标内容,并更新数据库信息
Private Sub UpDateCtlNam
'查询返回对应的数据库记录的信息
Public Function DoLookUp
'判断数据的位置 读取数据库的位置
Public Function DefaultDatabaseFileName()
'加载地图的位置
Private Sub LoadMap()
窗体启动时,读取数据表设置建筑物控件的位置信息
'将信息保存在对应的表里
'构造 "Insert into Table_name(aasd) values ( '"& aasd &" ')"
Private Sub SaveDetailTable
‘脱出新控件时触发 存储控件
Private Sub LoadFactory1
‘拖放控件时,新生成控件的数组
'
'
'
注 : 在下一点独特的编程方式,这是我多年的经验总结出的一些方法,对 VB里 对象的 使用,对自定义控件的使用,若你不只是为完成毕业设计 而去看代码的话,建议你读懂我的代码,使你的VB达到一定的程度,至少少走一些弯路 ,所谓物有所值, 我相信我的代码 和我自定义控件不只值 区区几百块, 若不是我为加快开发速度我不会使用,这些方法的 :) 建议你学会他, 希望是授之于渔 !!! 加油 :) 觉得这句话 还是满有说服力的, 看看演示程序吧, 可能是我说大话了 :)
转载地址http://www.3q2008.com/soft/search.asp?keyword=143