Query by distance

4516
10
Jump to solution
09-30-2016 04:48 AM
MargaRaiz
New Contributor III

Hi!

I am trying to query by distance 2 layer (points and lines), I mean I have an initial point and I want to find the closest lines that are within 10 meters.

Afther doing some research in this forum this is my try:

First I query the point layer looking for the source point and I create a graphic symbol:

      var resultFeatures = results.features;
      symbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([255, 0, 0]), 3);
      var point= new esri.Graphic(resultFeatures[0].geometry, symbol);

I create a new query with this parameters:

 var query = new Query();
               
       queryTask = new QueryTask(lines_layer.url);               
       query.geometry = [point.geometry];
       query.distance = [10];
       query.units = esri.tasks.GeometryService.UNIT_METER;
       query.returnGeometry = true;
       query.outSpatialReference = new SpatialReference({ wkid: 102100 }); //ETRS89
       query.spatialRelationship = Query.SPATIAL_REL_CONTAINS;

I launch the query:

queryTask.execute(query).then(function (qResults) {
         //  Here goes the code for looping qResults of the lines elements

         //  that are close than 10 meters from the initial point.
});


Is this the correct approach to launch a query by distance (similar to the one that arcmap haves)?           

0 Kudos
10 Replies
LoriGonzalez
New Contributor III

You could also try creating a Circle  around your point with the desired distance and use that as the geometry in your Query task.