1 votos

Uso de la herramienta Intersect Java

Estoy intentando pasar clases de características polilínea y polígono No estoy seguro de cómo pasar la lista de características al objeto Intersect:

He probado este método:

ArrayList<Object> featuresList = new ArrayList<>();

        FeatureClass polygonfeatureClass = openFeatureClassFromShapeFile(srcShapefilePath, "polygon.shp");
        FeatureClass polylinefeatureClass = openFeatureClassFromShapeFile(srcShapefilePath, "lines.shp");

        Intersect newintersect = new Intersect();
        featuresList.add(polylinefeatureClass);
        featuresList.add(polygonfeatureClass);

        gp = new GeoProcessor();
        gp.setOverwriteOutput(true);
        gp.setTemporaryMapLayers(false);
        gp.setAddOutputsToMap(false);
        gp.setEnvironmentValue("workspace", srcShapefilePath);

newintersect.setInFeatures(featuresList)


me aparece este error :

Elemento no encontrado en esta colección. en 'DAO.Fields'

com.esri.arcgis.geoprocessing.GeoProcessor.execute(Fuente desconocida)

También he intentado pasar las rutas de los archivos shape como cadena>. Obtuve el mismo error entonces probé este método: después de crear 2 clases de características en gdb

String in1=srcShapefilePath + File.separator + "layers.gdb" + File.separator +            "lines";

       String in2=srcShapefilePath + File.separator +  "layers.gdb" + File.separator + "polygon";
       newintersect.setInFeatures(in1 + ";" + in2);
       gp.execute(newintersect, null);

y tengo el mismo error

AutomationException: 0x80004005 - Error no especificado at com.esri.arcgis.geoprocessing.GeoProcessor.execute(Fuente desconocida) at com.esri.arcgis.geoprocessing.GeoProcessor.execute(Fuente desconocida)

¿Alguna idea?

1voto

mattlandis Puntos 132

@mashhour-darweish ,Pruebe el siguiente método. El código está en estilo C#. Puede ser similar en Java también.

  Geoprocessor GP = new Geoprocessor();     
  GP.OverwriteOutput = true;

  Intersect IntersectDataset = new Intersect();
  IntersectDataset.in_features = "(" + srcShapefilePath+"\\polygon.shp", "polygon.shp" + "; " + srcShapefilePath+"\\lines.shp" + ")";
  IntersectDataset.out_feature_class = srcShapefilePath+"\\myoutput.shp";
  IntersectDataset.output_type = "LINE";

  IGeoProcessorResult result;
  result = (IGeoProcessorResult)GP.Execute(process, null);

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X