Delphi ArcEngine 创建比例尺
Delphi ArcEngine 创建比例尺,https://www.cnblogs.com/chinacodegear/archive/2009/03/19/1416410.html //本函数 是在 PageControl上拉选一个区域内 创建一个比例尺,比例尺的样式,我自己定义一个 枚举类型 如下 type ScaleType = (stAlternating, stDoubleAlternating, stHollow, stScaleLine, stSingleDivision, stSetpped); function InsertScaler(aePageLayoutControl: TPageLayoutControl; stType: ScaleType; sTitle: string): Boolean; var pPageLayout: IPageLayout; pScaleBar: IScaleBar; pMapFrame: IMapFrame; pMapSurroundFrame: IMapSurroundFrame; pMapSurround: IMapSurround; pElement : IElement; pElementPro: IElementProperties; pUID : UID; pGraphicsContainer: IGraphicsContainer; pActiveMap: IActiveView; pMap : IMap; pEnvelope: IEnvelope; begin //产生一个 UID 对象,使用它产生不同的 MapSurround 对象 pUID := CoUID.Create as UID; pUID.Value := 'esriCarto.scalebar'; pPageLayout := aePageLayoutControl.PageLayout; pActiveMap := pPageLayout as IActiveView; aePageLayoutControl.TrackCancel.Reset; pEnvelope := aePageLayoutControl.TrackRectangle; if (pEnvelope.IsEmpty) or (pActiveMap = nil) then Exit(False); pGraphicsContainer := pPageLayout as IGraphicsContainer; pActiveMap := pGraphicsContainer as IActiveView; pMap := pActiveMap.FocusMap; //获得与地图相关的 mapFrame pMapFrame := pGraphicsContainer.FindFrame(pMap) as IMapFrame; //产生MapSurroundFrame pMapSurroundFrame := pMapFrame.CreateSurroundFrame(pUID, nil); case stType of //比例尺样式选择 stAlternating: pScaleBar := CoAlternatingScaleBar.Create as IScaleBar; stDoubleAlternating: pScaleBar := CoDoubleAlternatingScaleBar.Create as IScaleBar; stHollow: pScaleBar := CoHollowScaleBar.Create as IScaleBar; stScaleLine: pScaleBar := CoScaleLine.Create as IScaleBar; stSingleDivision: pScaleBar := CoSingleDivisionScaleBar.Create as IScaleBar; stSetpped: pScaleBar := CoSteppedScaleLine.Create as IScaleBar; end; //设置比例尺的属性 pScaleBar.Division := 3; pScaleBar.Divisions := 3; pScaleBar.LabelGap := 4; pScaleBar.LabelPosition := esriAbove;//比例尺标签的 位置 pScaleBar.Map := pMap; pScaleBar.Name := sTitle; pScaleBar.Subdivisions := 2; pScaleBar.Units := esriKilometers; pScaleBar.UnitLabelPosition := esriScaleBarAfterLabels; pScaleBar.UnitLabelGap := 4; pScaleBar.UnitLabel := '千米'; pMapSurround := pScaleBar as IMapSurround; pMapSurroundFrame.MapSurround := pMapSurround; pElementPro := pMapSurroundFrame as IElementProperties; pElementPro.Name := '我的比例尺'; //将mapsurroundframe添加到控件 if not pEnvelope.IsEmpty then begin aePageLayoutControl.AddElement(pMapSurroundFrame as IElement, pEnvelope, EmptyParam, EmptyParam, 0); pActiveMap.PartialRefresh(esriViewGraphics, nil, nil); Result := True; end else begin Result := False; end; end;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2019-12-04 python window窗口
2019-12-04 Python绘图与可视化
2019-12-04 ArcGIS Python人门到精通目录基于ArcGIS10.2,100以上案例15章42个视频806分钟,51GIS网站上线
2013-12-04 C# 重新改变数组的长度