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;
  • 相关阅读:
    获取指定字符传的长度或者高度
    检测身份证号码是否合法
    tabbar添加小红点
    单例的简单构造
    iOS程序内发短信
    多项式加法运算 使用链表实现
    链表的数组实现
    使用链表实现堆栈
    使用链表实现堆栈
    求最大子列和的几种方法
  • 原文地址:https://www.cnblogs.com/chinacodegear/p/1416416.html
Copyright © 2011-2022 走看看