免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 4347|回复: 5
收起左侧

[GIS资料]MapX专题制图与分析

[复制链接]

2072

主题

100000万

铜板

363

好友

地信专家组

每一次的分离都是为了下一次的相聚

Rank: 14Rank: 14Rank: 14Rank: 14

积分
17622

精华勋章宣传勋章爱心勋章组织勋章地信元老灌水勋章荣誉会员勋章活跃勋章贡献勋章

发表于 2009-11-15 16:06 | 显示全部楼层 |阅读模式
[GIS资料]MapX专题制图与分析
去年做了MapX方面的毕业设计,现在再次搜集到这个方面的资料,和大家共享。下面是翻译的部分MapX4.5的帮助。

MapX专题制图与分析
    专题图是分析和可视化数据的一种强大的工具。可以图形化数据,这样就可以在地图上看到它。当使用专题图渲染在地图上显示的数据时,可以清楚地看出在数据记录中难以发现的模式和趋势。在MapX中,可以创建应用程序实现以下专题图类型:范围图、等级符号图、点密度图、独立值图、直方图和饼图。
1 专题制图的概念
    专题制图是根据某个特定专题对地图进行“渲染”的过程。专题通常是从数据集(Dataset)获取的一些数据。专题图通过颜色深浅、充填图案、符号、直方图和饼图来可视化地显示用户的数据。用户可以根据他们的数据,通过指定地图对象的颜色、图案或符号创建不同类型的专题图。直方图和饼图允许用户对特定数据集(Dataset)中的每条记录进行比较。
专题图可以通过许多中途径来图解用户的数据。一个最常见的例子是天气专题图。看到红色的地方,知道那儿是高度数;看到绿色的地方,知道那儿是低度数。专题图也可揭示数据中的趋势,这些通过列表数据是很难揭示的。
    用Themes集合中的属性和方法、Theme对象及ThemeProperties对象,用户可以创建和定义他自己的专题图。Legend对象解释了专题图,描述了专题图的颜色、形状和大小所代表的意思。
2 设计专题图
    创建专题图以前,知道创建专题图和如何使他们成为一个整体的原理是非常重要的。这一部分我们将要讨论专题变量,获取数据的方式、特别是获取其他表的数据及排列和显示专题图层。
2.1 专题变量
    专题变量是指显示在专题图上的数据。根据所进行的专题分析的类型,地图可以显示一种或更多的专题变量。范围图、格网图、等级符号图、点密度图和独立值图只能处理一个专题变量。而饼图和直方图可以同时处理多于一个的专题变量。
    也可以创建双变量的专题图,这样,一个地图对象,例如符号,代表两种不同的数据。例如:符号颜色代表一个专题变量,而符号大小代表另一个专题变量。
2.2 获取数据的方式
    开始专题制图以前,需要确定想要显示的信息和信息在什么地方。用来创建专题图的数据一般为一个来源于数据集(Dataset)的“字段”(Field)或“字段集”(Fields)对象。字段(字段集)作为Themes集合的Themes.Add方法的参数。
2.3 Themes集合
    每一个数据集(Dataset)都有一个Themes集合。一个Themes集合可以创建、记数、增加或移除Theme对象。
方法                叙述                                                     示例代码
Add        创建一个来自特定数据集的Theme对象,并加入到Themes中        Map1.Datasets(1).Themes.Add _miThemeRanges "TotPop", "My _Ranges Theme"
Remove        从集合中移除一个特定的Theme        Map1.Datasets(1).Themes.Remove "My _Ranges Theme"
RemoveAll        从一个集合中移除所有的Theme        Map1.Datasets(1).Themes.RemoveAll
2.4 创建专题图
    如果想用一个数据集(Dataset)渲染地图,可以用Themes.Add方法为这个数据集创建专题图。一旦一个数据集被加到地图上,就可以用这行代码创建专题图:Map1.Datasets(1).Themes.Add miThemeRanges "TotPop", "My Ranges _Theme" 。这行代码为数据集集合(Datasets)中第一个数据集用字段TotPop创建了范围专题图。下面对Themes.Add方法详细叙述。“[   ]”的参数是可选的。
