How do I find attribute information from a layer at the location a user clicks on the map without using the Identify operation?

542
1
08-04-2017 02:02 PM
KaitherHoliway
New Contributor

The following code is not working:

0 Kudos
1 Reply
nita14
by
Occasional Contributor III

Hi,

Check this snippet as a reference:

@Override

    protected List<ArcGISFeature> doInBackground(String... string) {

        publishProgress(0);

        List<ArcGISFeature> listFeatures = new ArrayList<>();

        try {



            QueryParameters query = new QueryParameters();

            query.setReturnGeometry(true);

            query.setWhereClause("Name <>" + "'" + DisplayMap.getSharedPreferences().getString(Settings.USER_NAME, "") +"'");

            Polygon ply = GeometryEngine.buffer(usrLocation, 600);

            query.setGeometry(ply);

            query.setSpatialRelationship(QueryParameters.SpatialRelationship.INTERSECTS);

            query.setMaxFeatures(30);

            ListenableFuture<FeatureQueryResult> future = mServiceFeatureTable.queryFeaturesAsync(query);

            FeatureQueryResult result = future.get();



            Iterator<Feature> iter = result.iterator();

            while(iter.hasNext()){

                ArcGISFeature f = (ArcGISFeature) iter.next();

                f.loadAsync();

                if(!f.getAttributes().get("Name").equals(DisplayMap.getSharedPreferences().getString(Settings.USER_NAME, ""))){

                    listFeatures.add(f);

                }

            }



        } catch (InterruptedException | ExecutionException e) {

            e.printStackTrace();

        } finally {

            return listFeatures;

        }

    }

Hope this helps

0 Kudos