mapxtreme2004 培训 james.liu. m a p x t r e m e 2 0 0 4 内容 mapxtreme2004 概览 ...

29
MapXtreme2004 培培 James.Liu

Upload: elijah-higgins

Post on 18-Jan-2016

378 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

MapXtreme2004 培训

James.Liu

Page 2: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4

内容

MapXtreme2004 概览地图及图层管理数据管理数据查询几何对象专题图

Page 3: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4

专题图

目标- 专题图命名空间- 专题图类型- 如何创建专题图- 图例

Page 4: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4

专题地图

范围专题独立值专题图饼图直方图等级符号图点密度图范围标注专题图独立值标注专题图

Page 5: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4

等级符号图

Page 6: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4

饼图

Page 7: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4

直方图

Page 8: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4

范围图

Page 9: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4

范围标注专题图

Page 10: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4

独立值专题图

Page 11: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4

独立值标注专题图

Page 12: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4

点密度图

Page 13: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4

专题

有两种类型的主题- 修饰符(样式覆盖)主题 – Modifier

Theme

- 对象主题 – Object Theme

Page 14: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4

修饰符专题和点密度专题对象模型

IndividualValueTheme

RangedTheme

CompositeStyle

RangedThemeBin IndividualValueBin

FeatureStyleModifier

«interface»IModifierTheme

1

1

1

*

«interface»ITheme

«interface»ModifierThemeBin

DotDensityTheme

IVisibilityConstraint

Page 15: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4

对象主题的对象模型

ObjectTheme

BarThemePieTheme

GraduatedSymbolTheme

MultiVariableThemeCategory

1

*

«interface»ITheme

MultiVariableTheme

Page 16: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

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(featureLayer, "TrainingRev", "TrainingRevenue", 5,MapInfo.Mapping.Thematics.DistributionMethod.EqualCountPerRange);

featureLayer.Modifiers.Append(rangedTheme);

Page 17: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

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);

Page 18: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

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);

Page 19: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

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);

Page 20: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

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();

Page 21: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

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();

Page 22: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

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);

Page 23: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4

独立值标注专题图

// 创建新的独立值标注专题 IndividualValueLabelTheme theme = newIndividualValueLabelTheme(labelSource.Table, columnName,themeAlias);

// 为标注增加标注修改样式LabelModifier labelModifier = theme as LabelModifier;

labelSource.Modifiers.Insert(0, labelModifier);

Page 24: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

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);

Page 25: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4

图例对象模型

AllOthersLegendFrameRow Class

CartographicLegendFrame Class

CartographicLegendFrameRow Class

CustomLegendFrameRow Class

ILegendRow InterfaceLegend Class

LegendFormat Class

LegendFrame Class

LegendFrameRows Class

LegendFrames Class

ThemeLegendFrame ClassThemeLegendFrameRow Class

LegendFactory Class LegendFrameFactory Class

IAdornment

ISerializable

1 1

ISerializable

1

*

ISerializable

ICloneable

ISerializable

1*

ISerializable

1*

1

1

Mapping.Thematics.ITheme

ILegendRow

ILegendRow

ILegendRow

1

1

1

*

1

1

CustomLegendFrame

Page 26: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

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_65Plus");

ObjectThemeLayer themeLayer = new ObjectThemeLayer

("World Pop", null, theme);

map.Layers.Add(themeLayer);

Page 27: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

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("Area",

"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;}

Page 28: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

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);

Page 29: MapXtreme2004 培训 James.Liu. M a p X t r e m e 2 0 0 4 内容  MapXtreme2004 概览  地图及图层管理  数据管理  数据查询  几何对象  专题图

M a

p X

t r

e m

e 2

0 0

4 问题?