1、3.关于Infotip -信息提示。1.由 Map1.InfotipSupport = True 设置使能 Infotip.2.由 Map1.InfotipPopupDelay = 500 ( millisecond )设置延迟时间。3.由 LabelProperties .DataField 来设置用做 InfoTip 的字段4 .如何在MapX下读取属性值。有三种方法:1.由Layer对象的KeyField属性来设立要读取属性值的字段名。接着,由Feature对象的keyValue读取此行的属性值。2.将图层加入到 Datasets,由Dataset对象的Value (x,y)属性,通过设
2、置行号,列号来获得属性值。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 .I tem
3、(DsName)Set lyr = ds.l ayerSet ftrs = lyr .AllFeaturesDsCols = ds.Fields.CountDsCols = DsCols + 1DsRows = ftrs.CountGridl.Rows = DsRows + 1Gridl.Cols = DsColsGridl.Row = 0For i = 0 To DsCols - 1Gridl.Col = iGridl.Text = ds.Fields.ltem(i + 1).NameNext iGrid1.Col = DsCols - 1Grid1.Text = Fkeylyr.Begin
4、Access 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 + 1lyr.EndAccess miAccessEndSet ftr = NothingSet ftrs = Nothi
5、ngSet ds = NothingSet rv = NothingSet rvs = NothingSet lyr = Nothing注意:BeginAccess,以及EndAccess可以明显的提高属性读取的速度。5.关于查找两种方式:1.使用Find对象的Search方法。在mapx3.5中只能作到完全匹配查找,在 MapX4.0中SearchEx方法则可以找到多个匹配的记录,其结果由FindResult.Matches 获取。详细请参看有关 Find.SearchEx方法的文档以及示例。2. 使用Layer对象的 OBJECTSearch (strWhere) 方法。其参数为 SQL查
6、询的 WHERE子句。例如:Set ftrs = lyr.Search(Character_Name like % 市;模糊查询Character_Name = 北 京 市nnn +Set ftrs = lyrUSA.Search(TOTPOP 10000001。字符串外加两个双引号。 2。首先将图层加入数据集 Datasets才能使用查询6.自定义范围专题图Dim ds As New MapXLib.DatasetDim thm As New MapXLib.ThemeSet ds = Formmain.Map1.Datasets(ToolBars.Combo2.Text)Set thm =
7、 ds.Themes.add(0, aa, , False)thm.Legend.Compact = False thm.AutoRecompute = False thm.ComputeTheme = False thm.DataMax = 700 thm.DataMin = 100 thm.ThemeProperties.AllowEmptyRanges = True thm.ThemeProperties.NumRanges = 7 thm.ThemeProperties.DistMethod = miCustomRanges thm.ThemeProperties.RangeCateg
8、ories.Max = 150 thm.ThemeProperties.RangeCategories(1).Min = 50 thm.ThemeProperties.RangeCategories(2).Max = 250 thm.ThemeProperties.RangeCategories(2).Min = 150 thm.ThemeProperties.RangeCategories(3).Max = 350 thm.ThemeProperties.RangeCategories(3).Min = 250 thm.ThemeProperties.RangeCategories(4).M
9、ax = 450 thm.ThemeProperties.RangeCategories(4).Min = 350 thm.ThemeProperties.RangeCategories(5).Max = 550 thm.ThemeProperties.RangeCategories(5).Min = 450 thm.ThemeProperties.RangeCategories(6).Max = 650 thm.ThemeProperties.RangeCategories(6).Min = 550 thm.ThemeProperties.RangeCategories(7).Max = 7
10、50 thm.ThemeProperties.RangeCategories(7).Min = 650 thm.ComputeTheme = Truethm.AutoRecompute = Truethm.Visible = True7.用MapX输出表格用mapx直接输出图象是可以的,但是输出数据,可以有以下两种方式: 输出为文本文件,然后由 VB读取2。 转换为 VB中的groud8.mapxtreme2.0 for NT 下,非地球坐标系出现的问题假设line.tab 地图的投影为非地球坐标系, 单位为米,边界为(-40,030.15474 ,-10,007.53869 )( 40,03
11、0.15474 ,10,007.53869 )。(1)对地图的处理。a.文件/另存为,在弹出的另存为对话框上点击投影按钮, 确认,弹出边界对话框,将原来的边界值乘以 1.609再添入,即 -40030.15474*1.609=-64408.51898 。四个边界值作同样处理。b.输入文件名如linenew.tab,确认.(2)在geoset manager中调入文件linenew.tab.设置其视野范围。如果实际设置为 0至U 0.19,则输入到对话框中时为 0至U 0.19*1.609.但在设置zoom(视野值)时的范围仍为 0-0.19.9.如何实现测距a./创建测距工具global co
12、nst calculatedistance=1Private Sub Form_Load()map1.CreateCustomTool(calcilatedistance,miToolTypepoly ,microsscursor)End SubPrivate Sub Distances_Click()map1.currenttool=calculatetoolb./ 在 mapx 的 PolyToolUsed 事件中,用Distance( x1,y1,x2,y2 ) 计算距离,由状态条中或 label显示。Private Sub Map1_PolyToolUsed(ByVal ToolNum
13、 As Integer , ByVal Flags As Long, ByVal points As Object, ByVal bShift As Boolean, ByVal bCtrl As Boolean, EnableDefault As Boolean)Dim DisSum As DoubleDim Dis As DoubleDim n As IntegerDim pts As New MapXLib.pointsDim x1 As Double, y1 As Double, x2 As Double, y2 As DoubleSet pts = pointsDisSum = 0M
14、DIForm1.StatusBar1.Panels.ltem (3).Text= Format(Str(DisSum), #,#0.000000)Select Case FlagsCase miPolyToolBeginCase miPolyToolInProgressIf ToolNum = CalculateDistance ThenFor i = 1 To pts.Count - 1x1 = pts.Item(i).Xy1 = pts.Item(i).Yx2 = pts.Item(i + 1).Xy3 = pts.Item(i + 1).YDis = Map1.Distance(x1, y1, x2, y2)DisSum = DisSum + DisMDIForm1.StatusBar1.Panels.Item(3) .Text = Format(Str(DisSum), End IfCase miPolyToolEndEnd Select10.printmap 方法中w,h,x,y的单位:himetric unit 代表什么意
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1