//perform intersect using geometry service function performIntersect(featureSet) { var geomService = new esri.tasks.GeometryService("https://tasks.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"); var geomSet = []; for (var i = 0; i < featureSet.length; i++) { geomSet.push(featureSet.geometry); } //get geometry from the graphic drawn by user on map var geomDraw = esri.getGeometries(map.graphics.graphics); //call the geometry intersect geomService.intersect(geomSet, geomDraw, showIntersect); //dont have an error handler, but runs through with no results } //show the intersect geometries on map function showIntersect(intGeometries) { var symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255, 0, 0, 0.65]), 2), new dojo.Color([255, 0, 0, 0.35])); dojo.forEach(intGeometries, function (geometry) { var graphic = new esri.Graphic(geometry, symbol); map.graphics.add(graphic); }); }
Solved! Go to Solution.
performIntersect(featureSet):
var geomSet = dojo.map(featureSet.features, function(aFeature) { return aFeature.geometry;});
esri.getGeometriesshould be esri.graphicsUtils.getGeometries.
//get geometry from the graphic drawn by user on map
var geomDraw = esri.getGeometries(map.graphics.graphics);
//call the geometry intersect
geomService.intersect(geomSet, geomDraw, showIntersect);
var geoA = new Array(); //declared in initialize //user draws two polygons with overlap on the map using the draw tool and clicks on a button which calls performIntersect() function performIntersect() { alert('intersect..'); //get the first drawn polygon var geomSet = geoA[0]; //get the second drawn polygon var geomDraw = geoA[1]; geomService.intersect([geomSet], geomDraw, showIntersect); //throws error when call made to geometry service URL } function showIntersect(intGeometries) { var symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255, 0, 0, 0.65]), 2), new dojo.Color([255, 0, 0, 0.35])); //clear the graphics drawn map.graphics.clear(); map.graphics.add(new esri.Graphic(intGeometries[0], symbol)); } //error thrown at the console -- dojo.io.script.jsonp_dojoIoScript2._jsonpCallback({"error":{"code":500,"message":"An unexpected error occurred processing the request.","details":["The remote procedure call failed. (Exception from HRESULT: 0x800706BE)"]}});