Hello EveryOne,
i am currently working on Javascript API , i am looking solution to print dynamic featurelayer,
In fact , i have built featurelayer inside the code , after printing it, i noticed that the symbology is missing , only lables show up ( see picture below)
Does anyone know how to get symbology after printing dynamic featurelayer ?
Any help would highly appreciated
Abdellah,
Can you share your codes so that it would be easier for us to find out what is possibly wrong with your codes?
Thanks Saroj thapa.
My code to create featurelayer.
var AnneeAgricole = document.getElementById("Année").value;
var Date1 = document.getElementById("Date").value;
var layerDefinition = {
"geometryType": "esriGeometryPoint",
"spatialReference" : {
"wkid" : 4326 },
"fields": [
{
"name": "OBJECTID",
"alias": "OBJECTID",
"type": "esriFieldTypeOID"
},
{
"name": "Code_Station",
"alias": "Code Station",
"type": "esriFieldTypeDouble"
},
{
"name": "Nom_Station",
"alias": "Nom Station",
"type": "esriFieldTypeString"
},
{
"name": "COORD_X",
"alias": "X",
"type": "esriFieldTypeDouble"
},
{
"name": "COORD_Y",
"alias": "Y",
"type": "esriFieldTypeDouble"
},
{
"name": "Pluie",
"alias": "Pluie",
"type": "esriFieldTypeDouble"
}
]
}
var featureCollection = {
"layerDefinition": layerDefinition,
"featureSet": {
"features": [],
"geometryType": "esriGeometryPoint"
}
};
fll = new esri.layers.FeatureLayer(featureCollection, {
id: "Station",
visible: true,
outFields: ["OBJECTID","Code_Station","Nom_Station","COORD_X","COORD_Y","Pluie"]
});
this.map.addLayer(fll);
//Code to label the featurelayer.
var testLabel = new TextSymbol().setColor(new Color("#000000"));
testLabel.font.setSize("14pt");
testLabel.font.setFamily("arial");
testLabelRenderer = new SimpleRenderer(testLabel);
labels = new LabelLayer({
id: "labels"
});
labels.addFeatureLayer(fl, testLabelRenderer, "{Pluie}");
this.map.addLayer(labels);
//End code to label the featurelayer.
var queryTask1 = new QueryTask("http://NamePc:6080/arcgis/rest/services/NameService/MapServer/30");
var query1 = new Query();
query1.where = "Annee_Agricole = '" + AnneeAgricole + "'" + " and Date_Jour = '" + Date1 + "'";
query1.returnGeometry = false;
query1.outFields = ["Annee_Agricole","Code_Station","Date_Jour","Pluie"];
queryTask1.execute(query1, showResults1);
function showResults1(featureSets){
var resultFeatures = featureSets.features;
var queryTask = new QueryTask("http://NamePc:6080/arcgis/rest/services/NameService/MapServer/0");
var query = new Query();
query.where = "1 = 1";
query.returnGeometry = true;
query.outFields = ["Nom_Station","Code_Station","COORD_X","COORD_Y"];
infoTemplate = new InfoTemplate("${Nom_Station}", "Name : ${Nom_Station}<br/> Code : ${Code_Station} <br/> Année : ${Annee_Agricole} <br/> Date jour : ${Date_Jour} <br/> Pluie : ${Pluie}");
queryTask.execute(query, showResults);
var graphic;
var pluiess = 0;
var objectid;
var codestation;
var nomstation;
var num = 0;
var spatialReference = new esri.SpatialReference({ wkid: 4326 });
var moy = 0;
function showResults(featureSet){
var resultFeaturesa = featureSet.features;
for (var i=0, il=resultFeaturesa.length; i<il; i++) {
for (var j=0, ill=resultFeatures.length; j<ill; j++) {
if (resultFeaturesa.attributes.Code_Station == resultFeatures
var geometry = new esri.geometry.Point(resultFeaturesa.attributes.COORD_X, resultFeaturesa.attributes.COORD_Y, spatialReference);
graphic = new Graphic(geometry,spatialReference);
if(resultFeatures
pluiess = pluiess + resultFeatures
}
}
}
objectid = num + 1;
codestation = resultFeaturesa.attributes.Code_Station;
nomstation = resultFeaturesa.attributes.Nom_Station;
graphic = resultFeaturesa;
graphic.setAttributes( {"OBJECTID":objectid,"Code_Station":codestation,"Nom_Station":nomstation,"Pluie":pluiess.toFixed(1)});
featuresP.push(graphic);
ValsPluie.push(pluiess);
pluiess = 0;
num = num + 1
}
var max = Math.max.apply(Math,ValsPluie);
moy = max / 5;
var moyN = moy.toFixed(1);
//Code to symbolize the featurelayer.
var defaultSym = new SimpleMarkerSymbol().setSize(4);
var renderer = new ClassBreaksRenderer(defaultSym, "Pluie");
var sym1 = new esri.symbol.PictureMarkerSymbol({
"url":"http://localhost/image/img1.png",
"height":70,
"width":10,
"xoffset": 0,
"yoffset": 30
});
var sym2 = new esri.symbol.PictureMarkerSymbol({
"url":"http://localhost/image/img2.png",
"height":70,
"width":10,
"xoffset": 0,
"yoffset": 30
});
var sym3 = new esri.symbol.PictureMarkerSymbol({
"url":"http://localhost/image/img3.png",
"height":70,
"width":10,
"xoffset": 0,
"yoffset": 30
});
renderer.addBreak(0, moyN, sym1);
renderer.addBreak(moyN, (moyN * 2).toFixed(1), sym2);
renderer.addBreak((moyN * 2).toFixed(1), max.toFixed(1), sym3);
//End code to symbolize the featurelayer.
fll.setRenderer(renderer);
fll.applyEdits(featuresP, null, null);
}
}
The problem is that the print widget does not display this featurelayer.