function DoBuffer(bufferDistance) { //Selects the buffer unit based on user input var bufferUnit = selectbufferUnit.value; switch (bufferUnit) { case 'Feet': bufferUnit = [esri.tasks.GeometryService.UNIT_FOOT]; break; case 'Miles': bufferUnit = [esri.tasks.GeometryService.UNIT_STATUTE_MILE]; break; case 'Meters': bufferUnit = [esri.tasks.GeometryService.UNIT_METER]; break; case 'Kilometers': bufferUnit = [esri.tasks.GeometryService.UNIT_KILOMETER]; break; } var params = new esri.tasks.BufferParameters(); //Sets the buffer distance based on user input params.distances = [bufferDistance]; params.unit = [bufferUnit]; params.bufferSpatialReference = map.spatialReference; params.outSpatialReference = map.spatialReference; //Gets the geometries for all the selected sites params.geometries = esri.getGeometries(map.graphics.graphics); //This parameter unions all the generated buffer polygons into a single multipart polygon params.unionResults = true; geometryService.buffer(params, ShowBuffer); features = []; } //function for Displaying the buffer function ShowBuffer(geometries) { //Creates the symbol for the buffer var lineColor = new dojo.Color(); lineColor.setColor(rendererColor); var fillColor = new dojo.Color(); fillColor.setColor(rendererColor); fillColor.a = 0.15; var symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, lineColor, 2), fillColor); var bufferLayer = map.getLayer(tempBufferLayer); //Adds the buffers to a graphics layer AddGraphic2(map.getLayer(tempBufferLayer), symbol, geometries[0]); //Sets the extent of the map so that the buffers are visible var bufferPolygon = bufferLayer.graphics[0]; var bufferExtent = bufferPolygon.geometry.getExtent(); var finalExtent2 = bufferExtent.expand(1.5); map.setExtent(finalExtent2); //Queries the address point layer for any points contained within the buffers var qTask = 'qTask'; qTask = new esri.tasks.QueryTask("http://servername/arcgis/rest/services/foldername/servicename/MapServer/1"); var query = new esri.tasks.Query(); query.where = "1=1"; query.geometry = geometries[0]; query.outFields = ["*"]; query.spatialRelationship = esri.tasks.Query.SPATIAL_REL_CONTAINS; query.returnGeometry = true; //All addresses returned from the query are shown on the map and also shown in a datagrid. qTask.execute(query, function (featureset) { var addressGraphics = featureset.features; //Creates the symbol for all the addresses returned from the query var symbolAddress = new esri.symbol.SimpleMarkerSymbol( esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, 12, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_NULL, new dojo.Color([247, 34, 101, 0.9]), 1), new dojo.Color([207, 34, 171, 0.5]) ); //Creates the attributes for the addresses that will be added to a graphics layer var attributes; var a; for (a = 0; a < addressGraphics.length; a++) { attributes = { "OBJECTID": addressGraphics.attributes["OBJECTID"], "PIN": addressGraphics.attributes["PIN"], "BUSINESSNAME": addressGraphics.attributes["BUSINESSNAME"], "OWNAME": addressGraphics.attributes["OWNAME"], "PHYADDR1": addressGraphics.attributes["PHYADDR1"] }; //Adds the addresses to a graphics layer using the symbol and attributes previously created AddGraphic2(map.getLayer(selectedAddressesID), symbolAddress, addressGraphics.geometry, attributes); } var results = map.getLayer(selectedAddressesID).graphics; //create array of attributes var items = dojo.map(results, function (result) { return result.attributes; }); //Create data object to be used in store var data = { identifier: "OBJECTID", //This field needs to have unique values label: "ID", //Name field for display. Not pertinent to a grid but may be used elsewhere. items: items }; //Create data store and bind to grid. store = new dojo.data.ItemFileReadStore({ data: data }); var grid = dijit.byId('gridAddress'); grid.setStore(store); }); }
dojo.require("dojo.DeferredList");
var defers = []; dojo.forEach(arrayOfBufferedGeoms, function (bufferedGeom) { var query = new esri.tasks.Query(); query.geometry = bufferedGeom; query.outSpatialReference = map.spatialReference; var queryTask = new esri.tasks.QueryTask(somelayerUrl); defers.push(queryTask.execute(query)); })); var dl = new dojo.DeferredList(defers); dojo.when(dl, function (results) { dojo.forEach(results, function(result) { //process your returned items. }); });
"http://www.myservice.com/ArcGIS/rest/services/Folder/Service/MapServer/LayerID/query?&geometry=" + geometryString + "&geometryType=esriGeometryPolygon&spatialRel=esriSpatialRelIntersects&where=" + whereClause + "&returnCountOnly=false&returnIdsOnly=false&returnGeometry=true&outFields=*&f=pjson"
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.