语法:Themes.Add [Type] , [Field] , [Name]
2.4.1 Type
    指定了创建的专题图的类型。这是MapX中的专题类型常数(ThemeTypeConstants)。这是一个可选的参数,如果不指定(或指定为miThemeAuto),MapX将要考虑专题变量的数值和已经显示的专题图的情况选择一种合适的类型。如果MapX不能够选择一个默认的专题图类型,将会产生一个错误。
2.4.2  Field(s)
    指定专题图中使用的字段(Field)或字段集(Fields)。一个字段可以通过其名称(Name)、索引(Index)或字段(Field)对象来指定。如果创建了一个多变量专题图,参数可以为名称(Name)、索引(Index)或字段(Field)对象的数组。这是一个可选的参数,如果不指定,MapX用数据集(Dataset)中的第一个数值型字段。
2.4.5  Name        
    指定专题图的名称。这是一个字符串参数。这是一个可选的参数,如果不指定,MapX自动产生一个。
2.5 MapX如何选择默认的专题图
    如果Themes.Add方法的Type参数没有指定(或指定为miThemeAuto),MapX将要考虑专题变量的数值和已经显示的专题图情况自动选择专题图类型,象下面叙述的那样。
2.5.1 第一种情况
    字段个数: >1,层类型:点、线、面。
    运算法则:默认的类型是饼图。如果一个多变量专题图已经存在,MapX将会试着创建用第一个数值字段的专题图。(见下面的运算法则)
2.5.2 第二种情况
    字段数:1,层类型:点
    运算法则:如果专题变量在其值域范围内可以聚合为单值,MapX会创建独立值专题图。如果范围图或独立值图已经存在,MapX将不能创建默认专题图。如果专题变量在其值域范围内不可以聚合为单值,MapX会创建一个等级符号专题图。如果一个对象的专题图已经存在,MapX将要创建一个范围专题图。如果一个范围或独立值专题图已经存在,MapX将会不能创建默认专题图。
2.5.3 第三种情况
    字段数:1,层类型:线
    运算法则:如果专题变量在其值域范围内可以聚合为单值,MapX将会创建一个独立值专题图。如果一个范围专题图或独立值专题图已经存在,MapX将会不能创建默认专题图。如果专题变量在其值域范围内不可以聚合为单值,MapX会创建范围专题图。如果范围或独立值专题图已经存在,MapX会创建等级符号专题图。如果一个对象的专题图已经存在,MapX将不能创建默认专题图。
2.5.4 第四种情况
    字段数:1,层类型:面
    运算法则:如果专题变量在其值域范围内可以聚合为单值,MapX将会创建独立值专题图。如果一个范围或独立值专题图已经存在,MapX将不能创建默认专题图。如果专题变量在其值域范围内不可以聚合为单值,MapX将会创建一个范围专题图。如果一个范围或独立值专题图已经存在,MapX将会创建一个点密度专题图。如果一个点密度专题图已经存在,MapX将会创建等级符号专题图。如果一个对象专题图已经存在,MapX将不能创建默认专题图。
    专题图类型的确定靠的是指定的层。换句话说,当试图确定层B新的默认专题图类型时,层A上的专题图不会被考虑的。
2.6 专题类型常量
    可以创建以下类型的专题图:
类型                          描述
miThemeRanged                       范围专题图
miThemeBarChart                       直方图专题图
miThemePieChart                       饼图专题图
miThemeGradSymbol                       等级符号专题图
miThemeDotDensity                       点密度专题图
miThemeIndividualValue               独立值专题图
miThemeAuto                        MapX自定
    每一种都有其自己的用途和独一无二的属性。例如:用miThemeRanged,能够根据人口密度渲染世界地图。能够按颜色深浅渲染国家地图,用红色、暗红色代表人口密度大的国家。只须一瞥,就可以看到世界人口分布情况。
    用数值型变量制作专题图是没有限制的。名词性的变量也可以用来制作专题图。例如:也许有一个底下电缆的数据集(Dataset)。已经在底下服务六个月的电缆被标志为优先地位。用miThemeIndividualvalue,可以根据电缆的维修情况用专题图渲染地下电缆。所有具有同样数值的记录被渲染为相同的颜色。以后将对每种专题图做详细介绍。
    一旦Theme被加到指定的集合,Theme对象被创建,可以修改这个对象的属性。
