HOW TO
Instructions provided describe how to buffer and select features from a single layer in the Java Connector. To retrieve a list of features from the same layer being buffered requires an additional step that is not required when the buffer layer and selection layer are different. An example of this type of query is: How many cities are within 8 miles from the city San Jose?
Code:
map.initMap(connection,0,false,false,true,false);
Code:
FeatureLayer fLayer = (FeatureLayer)map.getLayers().item(5); //buffer layer
Code:
FeatureLayer tLayer = new FeatureLayer(fLayer.getID(),fLayer.getMaxScale(),fLayer.getMinScale());
tLayer.setRecordset(fLayer.getRecordset()); //tLayer is the target layer
Code:
Filter filter = new Filter();
filter.setWhereExpression("NAME='San Jose'");
Buffer buffer=new Buffer();
buffer.setBufferUnits(Buffer.MILES);
buffer.setBufferDistance(8);
buffer.setPerformBuffer(true);
buffer.setBufferRegionSymbol(ps);
buffer.setBufferSelectionSymbol(ms);
buffer.setBufferTargetLayer(tLayer);
filter.setBufferObject(buffer);
fLayer.setFilterObject(filter);
Code:
FeatureLayer resultLayer=null;
Recordset recordset = null;
for (int i=0;i<map.getLayers().getCount();i++){
if (map.getLayers().item(i).getName().equalsIgnoreCase("bufferLayer")){
resultLayer = (FeatureLayer)map.getLayers().item(i);
break;
}
}
Article ID:000006681
Get help from ArcGIS experts
Download the Esri Support App