<?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 Re: UniqueValueRenderer supports only one field rather than 3 fields as suggested by in Java Maps SDK Questions</title>
    <link>https://community.esri.com/t5/java-maps-sdk-questions/uniquevaluerenderer-supports-only-one-field-rather/m-p/455113#M1393</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Unfortunately this is a bug in the unique value renderer when you create it programatically. If the render is read from JSON i.e. from a service then multiple fields will work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When creating one in code a work around is to turn the unique values into JSON and then read back into a unique value e.g.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; import org.codehaus.jackson.JsonNode;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; import org.codehaus.jackson.map.ObjectMapper;

 private UniqueValueInfo getUniqueValueInfo(Object[] values, Symbol symbol) throws Exception {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp; UniqueValueInfo uv = new UniqueValueInfo(values, symbol);

&amp;nbsp; ObjectMapper mapper = new ObjectMapper();
&amp;nbsp; JsonNode node = mapper.readTree(uv.toJson(","));

&amp;nbsp; return new UniqueValueInfo(node);
 }
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So create your renderer like this&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
UniqueValueRenderer uvr = new UniqueValueRenderer(null, "TYPE", "SEVERITY", "ATTACHMENTTYPE");
&amp;nbsp; 
uvr.addValue(getUniqueValueInfo(new Object[] {0, 1, 0}, getPMS("resources/traffic_cone.png", 20)));
uvr.addValue(getUniqueValueInfo(new Object[] {0, 2, 0}, getPMS("resources/traffic_cone.png", 30)));
uvr.addValue(getUniqueValueInfo(new Object[] {0, 3, 0}, getPMS("resources/traffic_cone.png", 40)));
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This should hopefully resolve your problem.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 20:17:59 GMT</pubDate>
    <dc:creator>ColinAnderson1</dc:creator>
    <dc:date>2021-12-11T20:17:59Z</dc:date>
    <item>
      <title>UniqueValueRenderer supports only one field rather than 3 fields as suggested by API</title>
      <link>https://community.esri.com/t5/java-maps-sdk-questions/uniquevaluerenderer-supports-only-one-field-rather/m-p/455112#M1392</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;There is a way to publish shapefile to local server on the fly, as illustrated in the Runtime sample app com.esri.client.samples.datasources.LocalShapefileApp.&amp;nbsp; During that process, we can also introduce a renderer.&amp;nbsp; In the sample app, a pre-defined simple renderer is used.&amp;nbsp; Rather than doing that, a custom UniqueValueRenderer is defined.&amp;nbsp; It works well if only one field is used for classification.&amp;nbsp; From looking at the Runtime API and other ArcGIS SDK's, it appears multiple fields can be used.&amp;nbsp; However, it appears not to work when 2 or more fields are used.&amp;nbsp; The code &lt;/SPAN&gt;&lt;SPAN style="text-decoration:underline;"&gt;&lt;STRONG&gt;that works&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UniqueValueRenderer uvRenderer = new UniqueValueRenderer();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uvRenderer.setAttributeName1("field1");&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Object[] o;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uvRenderer.addValue(new UniqueValueInfo(new Object[]{11}, getFillSymbol()));&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The code &lt;/SPAN&gt;&lt;STRONG style="text-decoration: underline;"&gt;that does not work&lt;/STRONG&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UniqueValueRenderer uvRenderer = new UniqueValueRenderer();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uvRenderer.setAttributeName1("field1");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uvRenderer.setAttributeName2("filed2");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Object[] o;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; o = new Object[]{11,22}; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uvRenderer.addValue(new UniqueValueInfo(o, getFillSymbol()));&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The Runtime used is 10.1.&amp;nbsp; Don't know if it gets fixed in 10.2&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Oct 2013 16:39:36 GMT</pubDate>
      <guid>https://community.esri.com/t5/java-maps-sdk-questions/uniquevaluerenderer-supports-only-one-field-rather/m-p/455112#M1392</guid>
      <dc:creator>dw2</dc:creator>
      <dc:date>2013-10-02T16:39:36Z</dc:date>
    </item>
    <item>
      <title>Re: UniqueValueRenderer supports only one field rather than 3 fields as suggested by</title>
      <link>https://community.esri.com/t5/java-maps-sdk-questions/uniquevaluerenderer-supports-only-one-field-rather/m-p/455113#M1393</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Unfortunately this is a bug in the unique value renderer when you create it programatically. If the render is read from JSON i.e. from a service then multiple fields will work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When creating one in code a work around is to turn the unique values into JSON and then read back into a unique value e.g.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; import org.codehaus.jackson.JsonNode;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; import org.codehaus.jackson.map.ObjectMapper;

 private UniqueValueInfo getUniqueValueInfo(Object[] values, Symbol symbol) throws Exception {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp; UniqueValueInfo uv = new UniqueValueInfo(values, symbol);

&amp;nbsp; ObjectMapper mapper = new ObjectMapper();
&amp;nbsp; JsonNode node = mapper.readTree(uv.toJson(","));

&amp;nbsp; return new UniqueValueInfo(node);
 }
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So create your renderer like this&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
UniqueValueRenderer uvr = new UniqueValueRenderer(null, "TYPE", "SEVERITY", "ATTACHMENTTYPE");
&amp;nbsp; 
uvr.addValue(getUniqueValueInfo(new Object[] {0, 1, 0}, getPMS("resources/traffic_cone.png", 20)));
uvr.addValue(getUniqueValueInfo(new Object[] {0, 2, 0}, getPMS("resources/traffic_cone.png", 30)));
uvr.addValue(getUniqueValueInfo(new Object[] {0, 3, 0}, getPMS("resources/traffic_cone.png", 40)));
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This should hopefully resolve your problem.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 20:17:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/java-maps-sdk-questions/uniquevaluerenderer-supports-only-one-field-rather/m-p/455113#M1393</guid>
      <dc:creator>ColinAnderson1</dc:creator>
      <dc:date>2021-12-11T20:17:59Z</dc:date>
    </item>
  </channel>
</rss>

