`
Fangrn
  • 浏览: 818328 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

空间查询及属性文本查询的代码

阅读更多

 

Java代码 复制代码
  1. package  com.esri.adf.web;   
  2.   
  3. import  java.rmi.RemoteException;   
  4. import  java.util.Collection;   
  5. import  java.util.List;   
  6. import  java.util.Map;   
  7. import  com.esri.adf.web.ags.data.AGSLocalMapResource;   
  8. import  com.esri.adf.web.ags.data.AGSMapResource;   
  9. import  com.esri.adf.web.data.WebContext;   
  10. import  com.esri.adf.web.data.geometry.WebExtent;   
  11. import  com.esri.adf.web.data.query.IdentifyCriteria;   
  12. import  com.esri.adf.web.data.query.QueryResult;   
  13. import  com.esri.adf.web.data.query.TextCriteria;   
  14. import  com.esri.adf.web.data.query.WebQuery;   
  15. import  com.esri.adf.web.faces.event.MapEvent;   
  16. import  com.esri.adf.web.faces.event.MapToolAction;   
  17. import  com.esri.arcgis.carto.IFeatureLayer;   
  18. import  com.esri.arcgis.carto.IFeatureSelection;   
  19. import  com.esri.arcgis.carto.IMap;   
  20. import  com.esri.arcgis.carto.IMapServer;   
  21. import  com.esri.arcgis.carto.IMapServerObjects;   
  22. import  com.esri.arcgis.carto.esriSelectionResultEnum;   
  23. import  com.esri.arcgis.geodatabase.Field;   
  24. import  com.esri.arcgis.geodatabase.ICursor;   
  25. import  com.esri.arcgis.geodatabase.IField;   
  26. import  com.esri.arcgis.geodatabase.IFields;   
  27. import  com.esri.arcgis.geodatabase.IRecordSet;   
  28. import  com.esri.arcgis.geodatabase.IRow;   
  29. import  com.esri.arcgis.geodatabase.ISelectionSet;   
  30. import  com.esri.arcgis.geodatabase.SpatialFilter;   
  31. import  com.esri.arcgis.geodatabase.esriSpatialRelEnum;   
  32. import  com.esri.arcgis.geometry.Envelope;   
  33. import  com.esri.arcgis.server.IServerContext;   
  34. import  com.esri.arcgisws.EnvelopeN;   
  35. import  com.esri.arcgisws.EsriSearchOrder;   
  36. import  com.esri.arcgisws.EsriSpatialRelEnum;   
  37. import  com.esri.arcgisws.MapServerPort;   
  38. import  com.esri.arcgisws.Record;   
  39. import  com.esri.arcgisws.RecordSet;   
  40.   
  41. public   class  ADFQuery  implements  MapToolAction {   
  42.        
  43.      private   static   final   long  serialVersionUID = 713600076584099585L;   
  44.     WebContext context =  null ;   
  45.      int  c =  0 ;   
  46.   
  47.      /*  
  48.      * WebQuery  
  49.      */   
  50.      private   void  test1(WebExtent extent) {   
  51.         AGSMapResource res = (AGSMapResource) context.getResources().get( "ags0" );   
  52.         IdentifyCriteria ic =  new  IdentifyCriteria(extent);   
  53.         WebQuery query = (WebQuery) context.getAttribute( "query" );   
  54.         List layer = context.getWebQuery().getQueryLayers();   
  55.         List results = query.query(ic, layer);   
  56.          for  ( int  i =  0 ; i < results.size(); i++) {   
  57.             QueryResult result = (QueryResult) results.get(i);   
  58.   
  59.             result.highlight();   
  60.             Map map = result.getDetails();   
  61.             map.size();   
  62.             Collection col = map.values();   
  63.             Object[] obj = col.toArray();   
  64.              for  ( int  j =  0 ; j < obj.length; j++) {   
  65.                 System.out.println(obj[j]);   
  66.             }   
  67.         }   
  68.     }   
  69.   
  70.      /*  
  71.      * arcgisws.SpatialFilter  
  72.      */   
  73.      private   void  test2(WebExtent extent) {   
  74.         AGSMapResource res = (AGSMapResource) context.getResources().get( "ags0" );   
  75.         MapServerPort mapServer = res.getMapServer();   
  76.         EnvelopeN env =  new  EnvelopeN(extent.getMinX(), extent.getMinY(),   
  77.                 extent.getMaxX(), extent.getMaxY(),  null null null null ,   
  78.                  null );   
  79.         com.esri.arcgisws.SpatialFilter filter =  new  com.esri.arcgisws.SpatialFilter();   
  80.         filter.setSpatialRel(EsriSpatialRelEnum.esriSpatialRelIntersects);   
  81.         filter.setWhereClause( "" );   
  82.         filter.setSearchOrder(EsriSearchOrder.esriSearchOrderSpatial);   
  83.         filter.setSpatialRelDescription( "" );   
  84.         filter.setGeometryFieldName( "" );   
  85.         filter.setFilterGeometry(env);   
  86.          int  layerId =  1 ;   
  87.          try  {   
  88.             RecordSet rs = mapServer.queryFeatureData(mapServer.getDefaultMapName(), layerId, filter);   
  89.             Record[] rd = rs.getRecords();   
  90.              for  ( int  i =  0 ; i < rd.length; i++) {   
  91.                 Object[] obj = rd[i].getValues();   
  92.                  for  ( int  j =  0 ; j < obj.length; j++) {   
  93.                     String s = obj[j].toString();   
  94.                 }   
  95.             }   
  96.         }  catch  (RemoteException e) {   
  97.             e.printStackTrace();   
  98.         }   
  99.     }   
  100.   
  101.      /*  
  102.      * geodatabase.SpatialFilter  
  103.      */   
  104.      private   void  test3(WebExtent extent){   
  105.          try  {   
  106.             AGSLocalMapResource res = (AGSLocalMapResource) context.getResources().get( "ags0" );   
  107.             IMapServer mapServer = res.getLocalMapServer();   
  108.             IServerContext sc = res.getServerContext();   
  109.             Envelope env = (Envelope) sc.createObject(Envelope.getClsid());   
  110.             env.putCoords(extent.getMinX(), extent.getMinY(), extent.getMaxX(),   
  111.                     extent.getMaxY());   
  112.             com.esri.arcgis.geodatabase.SpatialFilter filter = (SpatialFilter) sc   
  113.                     .createObject(com.esri.arcgis.geodatabase.SpatialFilter   
  114.                             .getClsid());   
  115.             filter.setGeometryByRef(env);   
  116.             filter.setSpatialRel(esriSpatialRelEnum.esriSpatialRelIndexIntersects);   
  117.             System.out.println( "---1--- " );   
  118.              int  layerId =  1 ;   
  119.             IRecordSet rs = mapServer.queryFeatureData(mapServer.getDefaultMapName(), layerId, filter);   
  120.             IFields fds = rs.getFields();   
  121.             System.out.println( "---cnt2--- "  + fds.getFieldCount());   
  122.              for  ( int  i =  0 ; i < fds.getFieldCount(); i++) {   
  123.                 IField fd = (Field) fds.getField(i);   
  124.                 System.out.println(fd.getName());   
  125.             }   
  126.             ICursor cursor = rs.getCursor( true );   
  127.             IRow row = cursor.nextRow();   
  128.              while  (row !=  null ) {   
  129.                 System.out.println( "------ "  + row.getValue( 4 ));   
  130.                 row = cursor.nextRow();   
  131.             }   
  132.         }  catch  (Exception e) {   
  133.             e.printStackTrace();   
  134.         }   
  135.     }   
  136.   
  137.      /*  
  138.      * IFeatureSelection  
  139.      */   
  140.      private   void  test4(WebExtent extent){   
  141.         AGSLocalMapResource res = (AGSLocalMapResource) context.getResources().get( "ags0" );   
  142.         IServerContext sc = res.getServerContext();   
  143.         IMapServerObjects mso = (IMapServerObjects) res.getLocalMapServer();   
  144.         IMap map;   
  145.          try  {   
  146.             map = mso.getMap(res.getLocalMapServer().getDefaultMapName());   
  147.             IFeatureLayer fl = (IFeatureLayer) map.getLayer( 1 );   
  148.             Envelope env = (Envelope) sc.createObject(Envelope.getClsid());   
  149.             env.putCoords(extent.getMinX(), extent.getMinY(), extent.getMaxX(),   
  150.                     extent.getMaxY());   
  151.             com.esri.arcgis.geodatabase.SpatialFilter filter = (SpatialFilter) sc   
  152.                     .createObject(com.esri.arcgis.geodatabase.SpatialFilter   
  153.                             .getClsid());   
  154.             filter.setGeometryByRef(env);   
  155.             filter.setSpatialRel(esriSpatialRelEnum.esriSpatialRelIndexIntersects);   
  156.   
  157.             IFeatureSelection fs = (IFeatureSelection) fl;   
  158.             fs.selectFeatures(filter,esriSelectionResultEnum.esriSelectionResultNew,  false );   
  159.             ISelectionSet ss = fs.getSelectionSet();   
  160.         }  catch  (Exception e) {   
  161.             e.printStackTrace();   
  162.         }   
  163.     }   
  164.   
  165.      /*  
  166.      * TextCriteria  
  167.      */   
  168.      private   void  test5() {   
  169.         AGSMapResource res = (AGSMapResource) context.getResources().get( "ags0" );   
  170.         TextCriteria tc =  new  TextCriteria();   
  171.         tc.setSearchText( "北京市" );   
  172.         WebQuery query = (WebQuery) context.getAttribute( "query" );   
  173.         List layer = context.getWebQuery().getQueryLayers();   
  174.         List results = query.query(tc, layer);   
  175.          for  ( int  i =  0 ; i < results.size(); i++) {   
  176.             QueryResult result = (QueryResult) results.get(i);   
  177.             result.highlight();   
  178.             Map map = result.getDetails();   
  179.             map.size();   
  180.             Collection col = map.values();   
  181.             Object[] obj = col.toArray();   
  182.              for  ( int  j =  0 ; j < obj.length; j++) {   
  183.                 System.out.println(obj[j]);   
  184.             }   
  185.         }   
  186.     }   
  187.   
  188.      public   void  execute(MapEvent arg0)  throws  Exception {   
  189.         context = arg0.getWebContext();   
  190.         WebExtent ex = (WebExtent) arg0.getWebGeometry();   
  191.         ex = (WebExtent) ex.toMapGeometry(arg0.getWebContext().getWebMap());   
  192.         test5();   
  193.         System.out.println( "---ok---" );   
  194.     }   
  195.        
  196. }  
package com.esri.adf.web;

import java.rmi.RemoteException;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import com.esri.adf.web.ags.data.AGSLocalMapResource;
import com.esri.adf.web.ags.data.AGSMapResource;
import com.esri.adf.web.data.WebContext;
import com.esri.adf.web.data.geometry.WebExtent;
import com.esri.adf.web.data.query.IdentifyCriteria;
import com.esri.adf.web.data.query.QueryResult;
import com.esri.adf.web.data.query.TextCriteria;
import com.esri.adf.web.data.query.WebQuery;
import com.esri.adf.web.faces.event.MapEvent;
import com.esri.adf.web.faces.event.MapToolAction;
import com.esri.arcgis.carto.IFeatureLayer;
import com.esri.arcgis.carto.IFeatureSelection;
import com.esri.arcgis.carto.IMap;
import com.esri.arcgis.carto.IMapServer;
import com.esri.arcgis.carto.IMapServerObjects;
import com.esri.arcgis.carto.esriSelectionResultEnum;
import com.esri.arcgis.geodatabase.Field;
import com.esri.arcgis.geodatabase.ICursor;
import com.esri.arcgis.geodatabase.IField;
import com.esri.arcgis.geodatabase.IFields;
import com.esri.arcgis.geodatabase.IRecordSet;
import com.esri.arcgis.geodatabase.IRow;
import com.esri.arcgis.geodatabase.ISelectionSet;
import com.esri.arcgis.geodatabase.SpatialFilter;
import com.esri.arcgis.geodatabase.esriSpatialRelEnum;
import com.esri.arcgis.geometry.Envelope;
import com.esri.arcgis.server.IServerContext;
import com.esri.arcgisws.EnvelopeN;
import com.esri.arcgisws.EsriSearchOrder;
import com.esri.arcgisws.EsriSpatialRelEnum;
import com.esri.arcgisws.MapServerPort;
import com.esri.arcgisws.Record;
import com.esri.arcgisws.RecordSet;

public class ADFQuery implements MapToolAction {
	
	private static final long serialVersionUID = 713600076584099585L;
	WebContext context = null;
	int c = 0;

	/*
	 * WebQuery
	 */
	private void test1(WebExtent extent) {
		AGSMapResource res = (AGSMapResource) context.getResources().get("ags0");
		IdentifyCriteria ic = new IdentifyCriteria(extent);
		WebQuery query = (WebQuery) context.getAttribute("query");
		List layer = context.getWebQuery().getQueryLayers();
		List results = query.query(ic, layer);
		for (int i = 0; i < results.size(); i++) {
			QueryResult result = (QueryResult) results.get(i);

			result.highlight();
			Map map = result.getDetails();
			map.size();
			Collection col = map.values();
			Object[] obj = col.toArray();
			for (int j = 0; j < obj.length; j++) {
				System.out.println(obj[j]);
			}
		}
	}

	/*
	 * arcgisws.SpatialFilter
	 */
	private void test2(WebExtent extent) {
		AGSMapResource res = (AGSMapResource) context.getResources().get("ags0");
		MapServerPort mapServer = res.getMapServer();
		EnvelopeN env = new EnvelopeN(extent.getMinX(), extent.getMinY(),
				extent.getMaxX(), extent.getMaxY(), null, null, null, null,
				null);
		com.esri.arcgisws.SpatialFilter filter = new com.esri.arcgisws.SpatialFilter();
		filter.setSpatialRel(EsriSpatialRelEnum.esriSpatialRelIntersects);
		filter.setWhereClause("");
		filter.setSearchOrder(EsriSearchOrder.esriSearchOrderSpatial);
		filter.setSpatialRelDescription("");
		filter.setGeometryFieldName("");
		filter.setFilterGeometry(env);
		int layerId = 1;
		try {
			RecordSet rs = mapServer.queryFeatureData(mapServer.getDefaultMapName(), layerId, filter);
			Record[] rd = rs.getRecords();
			for (int i = 0; i < rd.length; i++) {
				Object[] obj = rd[i].getValues();
				for (int j = 0; j < obj.length; j++) {
					String s = obj[j].toString();
				}
			}
		} catch (RemoteException e) {
			e.printStackTrace();
		}
	}

	/*
	 * geodatabase.SpatialFilter
	 */
	private void test3(WebExtent extent){
		try {
			AGSLocalMapResource res = (AGSLocalMapResource) context.getResources().get("ags0");
			IMapServer mapServer = res.getLocalMapServer();
			IServerContext sc = res.getServerContext();
			Envelope env = (Envelope) sc.createObject(Envelope.getClsid());
			env.putCoords(extent.getMinX(), extent.getMinY(), extent.getMaxX(),
					extent.getMaxY());
			com.esri.arcgis.geodatabase.SpatialFilter filter = (SpatialFilter) sc
					.createObject(com.esri.arcgis.geodatabase.SpatialFilter
							.getClsid());
			filter.setGeometryByRef(env);
			filter.setSpatialRel(esriSpatialRelEnum.esriSpatialRelIndexIntersects);
			System.out.println("---1--- ");
			int layerId = 1;
			IRecordSet rs = mapServer.queryFeatureData(mapServer.getDefaultMapName(), layerId, filter);
			IFields fds = rs.getFields();
			System.out.println("---cnt2--- " + fds.getFieldCount());
			for (int i = 0; i < fds.getFieldCount(); i++) {
				IField fd = (Field) fds.getField(i);
				System.out.println(fd.getName());
			}
			ICursor cursor = rs.getCursor(true);
			IRow row = cursor.nextRow();
			while (row != null) {
				System.out.println("------ " + row.getValue(4));
				row = cursor.nextRow();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/*
	 * IFeatureSelection
	 */
	private void test4(WebExtent extent){
		AGSLocalMapResource res = (AGSLocalMapResource) context.getResources().get("ags0");
		IServerContext sc = res.getServerContext();
		IMapServerObjects mso = (IMapServerObjects) res.getLocalMapServer();
		IMap map;
		try {
			map = mso.getMap(res.getLocalMapServer().getDefaultMapName());
			IFeatureLayer fl = (IFeatureLayer) map.getLayer(1);
			Envelope env = (Envelope) sc.createObject(Envelope.getClsid());
			env.putCoords(extent.getMinX(), extent.getMinY(), extent.getMaxX(),
					extent.getMaxY());
			com.esri.arcgis.geodatabase.SpatialFilter filter = (SpatialFilter) sc
					.createObject(com.esri.arcgis.geodatabase.SpatialFilter
							.getClsid());
			filter.setGeometryByRef(env);
			filter.setSpatialRel(esriSpatialRelEnum.esriSpatialRelIndexIntersects);

			IFeatureSelection fs = (IFeatureSelection) fl;
			fs.selectFeatures(filter,esriSelectionResultEnum.esriSelectionResultNew, false);
			ISelectionSet ss = fs.getSelectionSet();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/*
	 * TextCriteria
	 */
	private void test5() {
		AGSMapResource res = (AGSMapResource) context.getResources().get("ags0");
		TextCriteria tc = new TextCriteria();
		tc.setSearchText("北京市");
		WebQuery query = (WebQuery) context.getAttribute("query");
		List layer = context.getWebQuery().getQueryLayers();
		List results = query.query(tc, layer);
		for (int i = 0; i < results.size(); i++) {
			QueryResult result = (QueryResult) results.get(i);
			result.highlight();
			Map map = result.getDetails();
			map.size();
			Collection col = map.values();
			Object[] obj = col.toArray();
			for (int j = 0; j < obj.length; j++) {
				System.out.println(obj[j]);
			}
		}
	}

	public void execute(MapEvent arg0) throws Exception {
		context = arg0.getWebContext();
		WebExtent ex = (WebExtent) arg0.getWebGeometry();
		ex = (WebExtent) ex.toMapGeometry(arg0.getWebContext().getWebMap());
		test5();
		System.out.println("---ok---");
	}
	
}

内容摘要
使用ArcGIS Server java ADF开发,如果需要空间关系查询,可以有两种办法,
一种是通过com.esri.arcgisws.SpatialFilter这个包来实现,是一种SOAP的方式,
另外一种是使用传统的AO的方式实现:com.esri.arcgis.geodatabase.SpatialFilter注意两个包的命名一样,很容易混淆。
过程描述
第一种方式的代码如下:
 
Java代码 复制代码
  1. SpatialFilter filter =  new  SpatialFilter();    
  2.   String mapName=functionality.getMapDescription().getName();   
  3.      
  4.    this .getWebContext().getWebGraphics().clearGraphics();   
  5.   WebPoint wPoint=(WebPoint)event.getWebGeometry().toMapGeometry(event.getWebContext().getWebMap());   
  6.      
  7.      
  8.    Geometry geom = AGSUtil.toAGSGeometry(wPoint);   
  9.    com.esri.arcgisws.PointN pontN = (com.esri.arcgisws.PointN)geom;   
  10.    Point aoPont = (Point)AGSUtil.createArcObjectFromStub(pontN, serverContext);   
  11.       
  12.    filter.setFilterGeometry(geom);    
  13.    filter.setSpatialRel(com.esri.arcgisws.EsriSpatialRelEnum.esriSpatialRelRelation);    
  14.    filter.setWhereClause( "" );    
  15.    filter.setSearchOrder(com.esri.arcgisws.EsriSearchOrder.esriSearchOrderSpatial);    
  16.    filter.setGeometryFieldName( "" );    
  17.    filter.setSpatialReferenceFieldName( "" );    
  18.    filter.setSpatialRelDescription(spatialType);    
  19.       
  20.    MapLayerInfo layerInfos[] = functionality.getLayerInfos();    
  21.     for ( int  layerIndex= 0 ;layerIndex<layerInfos.length;layerIndex++){   
  22.     MapLayerInfo mapLayerInfo = (MapLayerInfo) layerInfos[layerIndex];    
  23.     Field[] fields=mapLayerInfo.getFields().getFieldArray();   
  24.     RecordSet recordSet = mapServer.queryFeatureData(mapName, layerIndex, filter);    
  25.     ...   
  26.     }  
SpatialFilter filter = new SpatialFilter(); 
  String mapName=functionality.getMapDescription().getName();
  
  this.getWebContext().getWebGraphics().clearGraphics();
  WebPoint wPoint=(WebPoint)event.getWebGeometry().toMapGeometry(event.getWebContext().getWebMap());
  
  
   Geometry geom = AGSUtil.toAGSGeometry(wPoint);
   com.esri.arcgisws.PointN pontN = (com.esri.arcgisws.PointN)geom;
   Point aoPont = (Point)AGSUtil.createArcObjectFromStub(pontN, serverContext);
   
   filter.setFilterGeometry(geom); 
   filter.setSpatialRel(com.esri.arcgisws.EsriSpatialRelEnum.esriSpatialRelRelation); 
   filter.setWhereClause(""); 
   filter.setSearchOrder(com.esri.arcgisws.EsriSearchOrder.esriSearchOrderSpatial); 
   filter.setGeometryFieldName(""); 
   filter.setSpatialReferenceFieldName(""); 
   filter.setSpatialRelDescription(spatialType); 
   
   MapLayerInfo layerInfos[] = functionality.getLayerInfos(); 
   for(int layerIndex=0;layerIndex<layerInfos.length;layerIndex++){
    MapLayerInfo mapLayerInfo = (MapLayerInfo) layerInfos[layerIndex]; 
    Field[] fields=mapLayerInfo.getFields().getFieldArray();
    RecordSet recordSet = mapServer.queryFeatureData(mapName, layerIndex, filter); 
    ...
    }

第二种方式代码如下:

 
Java代码 复制代码
  1. SpatialFilter spatialFilter= (SpatialFilter)serverContext.createObject(SpatialFilter.getClsid());   
  2.      
  3.   WebPolygon wPgon=(WebPolygon)event.getWebGeometry().toMapGeometry(event.getWebContext().getWebMap());   
  4.   GraphicElement ge =  new  GraphicElement();   
  5.   ge.setGeometry(wPgon);   
  6.    ge.setSymbol( this .getWebContext().getWebQuery().getPolygonGraphicSymbol());   
  7.     this .getWebContext().getWebGraphics().addGraphics(ge);   
  8.      
  9.    Geometry geom = AGSUtil.toAGSGeometry(wPgon);   
  10.    com.esri.arcgisws.PolygonN pgonN = (com.esri.arcgisws.PolygonN)geom;   
  11.    Polygon aoPgon = (Polygon)AGSUtil.createArcObjectFromStub(pgonN, serverContext);   
  12.       
  13.     for ( int  layerIndex= 0 ;layerIndex<pMap.getLayerCount();layerIndex++){   
  14.     ILayer layer=pMap.getLayer(layerIndex);   
  15.     FeatureLayer featureLayer=(FeatureLayer)layer;   
  16.     IFeatureClass featureClass=featureLayer.getFeatureClass();   
  17.     spatialFilter.setGeometryByRef(aoPgon);   
  18.     spatialFilter.setSpatialRel(esriSpatialRelEnum.esriSpatialRelWithin);   
  19.     spatialFilter.setGeometryField(featureClass.getShapeFieldName());   
  20.     IFeatureCursor featureCursor = featureClass.search(spatialFilter,  true );   
  21.     IFeature feature = featureCursor.nextFeature();   
  22.     ...   
  23.     }  
SpatialFilter spatialFilter= (SpatialFilter)serverContext.createObject(SpatialFilter.getClsid());
  
  WebPolygon wPgon=(WebPolygon)event.getWebGeometry().toMapGeometry(event.getWebContext().getWebMap());
  GraphicElement ge = new GraphicElement();
  ge.setGeometry(wPgon);
   ge.setSymbol(this.getWebContext().getWebQuery().getPolygonGraphicSymbol());
   this.getWebContext().getWebGraphics().addGraphics(ge);
  
   Geometry geom = AGSUtil.toAGSGeometry(wPgon);
   com.esri.arcgisws.PolygonN pgonN = (com.esri.arcgisws.PolygonN)geom;
   Polygon aoPgon = (Polygon)AGSUtil.createArcObjectFromStub(pgonN, serverContext);
   
   for(int layerIndex=0;layerIndex<pMap.getLayerCount();layerIndex++){
    ILayer layer=pMap.getLayer(layerIndex);
    FeatureLayer featureLayer=(FeatureLayer)layer;
    IFeatureClass featureClass=featureLayer.getFeatureClass();
    spatialFilter.setGeometryByRef(aoPgon);
    spatialFilter.setSpatialRel(esriSpatialRelEnum.esriSpatialRelWithin);
    spatialFilter.setGeometryField(featureClass.getShapeFieldName());
    IFeatureCursor featureCursor = featureClass.search(spatialFilter, true);
    IFeature feature = featureCursor.nextFeature();
    ...
    }

在一般的情况下,建议使用第一种方式空间查询





  • 大小: 78.2 KB
分享到:
评论

相关推荐

    C# 文本朗读代码

    在上述代码中,我们首先导入了System.Speech.Synthesis命名空间,然后创建了一个`SpeechSynthesizer`对象。通过`Speak`方法,我们可以将字符串转换为语音输出。还可以通过`Rate`和`Volume`属性调整朗读速度和音量。 ...

    c#文本编辑器源代码

    在本文中,我们将深入探讨基于C#编程语言构建的文本编辑器源代码。C#是一种由微软开发的面向对象的编程语言,广泛用于Windows应用程序、游戏开发以及Web服务。使用C#编写文本编辑器,我们可以利用.NET框架的强大功能...

    QQ非主流空间代码模板

    这些代码用于改变QQ空间的布局、颜色、字体、动态效果等方面,使用户能够摆脱默认设置,打造出独特且具有个性化的网络空间。 在非主流文化中,QQ空间的装饰往往追求与众不同,强调个性化和视觉冲击力,因此这类代码...

    粗糙集属性约简代码

    6. **应用领域**:粗糙集属性约简在多个领域都有应用,如决策系统、医学诊断、金融风险评估、文本分类、推荐系统等。通过约简,可以降低数据的复杂性,提高模型的可解释性,从而更有效地解决问题。 7. **评价指标**...

    arcgis engine空间查询

    在提供的压缩包“空间查询统计”中,很可能包含了演示如何执行上述空间查询的代码实例,包括但不限于统计在特定区域内的对象数量、计算特定类型特征的汇总属性等。这些示例代码将帮助初学者理解如何在实际项目中集成...

    Arcgis Engine空间查询统计

    在提供的“chp04”文件中,可能包含了关于这一主题的详细教程或代码示例,帮助开发者更好地理解和应用ArcGIS Engine进行空间查询统计。通过深入学习和实践,开发者能够熟练掌握这些技能,创建出满足各种需求的GIS...

    静态个人空间代码

    【静态个人空间代码】是一个基于CSS和HTML(主要使用了Div元素)构建的网页模板,设计用于创建个性化、静态的在线个人展示空间。这个模板以其简洁性和易理解性为特点,适合初学者学习和开发者快速搭建页面。接下来,...

    世界大学城空间制作代码

    根据给定的信息“世界大学城空间制作代码”,我们可以推断出这部分内容主要涉及网页设计与制作方面的知识。接下来,我们将详细解析这段代码所包含的主要知识点。 ### 一、HTML元素与属性 #### 1. `&lt;b&gt;` 标签 这个...

    QQ空间代码高亮显示源码

    QQ空间代码高亮显示源码主要涉及到网页编程和前端开发技术,用于在QQ空间中展示代码片段时,增强代码的可读性和美观性。代码高亮通常包括语法着色、行号显示、缩进引导、代码折叠等功能。下面将详细阐述相关知识点:...

    qq空间代码使用指南

    本文将详细介绍如何通过代码在QQ空间中添加Flash动画、音乐及其他元素,帮助你打造独一无二的个性化空间。 #### Flash动画的嵌入与应用 Flash动画曾在网络世界中占据一席之地,尤其是在QQ空间中,它成为了展示个性...

    实现文件属性对话框 vb源代码

    在这个项目中,开发者可能使用了各种控件来构建对话框,如Label(用于显示文本)、TextBox(用于输入或显示文件属性)、CommandButton(用于执行操作)等。了解每个控件的属性和方法是理解代码的基础。 2. **文件I/...

    基于“中文新闻信息分类与代码”文本分类

    在实际应用中,文本分类即是在给定的分类体系下,根据文档的内容或属性,将其归入一个或多个类别的过程。随着信息存储和通信技术的发展,信息量剧增,文本分类技术可以帮助用户过滤和分类大量文档,提高信息利用率。...

    百度hi空间模块代码

    这段代码片段虽然是从“百度hi空间模块代码”这一主题中摘取的,但它涵盖了CSS中的多个关键领域:背景处理、滚动条定制、字体与链接行为、特殊元素样式,以及布局和导航标签的设计。这些知识对于任何希望深入了解...

    CSS代码属性大全.txt

    ### CSS代码属性大全:深入解析CSS主要属性 在网页设计与开发领域,CSS(层叠样式表)扮演着至关重要的角色,它负责控制HTML元素的布局、颜色、字体等视觉表现,使网页更加美观和易读。下面,我们将对《CSS代码属性...

    VB+MapX.rar_VB+MapX_gis查询系统_mapx 查询_属性查询系统_系统 vb

    在这个“VB+MapX_gis查询系统”中,我们看到的是一个用于美国城市查询的小型GIS应用,具备基本的地图显示以及目标和属性查询的能力。 1. **Visual Basic (VB)**:VB是Microsoft开发的一种面向对象的编程语言,适用...

    C#文本编辑器代码实现了基本功能

    在C#中,我们可以使用`System.Windows.Forms`命名空间来构建图形用户界面(GUI),如`TextBox`控件用于显示和编辑文本,`MenuStrip`控件用于创建菜单栏,`OpenFileDialog`和`SaveFileDialog`用于打开和保存文件。...

    有MDI功能的文本编辑器_简单C#代码的文本编辑器_fooduaj_

    【标题】"有MDI功能的文本编辑器_简单C#代码的文本编辑器_fooduaj_" 提供了一个关于创建一个基本的文本编辑器的项目,这个编辑器使用了C#编程语言,并集成了MDI(多文档界面)功能。在C#中,MDI允许用户在一个父窗口...

    文本编辑器C#代码及应用程序

    在VS 2008中编写C#代码,开发者可以利用其强大的集成开发环境(IDE)进行代码编写、调试和测试,极大地提高了开发效率。 该文本编辑器实现了基本的文本操作功能,如文本的读入、编辑和保存。在读入方面,编辑器通过...

    最新HTML代码属性对照表

    - **`&lt;listing&gt;`**:以较小的等宽字体显示文本,适合显示列表或代码。 - **`&lt;font&gt;`**:定义字体颜色、大小等属性。虽然 `&lt;font&gt;` 标签已被废弃,但在一些旧文档中仍然可见。 - **`color`**:设置字体颜色。 - **`...

    android 查询工具源代码

    【标题】"Android 查询工具源代码"涉及到的是一个Android应用程序的开发,主要功能包括查询电话号码的归属地以及IP地址的查询。这个工具是开发者为了方便用户获取信息而设计的,可能是一个集成在手机上的小型实用...

Global site tag (gtag.js) - Google Analytics