再别康桥
路人甲
路人甲
  • 注册日期2003-08-16
  • 发帖数268
  • QQ
  • 铜币760枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:3599回复:18

请教在选定区域查询显示图元功能

楼主#
更多 发布于:2003-08-27 09:41
各位大虾,我想实现下面这样的功能
选定一个区域,并能够在该区域实现地图信息的查询功能(查询MAPINFO中包含的信息)
并将其显示
我想将查询功能做在一个单独的窗体中
请各位大虾给点思路和建议
谢谢


<img src="images/post/smile/dvbbs/em09.gif" />
喜欢0 评分0
轻轻的我一如天边的云 轻轻的走过你的身旁 在你的心中划下淡淡的痕 难忘 ------------------------------------- http://www.21trip.com 世纪之旅欢迎您!!
终极无间
  • 注册日期
  • 发帖数
  • QQ
  • 铜币
  • 威望
  • 贡献值
  • 银元
1楼#
发布于:2003-08-27 10:21
Private Sub Form_Load()
         Dim lyr As Layer
         Dim ftr As Feature
         Dim Ds As Dataset
         Dim Fld As MapXLib.Field
         Dim temp As Integer
         temp = 12345
        
         'MsgBox " fMainForm.Map1.DataSets.Count " & fMainForm.Map1.DataSets.Count
         'MsgBox " fMainForm.Map1.DataSetGeoField " & fMainForm.Map1.DataSetGeoField
         'MsgBox " fMainForm.Map1.DataBindings.Count " & fMainForm.Map1.DataBindings.Count
        
         For Each lyr In fMainForm.Map1.Layers
             If lyr.Selection.Count <> 0 Then
                fMainForm.Map1.DataSets.Add miDataSetLayer, lyr, "Temporary DataSet"
                For Each ftr In lyr.Selection
                  lyr.BeginAccess miAccessReadWrite
                  'lyr.BeginAccess miAccessRead
                  MsgBox " lyr.DataSets.Count " & lyr.DataSets.Count
                    For Each Ds In lyr.DataSets
              
                        ListData.AddItem " Ds.Name " & Ds.Name
                        ListData.AddItem " Ds.Layer " & Ds.Layer
                  
                        If XYPointRef = True Then  '±&pound;&Aacute;&ocirc;&micro;±&Ccedil;°&sup2;&atilde;&micro;&Auml;&Atilde;&ucirc;×&Ouml;
                           LyrStr = Ds.Layer
                        End If
                      
                       ' 'Ds.AddField "name", miTypeString
                        '
                        For Each Fld In Ds.Fields
                            If Ds.Value(ftr.FeatureKey, Fld.Name) <> vbNull Then
                               ListData.AddItem Fld.Name & " : " & Ds.Value(ftr.FeatureKey, Fld.Name)
                            End If
                        Next
                        ListData.AddItem "        "
                        ListData.AddItem "        "
                        ListData.AddItem "        "
                        Dim str As String
                        str = "  "
                       ' Grid1.Rows = Ds.RowCount
                       ' Grid1.Cols = Ds.Fields.Count
                        For j = 1 To Ds.RowCount
                            For i = 1 To Ds.Fields.Count
                                  If Ds.Value(j, i) <> vbNull Then
                                     str = str + "   " + CStr(Ds.Value(j, i))
                                  End If
                         '         Grid1.TextArray(Grid1.Cols * j + i) = str
                            Next
                            List.AddItem str
                            str = "  "
                            'Text.Text = Text.Text + " \n" + str
                        Next
                    Next
                  
                  lyr.BeginAccess miAccessEnd
                Next
                fMainForm.Map1.DataSets.Remove "Temporary DataSet"
            End If
       Next
End Sub
//  这个你给你参考一下
举报 回复(0) 喜欢(0)     评分
再别康桥
路人甲
路人甲
  • 注册日期2003-08-16
  • 发帖数268
  • QQ
  • 铜币760枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2003-08-27 10:41
thank you very much!!!
非常感谢斑竹
轻轻的我一如天边的云 轻轻的走过你的身旁 在你的心中划下淡淡的痕 难忘 ------------------------------------- http://www.21trip.com 世纪之旅欢迎您!!
举报 回复(0) 喜欢(0)     评分
再别康桥
路人甲
路人甲
  • 注册日期2003-08-16
  • 发帖数268
  • QQ
  • 铜币760枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2003-08-27 10:53
斑竹,你用的ListData是什么控件啊?
为什么提示没有方法AddItem啊?
望解答,谢谢啊!~
轻轻的我一如天边的云 轻轻的走过你的身旁 在你的心中划下淡淡的痕 难忘 ------------------------------------- http://www.21trip.com 世纪之旅欢迎您!!
举报 回复(0) 喜欢(0)     评分
再别康桥
路人甲
路人甲
  • 注册日期2003-08-16
  • 发帖数268
  • QQ
  • 铜币760枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2003-08-27 13:20