2.7 Theme对象
    Theme对象设置了Themes集合中Theme的属性。通过修改Theme对象的方法和属性可以改变一个专题图的外观和类型等。
2.7.1 AutoRecompute
    当专题图属性改变时(例如:范围数),控制范围专题图重新计算。默认为“真”(True)。
2.7.2ComputeTheme
    控制专题变量是否被计算。默认是“真”(True)。一个真值将会从原始数据对专题图进行计算。如果设为False,一个可视的专题图对象将会创建,独立值专题图会有20个范围数,范围专题图会有5个范围数。然后,可以设置最大值和最小值来定义专题图。
2.7.3DataMax        ,DataMin
    对范围专题图而言,当ComputeTheme设置为False时,DataMax定义了最大的范围数或计算对等大小的范围数。DataMin定义了最小的范围数或计算对等大小的范围数。
2.7.4Fields        Returns
    一个只读属性,返回专题图对应的数据集(Dataset)的Fields集合。
2.7.5Legend
    每个专题图都有一个Legend对象(Theme.Legend)。Legend对象包含控制专题图图例的显示的属性。每个ThemeCategory对象(RangeCategory, IndividualCategory 或 MultiVarCategory)在图例中都有包含LegendText对象的条目。
2.7.6Name
    专题图名称。在Themes集合中,必须独一无二。这是一个可读写属性,创建专题图时,可以在Themes.Add中作为参数指定,也可以有MapX自动产生。这是Theme对象的默认属性。
2.7.7ThemeProperties
    ThemeProperties对象包含定义专题图的信息(范围定义,显示属性设置等)。
2.7.8Type
    一个专题图对象的类型。是一个ThemeTypeConstants常数,只读属性。
2.7.9Visible
    指定专题图是否是可见的。默认是True。
3 专题制图的类型
3.1独立值专题图
    独立值专题图显示包含在数据集(Dataset)中指定字段中独立值所渲染的 点、线或面对象。在独立值专题图中,可以用数值和名词性值作为专题变量。MapX为每一个独立的值指定颜色或符号。当需要使用符号时,MapX自动从地图的默认样式中选取符号。
    例如:在华盛顿D.C.区,一个软饮料供应商需要靠邮政编码(Zip Code)维护一张由他供应饮料的超市的数据表,每个超市出售供应商的饮料的价格是不一样的。如果供应商用独立值专题图以价格来渲染邮政编码的边界,所有出售价为49美分的商店用一种颜色渲染,出售价为51美分的用另外一种颜色,其他同理。这样每一个独立值被分配了他自己的颜色。供应商可以很直观地看到个超市的价格分布,很容易判断哪儿应增加供货量。
如果用名词性数据渲染点、线和面对象,可以选择独立值专题图。名词性数据是指非数值数据(例如:名称、烹饪服务的类型或汽车的商标等)或代表非数值数据的数值数据。日期被认为是数值数据,可以用在范围专题图或独立值专题图中。
    例如:有消费者调查结果数据。调查中也许会问:“星期日下午你最喜欢的活动是什么?”,可能的结果如下:
1.        睡觉
2.        看电视
3.        开车
4.        阅读
5.        参加或观看体育运动
6.        参观博物馆或艺术展览
7.        看电影
    如果想根据星期天下午的活动来渲染地图。数据集中有一个SUNDAY字段,这个字段记录了消费者星期天下午的活动。这样,字段内的数值并不代表量化的值。尽管7>5,“看电影”不比“参加或观看体育运动”大。当数值仅仅是一种“代表”而不是真正的数值时,必须用独立值专题图来渲染地图。数值仅仅是消遣活动项目的参考信息,以使颜色分配给它。
    通过IndividualValueCategories集合可以对独立值专题图进行设置,这是一个IndividualValueCategory对象集(这是一个在Theme对象中独一无二的值)。获得一个IndividualValueCategories集合,参考ThemeProperties.IndividualValueCategories属性。
