一、 前言 我用MapInfo公司的MapX开发过几个项目。在项目的开发过程中,也接触了一些使用相同技术的公司和开发人员,感觉到他们的开发过程常常被一些问题所困扰,却得不到很好的解决。在这里,我把我在开发过程中积累的一些经验写出来,希望能起到抛砖引玉的作用。
二、开发经验 1、如何在MapX下读取属性值,这里介绍三种方法:1)由Layer对象的KeyField属性来设立要读取属性值的字段名。接着,由Feature对象的keyValue读取此行的属性值。2)将图层加入到Datasets,由Dataset对象的Value(x,y)属性,通过设置行号,列号来获得属性值。3)将图层加入到Datasets之后由RowValues(ftr)获取整行的值。Dim ds As MapXLib.Dataset, lyr As MapXLib.layerDim ftrs As FeaturesDim ftr As FeatureDim rv As RowValueDim rvs As RowValuesDim DsName As String '数据集名Dim DsRows As Long, DsCols As LongDim i As Long, j As LongSet ds = Formmain.Map1.Datasets.Item(DsName)Set lyr = ds.layerSet ftrs = lyr.AllFeaturesDsCols = ds.Fields.CountDsCols = DsCols + 1 DsRows = ftrs.CountGrid1.Rows = DsRows + 1Grid1.Cols = DsColsGrid1.Row = 0For i = 0 To DsCols - 1Grid1.Col = iGrid1.Text = ds.Fields.Item(i + 1).NameNext iGrid1.Col = DsCols - 1Grid1.Text = "Fkey"lyr.BeginAccess miAccessReadi = 1For Each ftr In ftrsSet rvs = ds.RowValues(ftr)j = 0For Each rv In rvsIf Not IsNull(rv.Value) Then Grid1.TextArray(i * DsCols + j) = Trim(rv.Value)j = j + 1NextGrid1.TextArray(i * DsCols + j) = ftr.FeatureKeyi = i + 1Nextlyr.EndAccess miAccessEndSet ftr = NothingSet ftrs = NothingSet ds = NothingSet rv = NothingSet rvs = NothingSet lyr = Nothing
注意:BeginAccess,以及EndAccess可以明显的提高属性读取的速度。
2、自定义范围专题图MapX的专题图用户可以进行完全的定制,下面是自定义范围专题图的例子。Dim ds As New MapXLib.DatasetDim thm As New MapXLib.ThemeSet ds = Formmain.Map1.Datasets(ToolBars.Combo2.Text)Set thm = ds.Themes.add(0, "aa", "aa", False)thm.Legend.Compact = Falsethm.AutoRecompute = False'thm.ComputeTheme = Falsethm.DataMax = 700thm.DataMin = 100thm.ThemeProperties.AllowEmptyRanges = Truethm.ThemeProperties.NumRanges = 7thm.ThemeProperties.DistMethod = miCustomRangesthm.ThemeProperties.RangeCategories(1).Max = 150thm.ThemeProperties.RangeCategories(1).Min = 50thm.ThemeProperties.RangeCategories(2).Max = 250thm.ThemeProperties.RangeCategories(2).Min = 150thm.T
[1] [2] [3] 下一页
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。本站所有技术文章、专业软件资料仅供技术人员、高校师生学习交流之用,目的旨在促进与提高中国的交通技术水平;用户获取后不得用于商业目的,否则,所产生的法律责任本站概不负责。