I have a map service which contains a number of polygons. I am looking to get two different sets of results:
- All polygons which are fully contained within an extent
- All polygons which are intersected by an extent.
To achieve this I am using following code:
var containedProjQuery = new Query(); var containedProjQueryTask = new QueryTask(configuration.documentParams.ProjectMapService); containedProjQuery.spatialRelationship = Query.SPATIAL_REL_WITHIN; containedProjQuery.returnGeometry = true; containedProjQuery.outFields = ["PROJ_NAME"]; containedProjQuery.geometry = aoiExtent; var containedProjects = containedProjQueryTask.execute(containedProjQuery); var intersectingProjQuery = new Query(); var intersectingProjQueryTask = new QueryTask(configuration.documentParams.ProjectMapService); intersectingProjQuery.spatialRelationship = Query.SPATIAL_REL_INTERSECTS; intersectingProjQuery.returnGeometry = true; intersectingProjQuery.outFields = ["PROJ_NAME"]; intersectingProjQuery.geometry = aoiExtent; var intersectingProjects = intersectingProjQueryTask.execute(intersectingProjQuery); var promises = All([containedProjects, intersectingProjects]); promises.then(returnResults);
The issue I'm running into is that the SPATIAL_REL_WITHIN query always returns 0 results, while SPATIAL_REL_INTERSECTS appears to work correctly. Is there something I'm missing?