• Delphi版 创建SimpleRenderer专题地图[增强版]


    //对给定的图层的某一字段,用指定的颜色和样式创建专题

    function SimpleRenderer(pLayer: ILayer; sField: string; pColor: IColor; eStyle: TOleEnum): Boolean;
    var
      pSimpleRenderer: ISimpleRenderer;
      pSimpleFillSymbol: ISimpleFillSymbol;
      pSimpleMarkSymbol: ISimpleMarkerSymbol;
      pSimpleLineSymbol: ISimpleLineSymbol;
      pRenderer: ITransparencyRenderer;
      pGeoLayer: IGeoFeatureLayer;
    begin
      try
        pGeoLayer := pLayer as IGeoFeatureLayer;
        pSimpleRenderer := CoSimpleRenderer.Create as ISimpleRenderer;
        case (pLayer as IGeoFeatureLayer).FeatureClass.ShapeType of
          esriGeometryPoint, esriGeometryMultipoint:
            begin
              pSimpleMarkSymbol := CoSimpleMarkerSymbol.Create as ISimpleMarkerSymbol;
              pSimpleMarkSymbol.Color := pColor;
              pSimpleMarkSymbol.Style := esriSMSCircle;
              pSimpleMarkSymbol.Size := 7;
              pSimpleMarkSymbol.Outline := True;

              pSimpleRenderer.Symbol := pSimpleMarkSymbol as ISymbol;

            end;

          esriGeometryLine, esriGeometryPolyline:

            begin
              pSimpleLineSymbol := CoSimpleLineSymbol.Create as ISimpleLineSymbol;
              pSimpleLineSymbol.Color := pColor;
              pSimpleLineSymbol.Style := esriSLSSolid;
              pSimpleLineSymbol.Width := 2;
              pSimpleRenderer.Symbol := pSimpleLineSymbol as ISymbol;
            end;
          esriGeometryPolygon:
            begin
              pSimpleFillSymbol := CoSimpleFillSymbol.Create as ISimpleFillSymbol;
              pSimpleFillSymbol.Color := pColor as IColor;
              pSimpleFillSymbol.Style := eStyle;
              pSimpleRenderer.Symbol := pSimpleFillSymbol as ISymbol;
            end;
        end;
        pSimpleRenderer.Description := '透明度专题';
        pSimpleRenderer.Label_ := sField;
        pRenderer := pSimpleRenderer as ITransparencyRenderer;
        pRenderer.TransparencyField := sField;
        pGeoLayer.Renderer := pRenderer as IFeatureRenderer;
      except
        Result := False;
        Exit;
      end;
      Result := True;
    end;

     //注意调用了本函数后,别忘了刷新MapControl控件的视图啊。

  • 相关阅读:
    hdu1686 最大匹配次数 KMP
    洛谷 P5057 [CQOI2006]简单题(树状数组)
    洛谷 P5020 货币系统
    洛谷 P5019 铺设道路(差分)
    洛谷 P1119 灾后重建(Floyd)
    洛谷 P1082 同余方程(同余&&exgcd)
    洛谷 P2384 最短路
    洛谷 P3371 【模板】单源最短路径(弱化版) && dijkstra模板
    洛谷 P1387 最大正方形
    洛谷 P2866 [USACO06NOV]糟糕的一天Bad Hair Day
  • 原文地址:https://www.cnblogs.com/chinacodegear/p/1404305.html
Copyright © 2020-2023  润新知