3.2 范围专题图
    当创建范围专题图时,MapX对数据集中的数据分组形成范围。为每个相应范围内的记录对应的图元分配颜色、符号或线对象等。例如:在电台覆盖的区域内,有一个气象站的数据集,想根据各个气象站预报的降雪量渲染气象站的位置。根据范围图的特征,MapX将降雪量分成范围。例如将上个月降雪量在0-5英寸的气象站作为一个范围。5-10英寸为另外一个范围。10-15英寸为第三个范围。>15英寸为第四个范围。在数据集中的所有记录被分配到一个个范围中,每个范围分配指定的颜色。例如:降雪量超过15英寸的气象站(所在区域)渲染为红色,其他范围分配比红色浅一点的颜色,最后一个范围分配为灰色(默认颜色)。当显示地图时,可以直观地看出降雪量最大和最小的地点。
    当区域的大小与数据值的大小不直接相关时,范围专题图也是有用的。
3.2.1 范围值的类型
    MapX可以用五种方法创建范围:等个数(Equal Count)、等范围(Equal Ranges)、自然分割(Natural Break)、标准分割(Standard Deviation)和分位数(Quantile)。设置ThemeProperties对象的DistMeth属性,可以设置为下面的任何一种DistribMethodConstants常数。
3.2.2 DistribMethodConstants常数
3.2.2.1 等个数(miEqualCountPerRange)
    等个数即每个范围中记录的个数相同。如果想要MapX用等范围的方法将100个记录分成4组,MapX估算范围,每个范围大约25条记录,这还要考虑所设置的舍入法则。
当用“等范围”(或其他划分范围方法)时,当心边界值是非常重要的,这也许会影响专题图(在统计学中,这些数据归为局外的)。例如,用下列资料要创建等个数的专题图:
John        5000        Andrea        7000
Penny        6000        Kyle        5500
Miguel        4500        Angela        7500
Linda        5000        Elroy        6000
Ben        100        Mark        7000
    将Ben和Miguel划分到同一个范围(因为他们对应的值最低)。以为Ben对应的值相对其他人来数如此低,这也许并不是想要得到的结果。
3.2.2.2 等范围(miEqualRangesSize)
    等范围即将记录分成大小相等的范围。例如:在表中,有一个值在1-100的字段。想用等范围的方法划分为四个范围,创建范围专题图。MapX会产生这样的范围:1-25,26-50,51-75和76-100。
根据数据的分布状态,一定要记住,MapX也许会产生没有记录的范围。例如,要用等范围的方法渲染下面的数据:
John        100        Andrea        90
Penny        6        Kyle        1
Miguel        4        Angela        92
Linda        95        Elroy        89
Ben        10        Mark        10
   
    MapX创建四个范围(1-25,26-50,51-75和76-100)。然而仅仅有两个范围(1-25和76-100)包含记录。
3.2.2.3自然分割(miNaturalBreak)
    自然分割和分位数是两种显示数据的方法,他们并不平均地分配数据。
自然分割创建范围的运算法则是:用每个范围的平均值来分配数据。用它划分的范围中,范围的平均值与每一个具体值尽可能的接近。这确保了可以用范围的平均值来代表某个范围,每个范围中的数据值也非常接近。
3.2.2.4 标准分割(miStandardDeviation)
    当用标准分割来划分范围时,用中间的值创建中间的范围,在中间范围之上或之下的范围又是对中间值之上或之下的值的标准分割。
3.2.2.5自定义范围(miCustomRanges)
    也可以用“自定义范围”的方法自己定义范围。在RangeCategories集合中指定自己的范围(MapX自己计算)。
