<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Arcgis Javascript api 3.17 printing and legend rendered values not shown in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcgis-javascript-api-3-17-printing-and-legend/m-p/564390#M52668</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt;Printing issue using Arcgis Javascript api 3.17. &amp;nbsp;I have created a custom print template. everything is working fine when&lt;/STRONG&gt; creating a smart mapping classbreaks render . eg&amp;nbsp;&lt;/P&gt;&lt;P&gt;NB printing is working fine with this function ,&amp;nbsp;&lt;/P&gt;&lt;P&gt;function createRenderer(field) {console.log("create renderer: " + field);&lt;BR /&gt; //smart mapping functionality begins&lt;BR /&gt; smartMapping.createClassedColorRenderer({&lt;BR /&gt; "layer": layer,&lt;BR /&gt; "field": field,&lt;BR /&gt; "basemap": "gray", //map.getBasemap(),&lt;BR /&gt; "classificationMethod": "quantile"&lt;BR /&gt; }).then(function (response) {&lt;BR /&gt; layer.setRenderer(response.renderer); &lt;BR /&gt; createLegend(field);&lt;BR /&gt; //printMap()&lt;BR /&gt; layer.redraw();&lt;BR /&gt; });&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;the problem arise &amp;nbsp;when using a geostats.js api to create class break render the the legend doesn't updated or show values.&lt;/P&gt;&lt;P&gt;Any ideas what might be causing this issue.&lt;/P&gt;&lt;P&gt;code for geostats.js&amp;nbsp;&lt;/P&gt;&lt;P&gt;function createClassBreaksRenderer(renderLayer, fieldValues, field) {&lt;BR /&gt; var renderer = new ClassBreaksRenderer(null, field);&lt;/P&gt;&lt;P&gt;//get class breaks&lt;BR /&gt; var classBreaks = getClassBreaks(fieldValues); // this must be jenks&lt;/P&gt;&lt;P&gt;//loop through class breaks until the second last one&lt;BR /&gt; for (i = 0; i &amp;lt; classBreaks.length - 1 ; i++) {&lt;BR /&gt; //add class breaks to renderer and set the color&lt;BR /&gt; renderer.addBreak(classBreaks&lt;I&gt;, classBreaks[i + 1], new SimpleFillSymbol().setColor(new Color(rendering.featureMap.color&lt;I&gt;)));&lt;BR /&gt; }&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;setRenderer(renderLayer, renderer, field);&lt;BR /&gt; &lt;BR /&gt; //createLegend(field);&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;function getClassBreaks(fieldValues) {&lt;BR /&gt; var numClasses = 5; //number of class breaks&lt;/P&gt;&lt;P&gt;//make sure the number of class breaks is less than the number of field values&lt;BR /&gt; if (fieldValues.length &amp;lt;= numClasses) {&lt;BR /&gt; numClasses = fieldValues.length - 1;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;//use geostats api&lt;BR /&gt; var serie = new geostats(fieldValues);&lt;BR /&gt; serie.setPrecision(0);&lt;BR /&gt; serie.silent = true;&lt;/P&gt;&lt;P&gt;//get Jenks class breaks&lt;BR /&gt; var classBreaks = serie.getClassJenks(numClasses);&lt;/P&gt;&lt;P&gt;return classBreaks;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//Print Function&amp;nbsp;&lt;/P&gt;&lt;P&gt;function printMap() {&lt;BR /&gt; &lt;BR /&gt; var StatslegendLayer = new esri.tasks.LegendLayer();// Get the legend Layers &lt;BR /&gt; var legendLaye = []&lt;BR /&gt; StatslegendLayer.layerId = layer.id;&lt;BR /&gt; legendLaye.push(StatslegendLayer);&lt;BR /&gt; &lt;BR /&gt; alert(layer.url);&lt;BR /&gt; alert(layer.id);&lt;BR /&gt; alert(layer.name);&lt;BR /&gt; for (var j = 0, jl = map.layerIds.length; j &amp;lt; jl; j++) {&lt;BR /&gt; var currentLayer = map.getLayer(map.layerIds&lt;J&gt;);&lt;BR /&gt; alert("id: " + currentLayer.id);&lt;BR /&gt; }&lt;BR /&gt;&lt;SPAN&gt; var printMap = new esri.tasks.PrintTask("&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=http%3A%2F%2Fourserver%3A6080%2Farcgis%2Frest%2Fservices%2FExportWebMap9%2FGPServer%2FExport%2520Web%2520Map" rel="nofollow" target="_blank"&gt;http://ourserver:6080/arcgis/rest/services/ExportWebMap9/GPServer/Export%20Web%20Map&lt;/A&gt;&lt;SPAN&gt;");&lt;/SPAN&gt;&lt;BR /&gt; var params = new esri.tasks.PrintParameters();&lt;BR /&gt; var template = new esri.tasks.PrintTemplate();&lt;BR /&gt; var txtmetadata = document.getElementById("metadata").innerHTML; &lt;BR /&gt; var len = 35;&lt;BR /&gt; var curr = len;&lt;BR /&gt; var prev = 0;&lt;BR /&gt; alert(txtmetadata);&lt;BR /&gt; output = [];&lt;BR /&gt; var textmetaadat;&lt;BR /&gt; if (txtmetadata.length &amp;gt; 35)&lt;BR /&gt; {&lt;BR /&gt; while (txtmetadata[curr]) {&lt;BR /&gt; if ( txtmetadata[curr++] == ' ') {&lt;BR /&gt; output.push(txtmetadata.substring(prev, curr).trim());&lt;BR /&gt; prev = curr;&lt;BR /&gt; curr += len;&lt;BR /&gt; } &lt;BR /&gt; }&lt;BR /&gt; output.push(txtmetadata.substr(prev).trim());&lt;BR /&gt; var joinedtxt = output.join('\n')&lt;BR /&gt; alert(joinedtxt);&lt;BR /&gt; textmetaadat = "Metadata : " + "\n" + joinedtxt;&lt;BR /&gt; }&lt;BR /&gt; else&lt;BR /&gt; { &lt;BR /&gt; textmetaadat = "Metadata : " + "\n" + document.getElementById("metadata").innerHTML;&lt;BR /&gt; } &lt;BR /&gt; template.exportOptions = { dpi: 96 };&lt;BR /&gt; template.format = "pdf";&lt;BR /&gt; template.layout = "Letter ANSI A Landscape6";&lt;/J&gt;&lt;/P&gt;&lt;P&gt;template.preserveScale = true;&lt;BR /&gt; template.showAttribution = false;&lt;BR /&gt; template.layoutOptions = {&lt;BR /&gt; legendLayers: legendLaye, // empty array means no legend&lt;BR /&gt; scalebarUnit: "km",&lt;BR /&gt; customTextElements: [&lt;BR /&gt; { metadata: textmetaadat }&lt;BR /&gt; ]&lt;BR /&gt; };&lt;BR /&gt; params.map = map;&lt;BR /&gt; params.template = template;&lt;BR /&gt; printMap.execute(params, printResult);&lt;BR /&gt; params.map = null&lt;BR /&gt; params.template = null&lt;BR /&gt; legendLayer.id = " ";&lt;BR /&gt; &lt;BR /&gt; };&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 04 Oct 2016 09:14:46 GMT</pubDate>
    <dc:creator>ThaboGilbert</dc:creator>
    <dc:date>2016-10-04T09:14:46Z</dc:date>
    <item>
      <title>Arcgis Javascript api 3.17 printing and legend rendered values not shown</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcgis-javascript-api-3-17-printing-and-legend/m-p/564390#M52668</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt;Printing issue using Arcgis Javascript api 3.17. &amp;nbsp;I have created a custom print template. everything is working fine when&lt;/STRONG&gt; creating a smart mapping classbreaks render . eg&amp;nbsp;&lt;/P&gt;&lt;P&gt;NB printing is working fine with this function ,&amp;nbsp;&lt;/P&gt;&lt;P&gt;function createRenderer(field) {console.log("create renderer: " + field);&lt;BR /&gt; //smart mapping functionality begins&lt;BR /&gt; smartMapping.createClassedColorRenderer({&lt;BR /&gt; "layer": layer,&lt;BR /&gt; "field": field,&lt;BR /&gt; "basemap": "gray", //map.getBasemap(),&lt;BR /&gt; "classificationMethod": "quantile"&lt;BR /&gt; }).then(function (response) {&lt;BR /&gt; layer.setRenderer(response.renderer); &lt;BR /&gt; createLegend(field);&lt;BR /&gt; //printMap()&lt;BR /&gt; layer.redraw();&lt;BR /&gt; });&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;the problem arise &amp;nbsp;when using a geostats.js api to create class break render the the legend doesn't updated or show values.&lt;/P&gt;&lt;P&gt;Any ideas what might be causing this issue.&lt;/P&gt;&lt;P&gt;code for geostats.js&amp;nbsp;&lt;/P&gt;&lt;P&gt;function createClassBreaksRenderer(renderLayer, fieldValues, field) {&lt;BR /&gt; var renderer = new ClassBreaksRenderer(null, field);&lt;/P&gt;&lt;P&gt;//get class breaks&lt;BR /&gt; var classBreaks = getClassBreaks(fieldValues); // this must be jenks&lt;/P&gt;&lt;P&gt;//loop through class breaks until the second last one&lt;BR /&gt; for (i = 0; i &amp;lt; classBreaks.length - 1 ; i++) {&lt;BR /&gt; //add class breaks to renderer and set the color&lt;BR /&gt; renderer.addBreak(classBreaks&lt;I&gt;, classBreaks[i + 1], new SimpleFillSymbol().setColor(new Color(rendering.featureMap.color&lt;I&gt;)));&lt;BR /&gt; }&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;setRenderer(renderLayer, renderer, field);&lt;BR /&gt; &lt;BR /&gt; //createLegend(field);&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;function getClassBreaks(fieldValues) {&lt;BR /&gt; var numClasses = 5; //number of class breaks&lt;/P&gt;&lt;P&gt;//make sure the number of class breaks is less than the number of field values&lt;BR /&gt; if (fieldValues.length &amp;lt;= numClasses) {&lt;BR /&gt; numClasses = fieldValues.length - 1;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;//use geostats api&lt;BR /&gt; var serie = new geostats(fieldValues);&lt;BR /&gt; serie.setPrecision(0);&lt;BR /&gt; serie.silent = true;&lt;/P&gt;&lt;P&gt;//get Jenks class breaks&lt;BR /&gt; var classBreaks = serie.getClassJenks(numClasses);&lt;/P&gt;&lt;P&gt;return classBreaks;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//Print Function&amp;nbsp;&lt;/P&gt;&lt;P&gt;function printMap() {&lt;BR /&gt; &lt;BR /&gt; var StatslegendLayer = new esri.tasks.LegendLayer();// Get the legend Layers &lt;BR /&gt; var legendLaye = []&lt;BR /&gt; StatslegendLayer.layerId = layer.id;&lt;BR /&gt; legendLaye.push(StatslegendLayer);&lt;BR /&gt; &lt;BR /&gt; alert(layer.url);&lt;BR /&gt; alert(layer.id);&lt;BR /&gt; alert(layer.name);&lt;BR /&gt; for (var j = 0, jl = map.layerIds.length; j &amp;lt; jl; j++) {&lt;BR /&gt; var currentLayer = map.getLayer(map.layerIds&lt;J&gt;);&lt;BR /&gt; alert("id: " + currentLayer.id);&lt;BR /&gt; }&lt;BR /&gt;&lt;SPAN&gt; var printMap = new esri.tasks.PrintTask("&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=http%3A%2F%2Fourserver%3A6080%2Farcgis%2Frest%2Fservices%2FExportWebMap9%2FGPServer%2FExport%2520Web%2520Map" rel="nofollow" target="_blank"&gt;http://ourserver:6080/arcgis/rest/services/ExportWebMap9/GPServer/Export%20Web%20Map&lt;/A&gt;&lt;SPAN&gt;");&lt;/SPAN&gt;&lt;BR /&gt; var params = new esri.tasks.PrintParameters();&lt;BR /&gt; var template = new esri.tasks.PrintTemplate();&lt;BR /&gt; var txtmetadata = document.getElementById("metadata").innerHTML; &lt;BR /&gt; var len = 35;&lt;BR /&gt; var curr = len;&lt;BR /&gt; var prev = 0;&lt;BR /&gt; alert(txtmetadata);&lt;BR /&gt; output = [];&lt;BR /&gt; var textmetaadat;&lt;BR /&gt; if (txtmetadata.length &amp;gt; 35)&lt;BR /&gt; {&lt;BR /&gt; while (txtmetadata[curr]) {&lt;BR /&gt; if ( txtmetadata[curr++] == ' ') {&lt;BR /&gt; output.push(txtmetadata.substring(prev, curr).trim());&lt;BR /&gt; prev = curr;&lt;BR /&gt; curr += len;&lt;BR /&gt; } &lt;BR /&gt; }&lt;BR /&gt; output.push(txtmetadata.substr(prev).trim());&lt;BR /&gt; var joinedtxt = output.join('\n')&lt;BR /&gt; alert(joinedtxt);&lt;BR /&gt; textmetaadat = "Metadata : " + "\n" + joinedtxt;&lt;BR /&gt; }&lt;BR /&gt; else&lt;BR /&gt; { &lt;BR /&gt; textmetaadat = "Metadata : " + "\n" + document.getElementById("metadata").innerHTML;&lt;BR /&gt; } &lt;BR /&gt; template.exportOptions = { dpi: 96 };&lt;BR /&gt; template.format = "pdf";&lt;BR /&gt; template.layout = "Letter ANSI A Landscape6";&lt;/J&gt;&lt;/P&gt;&lt;P&gt;template.preserveScale = true;&lt;BR /&gt; template.showAttribution = false;&lt;BR /&gt; template.layoutOptions = {&lt;BR /&gt; legendLayers: legendLaye, // empty array means no legend&lt;BR /&gt; scalebarUnit: "km",&lt;BR /&gt; customTextElements: [&lt;BR /&gt; { metadata: textmetaadat }&lt;BR /&gt; ]&lt;BR /&gt; };&lt;BR /&gt; params.map = map;&lt;BR /&gt; params.template = template;&lt;BR /&gt; printMap.execute(params, printResult);&lt;BR /&gt; params.map = null&lt;BR /&gt; params.template = null&lt;BR /&gt; legendLayer.id = " ";&lt;BR /&gt; &lt;BR /&gt; };&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Oct 2016 09:14:46 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcgis-javascript-api-3-17-printing-and-legend/m-p/564390#M52668</guid>
      <dc:creator>ThaboGilbert</dc:creator>
      <dc:date>2016-10-04T09:14:46Z</dc:date>
    </item>
  </channel>
</rss>

