I am trying to get the results from a FeatureLayer when the user clicks on the map.
My geometry is an map.MapPoint that i pass to the following function.
I tried to make a rectangle for making a polygon to add more range to the results but for some reasonim getting an error performing the query
function factigis_findDireccion(geometry,callback){ var rectangulo = new esri.geometry.Polygon; rectangulo.addRing(crearRectangulo(geometry,1)); console.log("my point",rectangulo); var qTaskInterruptions = new esri.tasks.QueryTask(layers.read_direcciones()); var qInterruptions = new esri.tasks.Query(); qInterruptions.returnGeometry = true; qInterruptions.outFields=["id_direccion","nombre_calle","numero"]; qInterruptions.geometry = rectangulo ; qInterruptions.spatialRelationship = esri.tasks.Query.SPATIAL_REL_CONTAINS; qTaskInterruptions.execute(qInterruptions, (featureSet)=>{ console.log("Find",featureSet); callback(featureSet.features); }, (Errorq)=>{ console.log(Errorq,"Error doing interruptions nis by extent"); return 0; }); } function crearRectangulo(mapPoint,delta){ var arrayOfPoints = new Array(); arrayOfPoints[0] = new esri.geometry.Point(mapPoint.x-delta,mapPoint.y-delta,mapPoint.spatialReference); arrayOfPoints[1] = new esri.geometry.Point(mapPoint.x-delta,mapPoint.y+delta,mapPoint.spatialReference); arrayOfPoints[2] = new esri.geometry.Point(mapPoint.x+delta,mapPoint.y+delta,mapPoint.spatialReference); arrayOfPoints[3] = new esri.geometry.Point(mapPoint.x+delta,mapPoint.y-delta,mapPoint.spatialReference); arrayOfPoints[4] = new esri.geometry.Point(mapPoint.x-delta,mapPoint.y-delta,mapPoint.spatialReference); return arrayOfPoints; }
What im missing? thanks for ur help
Solved! Go to Solution.
I found my issue, i had to make a polygon like this
var rectangle = new esri.geometry.Polygon(new esri.SpatialReference(geometry.spatialReference)); rectangulo.addRing([ [geometry.x-1,geometry.y-1],[geometry.x-1,geometry.y+1],[geometry.x+1,geometry.y+1],[geometry.x+1,geometry.y-1],[geometry.x-1,geometry.y-1] ]);
I found my issue, i had to make a polygon like this
var rectangle = new esri.geometry.Polygon(new esri.SpatialReference(geometry.spatialReference)); rectangulo.addRing([ [geometry.x-1,geometry.y-1],[geometry.x-1,geometry.y+1],[geometry.x+1,geometry.y+1],[geometry.x+1,geometry.y-1],[geometry.x-1,geometry.y-1] ]);