Download presentation
Presentation is loading. Please wait.
Published byElijah Higgins Modified over 9 years ago
1
MapXtreme2004 培训 James.Liu
2
M a p X t r e m e 2 0 0 4 内容 MapXtreme2004 概览 地图及图层管理 数据管理 数据查询 几何对象 专题图
3
M a p X t r e m e 2 0 0 4 专题图 目标 - 专题图命名空间 - 专题图类型 - 如何创建专题图 - 图例
4
M a p X t r e m e 2 0 0 4 专题地图 范围专题 独立值专题图 饼图 直方图 等级符号图 点密度图 范围标注专题图 独立值标注专题图
5
M a p X t r e m e 2 0 0 4 等级符号图
6
M a p X t r e m e 2 0 0 4 饼图
7
M a p X t r e m e 2 0 0 4 直方图
8
M a p X t r e m e 2 0 0 4 范围图
9
M a p X t r e m e 2 0 0 4 范围标注专题图
10
M a p X t r e m e 2 0 0 4 独立值专题图
11
M a p X t r e m e 2 0 0 4 独立值标注专题图
12
M a p X t r e m e 2 0 0 4 点密度图
13
M a p X t r e m e 2 0 0 4 专题 有两种类型的主题 - 修饰符(样式覆盖)主题 – Modifier Theme - 对象主题 – Object Theme
14
M a p X t r e m e 2 0 0 4 修饰符专题和点密度专题对象模型
15
M a p X t r e m e 2 0 0 4 对象主题的对象模型
16
M a p X t r e m e 2 0 0 4 范围专题图 FeatureLayer featureLayer = mapControl1.Map.Layers["World"] as FeatureLayer; MapInfo.Mapping.Thematics.RangedTheme rangedTheme = new MapInfo.Mapping.Thematics.RangedTheme(featureLa yer, "TrainingRev", "TrainingRevenue", 5,MapInfo.Mapping.Thematics.DistributionMethod.Eq ualCountPerRange); featureLayer.Modifiers.Append(rangedTheme);
17
M a p X t r e m e 2 0 0 4 独立值专题图 FeatureLayer featureLayer = mapControl1.Map.Layers["Office"] as FeatureLayer; IndividualValueTheme indValueTheme = new IndividualValueTheme(featureLayer, "Region", "OfficeRegion"); featureLayer.Modifiers.Append(indValueTheme);
18
M a p X t r e m e 2 0 0 4 等级符号专题 FeatureLayer featureLayer = mapControl1.Map.Layers["WorldCap"] as FeatureLayer; GraduatedSymbolTheme gradSymbolTheme = new GraduatedSymbolTheme(featureLayer.Table, "cap_pop"); gradSymbolTheme.DataValueAtSize = 1000000; ObjectThemeLayer objThemeLayer = new ObjectThemeLayer("CapitalPopulation", null, gradSymbolTheme); mapControl1.Map.Layers.Add(objThemeLayer);
19
M a p X t r e m e 2 0 0 4 饼专题图 using MapInfo.Mapping; using MapInfo.Mapping.Thematics; map.Load(new MapTableLoader("world.tab")); FeatureLayer lyr = map.Layers["world"] as FeatureLayer; PieTheme pieTheme = new PieTheme(map, lyr.Table, "Pop_Native", "Pop_Asian","Pop_Other"); // 创建新图层 ObjectThemeLayer thmLayer = new ObjectThemeLayer("Ethnic Diversity", null, pieTheme);
20
M a p X t r e m e 2 0 0 4 饼专题图(续) map.Layers.Add(thmLayer); // 修改专题图并重建,也可以在专题创建前设定 pieTheme.DataValueAtSize /= 2; pieTheme.GraduateSizeBy=GraduateSizeBy.Constant; thmLayer.RebuildTheme();
21
M a p X t r e m e 2 0 0 4 直方图专题 using MapInfo.Mapping; using MapInfo.Mapping.Thematics; map.Load(new MapTableLoader("world.tab")); FeatureLayer lyr = map.Layers["world"] as FeatureLayer; BarTheme barTheme = new BarTheme(map, lyr.Table, "Pop_Native","Pop_Male","Pop_Female"); ObjectThemeLayer thmLayer = new ObjectThemeLayer("Pop Male / Female", null,barTheme); map.Layers.Add(barTheme); barTheme.Stacked = true; barTheme.GraduateSizeBy = GraduateSizeBy.Constant; thmLayer.RebuildTheme();
22
M a p X t r e m e 2 0 0 4 范围标注地图 LabelLayer ll = map1.Layers.item(5); LabelSource labelSource = ll.sources(0); // 基于标注图层的 labelsource 创建 RangedLabelTheme rangedLabelTheme = new RangedLabelTheme(labelSource.Table, columnName, themeAlias, 5,DistributionMethod.EqualCountPerRange); // 将标注样式修改增加到标注图层 LabelModifier labelModifier = rangedLabelTheme as LabelModifier; labelSource.Modifiers.Insert(0, labelModifier);
23
M a p X t r e m e 2 0 0 4 独立值标注专题图 // 创建新的独立值标注专题 IndividualValueLabelTheme theme = new IndividualValueLabelTheme(labelSource.Table, columnName,themeAlias); // 为标注增加标注修改样式 LabelModifier labelModifier = theme as LabelModifier; labelSource.Modifiers.Insert(0, labelModifier);
24
M a p X t r e m e 2 0 0 4 点密度专题图 using MapInfo.Mapping; using MapInfo.Mapping.Thematics; // 加载表 map.Load(new MapTableLoader("World.tab")); // 在图层上加入样式修改作为点密度专题图 DotDensityTheme thm = new DotDensityTheme(lyr, "Pop_1994", "World Pop", System.Drawing.Color.Red, DotDensitySize.Large); FeatureLayer lyr = map.Layers["World"] as FeatureLayer; lyr.Modifiers.Append(thm);
25
M a p X t r e m e 2 0 0 4 图例对象模型
26
M a p X t r e m e 2 0 0 4 示例 – 创建专题图例 using MapInfo.Data; using MapInfo.Mapping; using Mapinfo.Mapping.Thematics; Map map = mapControl1.Map; Table table = MapInfo.Engine.Session.Current.Catalog.OpenTable("world.tab "); FeatureLayer layer = new FeatureLayer(table); map.Layers.Add(layer); BarTheme theme = new BarTheme(map,layer.Table,"Pop_0_14","Pop_15_64","Pop_65 Plus"); ObjectThemeLayer themeLayer = new ObjectThemeLayer ("World Pop", null, theme); map.Layers.Add(themeLayer);
27
M a p X t r e m e 2 0 0 4 示例 – 创建专题图例(续) // 创建图例 legend = map.Legends.CreateLegend(new Size(5, 5)); legend.Border = true; ThemeLegendFrame frame = LegendFrameFactory.CreateThemeLegendFrame("Are a", "Area", theme); legend.Frames.Append(frame); frame.Title = "Area (sq. mi.)"; map.Adornments.Append(legend); // 设置起始坐标 System.Drawing.Point pt = new System.Drawing.Point(0, 0); pt.X = mapControl1.Size.Width - legend.Size.Width; pt.Y = mapControl1.Size.Height - legend.Size.Height; legend.Location = pt;}
28
M a p X t r e m e 2 0 0 4 示例 – 创建图形图例 using MapInfo.Mapping; using MapInfo.Mapping.Thematics; // 创建图例 System.Drawing.Size size = new System.Drawing.Size(400, 400); legendFactory = session.LegendFactory; legend = legendFactory.CreateLegend(map, size); frameFactory = legend.LegendFrameFactory; // 为图例家图框 frame = frameFactory.CreateCartographicLegendFrame(lyr, "State", "State", RowTextSourceType.Expression); legend.Frames.Append(frame);
29
M a p X t r e m e 2 0 0 4 问题?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.