Newer
Older
dxcgt / app / src / main / java / com / smartdot / cgt / util / MapUtil.java
wangxitong on 6 Apr 2021 2 KB first commit
package com.smartdot.cgt.util;

import com.esri.core.geometry.Envelope;
import com.esri.core.geometry.Geometry;
import com.esri.core.geometry.SpatialReference;
import com.esri.core.map.FeatureSet;
import com.esri.core.tasks.SpatialRelationship;
import com.esri.core.tasks.ags.identify.IdentifyParameters;
import com.esri.core.tasks.ags.identify.IdentifyResult;
import com.esri.core.tasks.ags.identify.IdentifyTask;
import com.esri.core.tasks.ags.query.Query;
import com.esri.core.tasks.ags.query.QueryTask;

public class MapUtil {

//    public static FeatureSet executeQueryBySql(String queryUrl, String whereCause, Boolean returnGeometry,
//            String[] outFields, SpatialReference outSpatialReference) throws Exception {
//        FeatureSet result = null;
//
//        Query query = new Query();
//        query.setReturnGeometry(returnGeometry);
//        query.setWhere(whereCause);
//        query.setOutSpatialReference(outSpatialReference);
//        if (outFields != null && outFields.length > 0) {
//            query.setOutFields(outFields);
//        }
//
//        QueryTask queryTask = new QueryTask(queryUrl);
//        result = queryTask.execute(query);
//
//        return result;
//    }

    public static FeatureSet executeQueryByGeometry(String queryUrl, Geometry geometry, String whereCause,
            Boolean returnGeometry, String[] outFields, SpatialRelationship spatialRelationship,
            SpatialReference outSpatialReference) throws Exception {
        FeatureSet result = null;

        Query query = new Query();
        query.setGeometry(geometry);
        query.setReturnGeometry(returnGeometry);
        query.setWhere(whereCause);
        query.setOutSpatialReference(outSpatialReference);
        query.setSpatialRelationship(spatialRelationship);
        if (outFields != null && outFields.length > 0) {
            query.setOutFields(outFields);
        }

        QueryTask queryTask = new QueryTask(queryUrl);
        result = queryTask.execute(query);

        return result;
    }

    public static IdentifyResult[] identify(String layerServiceUrl, int[] layerIds, Geometry geometry,
            Boolean returnGeometry, Number tolerance, Envelope mapExtent, int mapWidth, int mapHeight, int dpi,
            SpatialReference outSpatialReference) throws Exception {
        IdentifyParameters identifyParameters = new IdentifyParameters(geometry, mapExtent, outSpatialReference,
            layerIds, mapWidth, mapHeight, dpi, returnGeometry);
        identifyParameters.setLayerMode(IdentifyParameters.ALL_LAYERS);
        IdentifyTask identifyTask = new IdentifyTask(layerServiceUrl);
        IdentifyResult[] result = identifyTask.execute(identifyParameters);
        return result;
    }
}