Select to view content in your preferred language

Can I use QueryTask for kml file?

721
2
04-06-2012 12:55 PM
JihoonSon
Deactivated User
I am trying to select kml features using Buffer. I think I need to create QueryTask using "esri.tasks.QueryTask(url)" but it is not working for kml file.
Is there any way to select kml features without using QueryTask?

I tried to use "onBufferComplete" event, but it gives an error - code below.

      dojo.connect(kml, 'onLoad', function() {
        layers = kml.getLayers();
dojo.forEach(layers, function(layer){        
   if(layer.declaredClass === "esri.layers.FeatureLayer"){    
     var selectBufferQuery = new esri.tasks.Query();   
     dojo.connect(gsvc, "onBufferComplete", function(geometry) {
       selectBufferQuery.geometry = geometry;
       layer.selectFeatures(selectBufferQuery, esri.layers.FeatureLayer.SELECTION_NEW);
     });
   }
});
      });

Below is the code I used for creating 1 and 2 mile buffer.

      gsvc = new esri.tasks.GeometryService("http://tasks.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");

      function doBuffer(evt) {
        map.graphics.clear();
        var params = new esri.tasks.BufferParameters();
        params.geometries = [ evt.mapPoint ];

        //buffer in linear units such as meters, km, miles etc.
        params.distances = [ 1, 2 ];
        params.unit = esri.tasks.GeometryService.UNIT_US_NAUTICAL_MILE;
        params.outSpatialReference = map.spatialReference;

        gsvc.buffer(params, showBuffer);
  map.centerAndZoom(evt.mapPoint, 12);
      }

      function showBuffer(geometries) {

        var symbol = new esri.symbol.SimpleFillSymbol(
          esri.symbol.SimpleFillSymbol.STYLE_SOLID,
          new esri.symbol.SimpleLineSymbol(
            esri.symbol.SimpleLineSymbol.STYLE_SOLID,
            new dojo.Color([0,0,255,0.65]), 2
          ),
          new dojo.Color([0,0,255,0.15])
        );

        dojo.forEach(geometries, function(geometry) {
          var graphicBuffer = new esri.Graphic(geometry,symbol);
          map.graphics.add(graphicBuffer);
        });
      }
0 Kudos
2 Replies
ConnieLeung
Occasional Contributor
I am trying to do something similar, have you found a solution yet?
0 Kudos
JeffPace
MVP Alum
A querytask requires a ArcGIS Server REST endpoint with query enabled.  As far as I am aware, it will not work with KML
0 Kudos