• Delphi版 ArcEngine 根据属性查询要素


    function SearchByPropInfo(pLayer: ILayer; sWhere: string; out iCounts: Integer): IFeatureCursor;
    var
       pQueryFilter: IQueryFilter;
       pFeatureLayer: IFeatureLayer;
       pFeatureSelection: IFeatureSelection;

       pSymbol  : ISymbol;
       pFillSymbol: ISimpleFillSymbol;
       pLineSymbol: ISimpleLineSymbol;
       pMarkerSymbol: ISimpleMarkerSymbol;

       pColor   : IRgbColor;
    begin
       pFeatureLayer := pLayer as IFeatureLayer;

       pQueryFilter := CoQueryFilter.Create as IQueryFilter;
       pQueryFilter.WhereClause := sWhere;

       Result := pFeatureLayer.Search(pQueryFilter, False);

       pColor := CoRgbColor.Create as IRgbColor;
       pColor := getRGB(0, 255, 255, 255);
       //得到图层要素的几何类型
       case pFeatureLayer.FeatureClass.ShapeType of
          esriGeometryPoint, esriGeometryMultipoint:
             begin
                pMarkerSymbol := CoSimpleMarkerSymbol.Create as ISimpleMarkerSymbol;
                pMarkerSymbol.Color := pColor as IColor;
                pMarkerSymbol.Style := esriSMSCircle;

                pSymbol := pMarkerSymbol as ISymbol;
             end;
          esriGeometryPolygon:
             begin
                pFillSymbol := CoSimpleFillSymbol.Create as ISimpleFillSymbol;
                pFillSymbol.Color := pColor as IColor;
                pFillSymbol.Style := esriSFSDiagonalCross;

                pSymbol := pFillSymbol as ISymbol;
             end;
          esriGeometryPolyline:
             begin
                pLineSymbol := CoSimpleLineSymbol.Create as ISimpleLineSymbol;
                pLineSymbol.Color := pColor as IColor;
                pLineSymbol.Style := esriSLSSolid;
                pLineSymbol.Width := 2;
                pSymbol := pLineSymbol as ISymbol;
             end;
       end;

       pFeatureSelection := pLayer as IFeatureSelection;
       pFeatureSelection.SetSelectionSymbol := True;
       pFeatureSelection.SelectionSymbol := pSymbol;
       pFeatureSelection.SelectFeatures(pQueryFilter, esriSelectionResultNew, False);
       //得到被选的要素的个数
       iCounts := pFeatureSelection.SelectionSet.Count;
    end;
  • 相关阅读:
    安卓日志输出-logger
    RecyclerView的使用(3)之加入Header和Footer
    这些年我踩过的坑——Android
    精简点名IAP错误
    Android中BitmapFactory.Options详解
    在Android下通过ExifInterface类操作图片的Exif信息
    android 生成随机数
    JSON入门之二:org.json的基本使用方法
    Android中的各种访问权限Permission含义
    jar命令的用法详解
  • 原文地址:https://www.cnblogs.com/chinacodegear/p/1414745.html
Copyright © 2020-2023  润新知