Multiple print using Export Web Map Task

481
1
04-04-2018 06:56 AM
RichardMoussopo
Occasional Contributor III

I'd like to query some parcels and loop through each one of them to export it out using Print Task. what would be the best approach ? (API 4.6) 

0 Kudos
1 Reply
RichardMoussopo
Occasional Contributor III

I thought I share some code:

//******************************************* */
let view = new MapView({
map: webmap,
container:"mapview"
});
view.then(e=>{
let parcels = e.map.allLayers.find(layer => {return layer.title ==="Parcels"});
const query = new Query();
query.outFields = ["*"];
query.returnGeometry = true;
query.where ="owner='testing'";
parcels.queryFeatures(query).then(res =>{
console.log(res);
var parcelArray = res.features;
parcelArray.forEach(parcel =>{
GetPrintImgUrl(parcel).then(res=>{
// display printed map list here on the page
})
})
})

//Print method that returns the exported map url
var GetPrintImgUrl = function(feature){
let _promise = new Promise((resolve, reject) =>{
view.graphics.removeAll();
var fillSymbol = {
type: "simple-fill",
style: "none",
outline: {
width: 2,
color: [255, 255, 0, 1]
}
};
let _current_parcel = new Graphic(feature.geometry, fillSymbol);
view.graphics.add(_current_parcel);
//[1] zoom to the current parcel extent
view.extent = feature.geometry.extent;
view.zoom = 20;
//[2] export this map
var printTask = new PrintTask({
});
var template = new PrintTemplate({
format: "jpg",
exportOptions: {
width:500,
height:600
},
layout: "map-only",
layoutOptions: {
titleText: "Parcel 0025655452"
}
});
var params = new PrintParameters({
view: view,
template: template
});
printTask.execute(params).then(printResult=>{ // This printTask does not work result in Error: ["Error executing tool. Export Web Map Job ID: j40a9373610e84ac59f26ecc1eb1af0fe"]
resolve(printResult);
});
});
return _promise;
};
})

//********************************************* */
0 Kudos