1,画多边形,画线
procedure TForm1.Map1PolyToolUsed(Sender: TObject; ToolNum: Smallint; Flags: Integer; const Points: IDispatch;
bShift, bCtrl: WordBool; var EnableDefault: WordBool);
var
Style: CMapXStyle;
f: CMapXFeature;
begin
case Flags of
miPolyToolBegin: ;{ 某些用户开始使用 PolyTool.. }
miPolyToolEnd:
{ 用户通过双击完成 PolyTool 的使用 }
if ToolNum = MY_POLYGON_TOOL then
begin
{ 它们使用 MY_POLYGON_TOOL!制作新的区域图元 并将其添加到第一个图层 }
Style := Map1.DefaultStyle.Clone;
Style.RegionPattern := miPatternSolid;
Style.RegionColor := 255;
Style.RegionBorderColor := 0;
Style.RegionBorderWidth := 2;
Style.RegionBorderStyle := 1;
{ 使用由事件为我提供的点。 MapX 自动关闭打开的多边形,因此我无 需担心! }
f := Map1.FeatureFactory.CreateRegion(Points, Style);
Map1.Layers.Item('Temp Layer').AddFeature(f, EmptyParam);
end
else if ToolNum = MY_POLYLINE_TOOL then
begin
{ 它们使用 MY_ POLYLINE_TOOL!制作新的线图元 并将其添加到第一个图层 }
Style := Map1.DefaultStyle.Clone;
Style.LineStyle := 1;
Style.LineColor := 255;
Style.LineWidth := 2;
{ 使用由事件为我提供的点 }
f := Map1.FeatureFactory.CreateLine(Points, Style);
Map1.Layers.Item('Temp Layer').AddFeature(f, EmptyParam);
end;
miPolyToolEndEscaped: ; { 用户按下了 Esc 或退格键 删除所有节点... 不要再添加任何东西。 }
end;
end;
//////////////////////////////
2.画折线和多边形(并没有考虑属性数据的录入)
procedure TForm1.Map1PolyToolUsed(Sender: TObject; ToolNum: Smallint; Flags: Integer; const Points: IDispatch;
bShift, bCtrl: WordBool; var EnableDefault: WordBool);
var
Style: CMapXStyle;
f: CMapXFeature;
begin
case Flags of
miPolyToolBegin: ;{ 某些用户开始使用 PolyTool.. }
miPolyToolEnd:
{ 用户通过双击完成 PolyTool 的使用 }
if ToolNum = MY_POLYGON_TOOL then
begin
{ 它们使用 MY_POLYGON_TOOL!制作新的区域图元 并将其添加到第一个图层 }
Style := Map1.DefaultStyle.Clone;
Style.RegionPattern := miPatternSolid;
Style.RegionColor := 255;
Style.RegionBorderColor := 0;
Style.RegionBorderWidth := 2;
Style.RegionBorderStyle := 1;
{ 使用由事件为我提供的点。 MapX 自动关闭打开的多边形,因此我无 需担心! }
f := Map1.FeatureFactory.CreateRegion(Points, Style);
Map1.Layers.Item('Temp Layer').AddFeature(f, EmptyParam);
end
else if ToolNum = MY_POLYLINE_TOOL then
begin
{ 它们使用 MY_ POLYLINE_TOOL!制作新的线图元 并将其添加到第一个图层 }
Style := Map1.DefaultStyle.Clone;
Style.LineStyle := 1;
Style.LineColor := 255;
Style.LineWidth := 2;
{ 使用由事件为我提供的点 }
f := Map1.FeatureFactory.CreateLine(Points, Style);
Map1.Layers.Item('Temp Layer').AddFeature(f, EmptyParam);
end;
miPolyToolEndEscaped: ; { 用户按下了 Esc 或退格键 删除所有节点... 不要再添加任何东西。 }
end;
end;