一个范围专题图的范围设置在RangeCategories集合中,这是由RangeCategory(一个对象对应一个范围,按升序排序)对象组成的集合。集合中每个对象描述了一个范围(显示风格、最大最小值等)。
3.2 等级符号图
    等级符号图用符号来代表不同的数值。不管使用什么类型的数据,都可以使用等级符号(图)。例如:用等级符号(图)显示某些州的销售定单。在等级符号专题图上,MapX可以根据“销售定单”字段的数值来确定每个符号的大小。可以根据消费者的利息的多少确定符号的大小,制作符号专题图,来描述每个消费者利息情况。
    等级符号图可以更好地表现数值数据。如果有一个“餐馆”表,根据餐馆提供的烹饪服务来创建等级符号专题图是没有什么道理的。然而,当想用等级符号图显示20个不同快餐店出售汉堡包的数量是非常合适的。
    可以通过两种属性来定制等级符号图:DataValue和SymbolStyle。
SymbolStyle属性控制了使用什么样的符号、符号的大小(和DataValue属性一起控制)。在最大值和零之间的所有值都有一个内插的点的尺寸。SymbolStyle是一个Style对象,控制符号的所有格式,例如:颜色、字体、旋转角等。也可以用自己的位图文件来作为符号。
Style对象有一个PickSymbol方法,显示一个符号样式对话框。这个对话框可以让用户改变符号样式属性。当单击“OK”时,样式得到更新。
3.4点密度图
    点密度图用点(数)来表现与数据值对应的边界或域对象。一个域对象中点的总个数代表了域对应的数据值。如果某县有10,000个高级市民,每个点代表100位高级市民,在这个县的界线内将会有100个点。
