空间数据库初试
来源:互联网 发布:网站群管理系统 源码 编辑:程序博客网 时间:2024/04/28 17:05
上传图纸
直接通过Mapinfo的EasyLoader上传,比较简单,这里不详细说明,具体说一下会产生以下的这些问题
问题一、在一些资料中看到,点线面上传后样式会丢失,但在我的实验当中未出现该问题,可能是Ora版本,或是EasyLoader的老版本问题,建议使用Oracle 9i及Mapinfo8.5的版本进行上传
问题二、无法向Oracle Spatial中上载文本对象
解决办法:利用Easyloader上载Mapinfo表之前,先在表中增加几个属性字段,将文本对象的信息(如:文本对象的内容、文本样式等)当作对象的属性值保存到表中,并连同表的其它属性一起上载到Oracle数据库中。当用户通过程序将该表从Oracle Spatial中下载到Mapinfo中后,再根据保存在表中的文本对象的信息,利用程序为每个记录再重新创建一具文本对象。(可以参考转帖的<<MapInfo注记的数据库存放解决方案>>)
图纸的显示
一、上传到空间数据库的图纸可通过Mapinfo自带的DBMS进行连接查看
二、在MapX中通过程序连接,来完成空间数据库的展示,如下程序代码:
'*************************************************************************
'**功能描述:加载空间图纸
'*************************************************************************
Public Sub addLayer(Map1 As MapXLib.Map, ByVal TableName As String)
Dim lyr As MapXLib.Layer
Dim LayerInfo As New MapXLib.LayerInfo
LayerInfo.Type = miLayerInfoTypeServer
LayerInfo.AddParameter "NAME", TableName
LayerInfo.AddParameter "connectstring", "uid=java_test;pwd=1111;srvr=serv"
LayerInfo.AddParameter "query", "select * from " + TableName
LayerInfo.AddParameter "cache", "on"
LayerInfo.AddParameter "MBRSearch", "on"
LayerInfo.AddParameter "toolkit", "ORAINET"
LayerInfo.AddParameter "AutoCreateDataset", 1
LayerInfo.AddParameter "datasetname", TableName
Set lyr = Map1.Layers.Add(LayerInfo, 1)
lyr.Selectable = True
lyr.Editable = True
Set lyr = Nothing
Set LayerInfo = Nothing
End Sub
'*************************************************************************
'**功能描述:显示数据库中的文本标注
'**在 Map1_MapViewChanged事件中调用此函数
'*************************************************************************
Public Sub drawAutoText(actMap As MapXLib.Map, lyrIn As Layer, lyrView As MapXLib.Layer)
lyrView.BeginAccess miAccessReadWrite
Dim obj As MapXLib.Feature
For Each obj In lyrView.AllFeatures
lyrView.DeleteFeature obj
Next
lyrView.EndAccess
Dim Ftrs As Features, newObj_Text As New MapXLib.Feature
Dim str As String, dblfangle As Double, dbldangle As Double, dblFontSize As Double, dblFontBaseSize As Double
Set Ftrs = lyrIn.SearchWithinRectangle(actMap.Bounds, miSearchTypePartiallyWithin)
newObj_Text.Attach actMap
newObj_Text.Type = miFeatureTypeText
lyrView.BeginAccess miAccessReadWrite
For Each obj In Ftrs
lyrIn.KeyField = "txt"
str = obj.KeyValue
lyrIn.KeyField = "FANGLE"
dblfangle = obj.KeyValue
lyrIn.KeyField = "FONTPOINTSIZE"
dblFontSize = obj.KeyValue
dblFontSize = IIf(dblFontSize <= 0, 12, dblFontSize)
newObj_Text.Style.TextFont.Size = dblFontSize
With newObj_Text.Style
lyrIn.KeyField = "fontname"
.TextFont.Name = obj.KeyValue '字体
.TextFontRotation = dblfangle '角度
lyrIn.KeyField = "fontforecolor" '字体颜色
.TextFontColor = obj.KeyValue
lyrIn.KeyField = "fontbackcolor"
.TextFontBackColor = obj.KeyValue
End With
dbldangle = dblfangle * pi / 180
dblFontBaseSize = LenB(str) * dblFontSize / 32 '字体大小
newObj_Text.Point.Set obj.Point.X - dblFontBaseSize * Cos(dbldangle) - dblFontSize * Sin(dbldangle) / 8, _
obj.Point.Y - dblFontBaseSize * Sin(dbldangle) + dblFontSize * Cos(dbldangle) / 8
newObj_Text.Caption = str
Call lyrView.Addfeature(newObj_Text)
Next
lyrView.EndAccess
End Sub
- 空间数据库初试
- 【数据库】数据库设计初试
- 数据库存储过程初试
- 初试数据库LocalDB
- 初试
- 初试
- 初试
- 初试
- 初试visual studio2012的新型数据库LocalDB
- Btrace 定位数据库连接泄露(初试)
- c++初试-操作mysql数据库(13)
- Android初试--SQLite数据库的简单介绍
- 空间数据库
- 空间数据库
- 空间数据库
- 空间数据库
- 空间数据库
- eclipse新建工作空间(workspace)初试设置
- 数学思想方法的几次重大转折
- Apache中 RewriteRule说明
- fatal error C1010: unexpected end of file while looking for precompiled header directive该如何解决
- 图像超链接与边框
- Apache实现负载均衡
- 空间数据库初试
- 看看
- fatal error RC1015: cannot open include file 'afxres.h'.该如何解决?
- c/c++ 十进制数输出二进制
- Sun为iPhone开发Java虚拟机 6月份发布
- 中兴的面试
- Dll分配的内存块,应用程序释放,结果报异常
- 如何实现使得一个普通用户以root身份运行命令和如何使用sudo命令?
- VC窗口入门常遇到的问题