呵呵,不好意思,斑竹
我找到那个东东了,我是个新入行的小菜鸟
谢谢斑竹的指点
轻轻的我一如天边的云 轻轻的走过你的身旁 在你的心中划下淡淡的痕 难忘 ------------------------------------- http://www.21trip.com 世纪之旅欢迎您!!
举报 回复(0) 喜欢(0)     评分
再别康桥
路人甲
路人甲
  • 注册日期2003-08-16
  • 发帖数268
  • QQ
  • 铜币760枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2003-08-27 14:11
If XYPointRef = True Then  '±£á?μ±?°2?μ???×?
                           LyrStr = Ds.Layer
                        End If

斑竹,这个句子的意思和作用能帮忙解释一下吗?
轻轻的我一如天边的云 轻轻的走过你的身旁 在你的心中划下淡淡的痕 难忘 ------------------------------------- http://www.21trip.com 世纪之旅欢迎您!!
举报 回复(0) 喜欢(0)     评分
袁绍伦
路人甲
路人甲
  • 注册日期2003-08-08
  • 发帖数654
  • QQ164646905
  • 铜币1336枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2003-08-27 14:18
楼上的要 代码  吗?

给你一段  delphi  的,你看看吧!

procedure TMapForm.band1Click(Sender: TObject);
  var
  ds: CmapXdataset;
  cols: CMapXFields;

  begin
    mapform.ADOQuery2.Close;
    mapform.ADOQuery2.SQL.Clear;
    mapform.ADOQuery2.SQL.Add('select * from Asia');
    mapform.ADOQuery2.Open;
    Map1.Datasets.RemoveAll;
    showmessage('所有数据集清空');
    ds:=map1.datasets.add(midatasetado,adoquery2.Recordset ,'asia'
                           ,EmptyParam,EmptyParam,map1.Layers.Item('asia'),EmptyParam,EmptyParam);
    showmessage('成功绑定');
    ds.Themes.RemoveAll;
    showmessage('所有专题层清空');
    cols := CoFields.Create;
    cols.Add('pop_0_14', 'pop_0_14', EmptyParam, EmptyParam);
    cols.Add('pop_15_64', 'pop_15_64', EmptyParam, EmptyParam);
    cols.Add('pop_65_plus', 'pop_65_plus', EmptyParam, EmptyParam);
    ds.Themes.Add(miThemePieChart , cols, 'My Bar Theme', EmptyParam);
    ds.Themes.Add(miThemeRanged,'totpop','Myranges Theme',EmptyParam);
  end;



'' mapform.ADOQuery2.Close;
''    mapform.ADOQuery2.SQL.Clear;
''    mapform.ADOQuery2.SQL.Add('select * from Asia');
''    mapform.ADOQuery2.Open;
''
''这几句是负责连接数据库,有一些设置不在程序里设置,总之这几个就是选出要的数据并且放到adoqurey2里面

''Map1.Datasets.RemoveAll;
''    showmessage('所有数据集清空');
''这一句是把tmap控件里的所有数据帮定清空并且给出提示

''ds:=map1.datasets.add(midatasetado,adoquery2.Recordset ,'asia'
''                           ,EmptyParam,EmptyParam,map1.Layers.Item('asia'),EmptyParam,EmptyParam);
''这一句就是数据帮定了,你看第二个参数,数据为adoquery2.Recordset

愿意和大家交朋友! QQ:47559983 MSN:shaolun_yuan@hotmail.com eMail:shaolun-yuan@163.com
举报 回复(0) 喜欢(0)     评分
再别康桥
路人甲
路人甲
  • 注册日期2003-08-16
  • 发帖数268
  • QQ
  • 铜币760枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2003-08-27 15:22
呵呵,谢谢袁兄,可惜我看不动delphi的代码!~
不过我能够在这里得到大家的指点
感到非常的高兴
轻轻的我一如天边的云 轻轻的走过你的身旁 在你的心中划下淡淡的痕 难忘 ------------------------------------- http://www.21trip.com 世纪之旅欢迎您!!
举报 回复(0) 喜欢(0)     评分
再别康桥
路人甲
路人甲
  • 注册日期2003-08-16
  • 发帖数268
  • QQ
  • 铜币760枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2003-08-27 15:27
各位,我想请教一个和MAPX关系不大的问题
我想在主窗体的地图上选定一定的区域
然后将查询出的信息在弹出式的窗体中显示
麻烦各位给点思路
我是用VB的,呵呵,基础很差,望各位谅解
轻轻的我一如天边的云 轻轻的走过你的身旁 在你的心中划下淡淡的痕 难忘 ------------------------------------- http://www.21trip.com 世纪之旅欢迎您!!
举报 回复(0) 喜欢(0)     评分
再别康桥
路人甲
路人甲
  • 注册日期2003-08-16
  • 发帖数268
  • QQ
  • 铜币760枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2003-08-27 15:37
呵呵,我也不懂delphi啊
等大虾们来给解答吧
轻轻的我一如天边的云 轻轻的走过你的身旁 在你的心中划下淡淡的痕 难忘 ------------------------------------- http://www.21trip.com 世纪之旅欢迎您!!
举报 回复(0) 喜欢(0)     评分
上一页
游客

返回顶部