对于每个点可以代表很大数值的原始数据,用点密度图是非常适合的。例如人口、快餐店个数、某种商标的碳酸水的提供商个数等。
例如:有一个按各州的人口表,可以用点密度图显示每个州的人口聚集程度。可以用两个属性来控制点密度图。可以指定每个点代表的数值。例如,有一个各县的人口统计表,纽约的Rensselaer县有20,000位高中生。如果想根据高中生数用点密度图渲染地图,每个点代表200个学生,那么在Rensselaer县境内有100个点。
    当增加每个点所代表的数值时,在地图上将会减少显示的点数。可以修改专题图,让每个点代表400个学生,这样,在Rensselaer县境内仅仅有50个点。用Map1.Datasets(1).Themes("My DotDensity _
Theme".ThemeProperties.ValuePerDot = 400即可实现。
    另外,可以根据需要改变点的大小。如果数据值比较大,为了更容易观看,可以使点小一点。相反,如果数据值比较小,使点大一点也许使看起来更清楚一点。Map1.Datasets(1).Themes("My DotDensity Theme".ThemeProperties.DotSize = miDotSizeLarge
    注意:在域内,点的分布是随机的。例如:如果根据人口来渲染各州地图,纽约州的点分布于整个州内,而不是仅仅在纽约市中,虽然那儿居住了纽约州的大多数人口。
3.5直方图
    不象范围图、等级符号图等单变量专题图那样,直方专题图可以同时处理多个专题变量。直方图放在地图对象(图元)的中心点,可以通过直方图的高度来分析专题变量。也可以通过观察地图上所有的直方图来比较同一个专题变量。
    例如:有一个美国各州边界表,包含男女人口数量。用直方专题图,可以创建在每个州显示两个直方条的专题图:一条代表女性人数,另一条代表男性人数。可以对比每个州的人口,也可以分析几个州和比较一个州与另外州的人口或人口的不同。为了达到最好的效果,在的分析中,每个直方图不要多于4-6个直方条。
    可以通过五个属性定制直方图:DataValue、Size、Independent、 MultiVarCategories和 Width。
    在给定数值时,DataValue和Size属性一起控制图形大小。DataValue默认为对应专题变量的最大值。Size指定了纸张单位(PaperUnit)的图形大小。这是一个双精度值,默认0.25英寸。
    Width属性指定了每个直方条的宽度(以纸张为单位)。这是一个双精度值,默认0.25英寸。
    Independent属性控制几个专题变量是否时独立的(人口和平均收入是不可比的)。这是一个布尔型值,默认为False。当多变量直方图中对应个字段是不相关的或各字段最大值相差很大时,这个属性应设置为True。我们可以用人口直方图作为一个例子,一个直方条代表州的人口数量,另一个直方条代表出口品的排名,其值在1-50之间。如果Independent设置为True,人口最多的州的人口直方图的高度和出口品排名最高的州的出口品排名直方图的高度是相同的。如果设置为False,从出口品排名直方图得到任何信息都是很困难的,因为出口品排名第一的州对应的直方条的尺寸与仅仅有一个人的州对应的直方条尺寸时相同的。
    一个直方图专题图通过MultivarCategories集合显现为OLE,这个集合由MultivarCategory对象组成。一个直方条对应一个MultivarCategory对象。
3.6饼图
    饼图专题图也可以一次处理多个专题变量。像直方图中直方图的高度一样,在饼图中,对一个饼图,可以比较各个楔子,对一个楔子,可以比较各个饼图。饼图也可以比较整体中的一部分。
    饼图和直方图分析人口数据都是非常有用的。例如:有一个有关美国人口数据的数据集,数据集中将人口分成几个主要的人口团体。用饼图,能够显示每一个人口团体的人口,可以看到饼图中各部分组成。可看到各州或整个美国基本的人口分布。也可以锁定某个人口团体,在不同的州之间进行比较。为了达到更好的效果,在分析中,每个饼图中楔子数不要超过4-6个。
    下面四个属性用来定制饼图:DataValue、Size、Graduated、和MultiVarCategories。
    对于一个指定值,DataValue和Size属性一起控制图形大小。DataValue默认为对应专题变量的最大值。Size指定了纸张单位(PaperUnit)的图形大小。这是一个双精度值,默认0.25英寸。
    Graduated属性控制饼图大小是否根据记录值基于最大值等级变化。这是个布尔型值,默认为True。
    饼图专题图通过MultivarCategories集合显现为OLE,这个集合由MultivarCategory对象组成。一个饼图对应一个MultivarCategory对象。
3.7双变量专题图
    双变量专题图用点或线对象代表两个专题变量。例如,一个“五星”代表一个专题变量,例如十几岁青少年的总数,蓝色的“五星”代表他们一年的年刊购买量。
    在MapX中创建双变量专题图,实际上创建了两个专题图,为了显示两个变量,一个层叠加在另外一个层上面。
3.7.1 专题图类型和变量
    适合双变量专题图的专题图类型仅仅有范围和独立值专题图。根据数据可以采用下面两种组合:两个范围图;一个范围图和一个独立值图。如果有非数值数据,其中之一必须为独立值图,不能用两个非数值性数据创建双变量专题图。
3.7.2显示属性
    用一种符号显示两个变量,为每个变量选择不同的符号属性是非常重要的。例如不能为两个变量选择这样的颜色,一种颜色覆盖另外一种颜色。从下面的组合种选择:
颜色和符号类型
颜色和尺寸
尺寸和符号类型
    (选择)符号类型仅仅用于名词性或非数值性数据,符号类型与数量之间并没有固有的结合。
4 自定义专题图图例
    当创建了专题图以后,MapX自动创建一个图例,用来解释专题图上颜色、符号、大小所代表的含义。每个专题图都有一个图例对象(Theme.Legend)。图例对象包含定义图例显示的属性。

1

主题

64

铜板

0

好友

助理工程师

Rank: 5Rank: 5

积分
178
发表于 2010-4-19 19:08 | 显示全部楼层
谢谢楼主.先支持一下

8

主题

194

铜板

15

好友

助理工程师

敏感而刚烈的我们,刚烈地爱着,刚

Rank: 5Rank: 5

积分
380
QQ
发表于 2010-10-9 16:57 | 显示全部楼层
[s:118] [s:118]
[s:118] [s:118]
谢谢楼主啊。很详细哎

2

主题

4万

铜板

8

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
7002
发表于 2021-12-19 14:47 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

2万

铜板

1

好友

资深会员

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

积分
3571
发表于 2022-1-4 12:57 | 显示全部楼层
MapX专题制图
回复 支持 反对

使用道具 举报

头像被屏蔽

0

主题

3246

铜板

0

好友

禁止发言

积分
1892
发表于 2025-1-8 16:25 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表