TMapData地图控件说明(50分)

H

hxh01

Unregistered / Unconfirmed
GUEST, unregistred user!
TMapData地图控件说明
-----------------------------作者 郝霄汉QQ:4818472 TEL:0512-66332230
•
MapX可以实现矢量图的绘制和控制,但不能响应短时间内大量用户的并发响应,而必须串行处理, 无法满足实际需求, SQL Server功能强大,速度快,可以响应并发请求, 但不能实现矢量图, 可以将两者结合,先把mapinfo矢量图的所有图元信息 (经纬度,颜色,符号...)导出到数据库中,然后在网络上访问,使用TCanvas对象进行绘制,注意经纬度和图形像素的转换, 速度很快,如果是C/S结构,能方便实现,如果是B/S结构, 必须下载ACTIVEX控件,等于只要下载图元记录,在客户端实现绘制,本方案完美实现矢量图和速度的结合,对用户数量没有限制, 因为利用了SQL服务器的高性能,且可以放弃mapx,对程序的部署和安装的压力大大减轻。
•
使用Delphi开发ActiveX控件TMapData,实现以上思路.适用于车辆监控和地图查询项目,并可根据实际项目修改控件,增加功能.
•
与MapX相比有以下特点
文件小:1M左右
简单:1天就可学会
地图数据与程序分离:地图数据存放在数据库中,而不是本地
地图数据透明:SQL Server数据库,可轻松维护
网络应用:局域网和互联网皆可,只要能连接数据库
并发性能:SQL Server的并发性能不用多说,地球人都知道
•
免费提供控件的DEMO版本
•
免费提供测试程序源代码
•
DEMO版本只能连接本机数据库(IP:127.0.0.1)
•

•

工作流程
1. 安装SQL Server 2000数据库服务器
2. 建立数据库(本例子中为 “DT”)
3. 把Mapinfo格式的地图文件中的所有图元信息倒入数据库(本例子已完成)
4. 安装控件TMapData
5. 使用连接方法连接数据库
6. 使用画图方法绘制图形
7. 使用控件的其他属性和方法控制图形

控件属性:
ServerIP:string 数据库服务器地址
UserName:string 数据库服务器帐号
PassWord:string 数据库服务器密码
DataBase:string 数据库名称,例子中为”DT”
Tool:string 地图操作工具
工具 含义
Big 放大
Small 缩小
Move 移动
Distance 两点距离测量
Select 选择
GstID:integer地图ID
SelectFeature:integer选中的图元编号
Connected:boolean 是否已连接数据库
CenterX:float 中心经度
CenterY:float 中心纬度
ViewDistance:float 视野宽度(公里)
Zoom:float 缩放比 100显示全图,50显示一半
GetJD(x: Integer): Single 得到经度.参数像素X
GetWD(y: Integer): Single 得到纬度,参数像素Y
GetDistance(x1, y1, x2, y2: Single): Single 得到两点距离,参数两点的经纬度
GetAngle(jd, wd, jdold, wdold: Single): Single 得到两点的角度,参数两点的经纬度
AngleName(Angle: Single): WideString 得到方向的名称,参数角度,返回”东,南,西,北...
Getx(JD: Single): Integer 得到像素X,参数经度
GetY(wd: Single): Integer 得到像素Y,参数纬度
GetWidth: Single 得到地图边界左右经度差
GetHeight: Single 得到地图边界上下纬度差
GetFeatures(x, y: Single;count: Integer): WideString 得到附近的图元,参数点的经纬度,想
得到图元的数量,返回CommaText(逗号分隔结果)
Get_QueryFeature(const name: WideString): WideString 查询类似名称的图元,参数名称,
返回CommaText(逗号分隔结果)

控件方法:
AboutBox:调用”关于”对话框
ConnectSQL:连接数据库
DrawMap(GstID: Integer):绘制城市地图,参数:地图ID,参考表map字段ID
LocateFeature(const name: WideString) 把图元的中心点作为地图的中心,参数图元名称
控件事件:
ViewChanged(Sender: TObject):地图视野改变
MapMouseMove(ASender: TObject;
x, y: Integer;
jd, wd: Single):
鼠标移动,参数像素,经纬度
MouseDown(ASender: TObject;
x, y: Integer;
jd, wd: Single):
鼠标按下, 参数像素,经纬度
MouseUp(ASender: TObject;
x, y: Integer;
jd, wd: Single):
鼠标抬起, 参数像素,经纬度
Select(ASender: TObject;
FeatureID: Integer;
const FeatureName: WideString)
图元被选择,参数图元编号,图元名称
Distance(ASender: TObject;
Distance: Single)
当使用距离工具的时候触发,参数距离(公里)
 
H

hxh01

Unregistered / Unconfirmed
GUEST, unregistred user!
TMapData地图数据控件
网站:http://hxh-1.vicp.net/
QQ:4818472
 

江远

Unregistered / Unconfirmed
GUEST, unregistred user!
支持一下!有空学习学习!
 

浪风

Unregistered / Unconfirmed
GUEST, unregistred user!
这个网址是不是有问题,能不能发到我的邮箱里?zenghui666@163.com,谢谢!
 
B

BradXu

Unregistered / Unconfirmed
GUEST, unregistred user!
挺好的,能不能发我邮箱了解一下 bradxu@sohu.com
 
H

huangsong

Unregistered / Unconfirmed
GUEST, unregistred user!
hs14237420@163.com
 

Similar threads

D
回复
0
查看
693
DelphiTeacher的专栏
D
D
回复
0
查看
717
DelphiTeacher的专栏
D
顶部