Print dynamic featurelayer with Javascript API

1181
2
05-22-2017 10:12 AM
AbdellahDAOUDY
New Contributor

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

0 Kudos
2 Replies
SarojThapa1
Occasional Contributor III

Abdellah,
Can you share your codes so that it would be easier for us to find out what is possibly wrong with your codes?

0 Kudos
AbdellahDAOUDY
New Contributor

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.attributes.Code_Station) {
                                          var geometry = new esri.geometry.Point(resultFeaturesa.attributes.COORD_X, resultFeaturesa.attributes.COORD_Y, spatialReference);
                                          graphic = new Graphic(geometry,spatialReference);
                                          if(resultFeatures.attributes.Pluie !== null || resultFeatures.attributes.Pluie !== NaN) {
                                              pluiess = pluiess + resultFeatures.attributes.Pluie;
                                          }
                                    }
                                }
                                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.

0 Kudos