@Override
public void sortDataA(final String name , final int code) {
final String sql="BZDM LIKE '%"+name+"%' or DMLB LIKE '%"+name+"%'";
mMapList=new ArrayList<>();
mGeometries=new ArrayList<>();
if (mFeatureLayers!=null&&mFeatureLayers.size()>0){
for (FeatureLayer featureLayer:mFeatureLayers){
mMainView.getMap().getOperationalLayers().remove(featureLayer);
}
mFeatureLayers.clear();
}
final Geodatabase geodatabase=new Geodatabase(mSharedPreferences.getString("shp","")+"zhongshan.geodatabase");
geodatabase.loadAsync();
geodatabase.addDoneLoadingListener(new Runnable() {
@Override
public void run() {
QueryParameters queryParameters=new QueryParameters();
queryParameters.setWhereClause(sql);
List<GeodatabaseFeatureTable> geodatabaseFeatureTables=geodatabase.getGeodatabaseFeatureTables();
if (geodatabaseFeatureTables==null||geodatabaseFeatureTables.size()==0){
return;
}
FeatureLayer featureLayer=new FeatureLayer(geodatabaseFeatureTables.get(code));
mFeatureLayers.add(featureLayer);
FeatureTable mTable = featureLayer.getFeatureTable();//得到查询属性表
final ListenableFuture<FeatureQueryResult> featureQueryResult
= mTable.queryFeaturesAsync(queryParameters);
featureQueryResult.addDoneListener(new Runnable() {
@Override
public void run() {
try {
FeatureQueryResult features =featureQueryResult.get();
for (Object element : features) {
if (element instanceof Feature) {
Feature mFeatureGrafic = (Feature) element;
Map<String, Object> mQuerryString = mFeatureGrafic.getAttributes();
int b=0;
for (int a=0;a<mMapList.size();a++){
if (mMapList.get(a).get("BZDM").equals(mQuerryString.get("BZDM"))){
++b;
}
}
if (b==0){
mMapList.add(mQuerryString);
mGeometries.add(mFeatureGrafic.getGeometry());
}
}
}
if (mGeometries!=null&&mGeometries.size()>0){
mMainView.setViewpointCenterAsync(mGeometries.get(0).getExtent().getCenter());
}
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
});
mMainView.getMap().getOperationalLayers().add(featureLayer);
}
});
}