zoukankan      html  css  js  c++  java
  • Delphi ArcEngine 创建指北针

    function InsertNorthArrow(aePageLayoutControl: TPageLayoutControl; iStyle: SmallInt): Boolean;
    var
       pPageLayout: IPageLayout;
       pMap     : IMap;
       pActiveMap: IActiveView;
       pGraphicContainer: IGraphicsContainer;
       pMapFrame: IMapFrame;
       pMapSurround: IMapSurround;
       pMapSurroundFrame: IMapSurroundFrame;
       pUID     : UID;

       pEnvelope: IEnvelope;

       pNorthArrow: IMarkerNorthArrow;
       pCharacterMarkerSymbol: ICharacterMarkerSymbol;
    begin
       pUID := CoUID.Create as UID;
       pUID.Value := 'esriCarto.MarkerNorthArrow';

       pPageLayout := aePageLayoutControl.PageLayout;
       pActiveMap := pPageLayout as IActiveView;

       aePageLayoutControl.TrackCancel.Reset;
       pEnvelope := aePageLayoutControl.TrackRectangle;

       if (pEnvelope.IsEmpty) or (pActiveMap = nil) then
          Exit(False);

       pMapSurround := CreateSurround(pUID, pEnvelope, '指北针', pPageLayout);//这个函数并非 ae 自带的,是自己写的,请参考另外一个随笔

       // Delphi版 ArcEngine 创建MapSurround对象

       if pMapSurround = nil then
          Exit(False);

       pNorthArrow := pMapSurround as IMarkerNorthArrow;
       pCharacterMarkerSymbol := pNorthArrow.MarkerSymbol as ICharacterMarkerSymbol;
       pCharacterMarkerSymbol.CharacterIndex := iStyle;

       pNorthArrow.MarkerSymbol := pCharacterMarkerSymbol;
       pActiveMap.PartialRefresh(esriViewGraphics, nil, nil);

       Result := True;
    end;
  • 相关阅读:
    WPF 中 TextBlock 文本换行与行间距
    WPF中TextBox文件拖放问题
    WPF 自定义鼠标光标
    矩形覆盖
    跳台阶和变态跳台阶
    用两个栈实现队列
    重建二叉树
    从尾到头打印链表
    替换空格
    斐波那契数列
  • 原文地址:https://www.cnblogs.com/chinacodegear/p/1416416.html
Copyright © 2011-2022 走看看