POST
|
fieldInfo.label doesn't take Arcade expressions. Arcade can only be defined in 2 places inside popups: expressionInfos, and ExpressionContent elements. To accomplish what you're attempting, you need an ExpressionContent element. This gives you full control over popup elements all within the scope of an Arcade expression. The expression itself needs to return the content type you want...in this case a chart. That chart's labels and values can be calculated using any Arcade function within the expression. Here's an example of the expression: var label = Text($feature.Field2);
var attributes = {
"Field 18 label": $feature.Field18
};
attributes[label] = $feature.Field25;
var fields = [];
for (var a in attributes){
Push(fields, a);
}
return {
type: "media",
attributes,
mediaInfos: [{
type: "piechart",
title: "Count by type",
value: {
fields
}
}]
}; And how you would reference it in your app: https://codepen.io/kekenes/pen/rNPqymw?editors=1000
... View more
11-30-2023
12:01 PM
|
1
|
1
|
406
|
POST
|
Thanks for pointing this out. I can easily reproduce from your app. Can you contact Esri support and have them log an issue, so we can get this in our system to fix? That way you can also track the progress of the bug report.
... View more
11-27-2023
11:51 AM
|
0
|
1
|
434
|
POST
|
I would reach out to Esri support and show them the app where this is occurring. It appears to be originating in the rendering engine somewhere, but we won't know for sure until we see a live reproducible case. Once Support verifies it's an issue, it's submitted as a bug and the dev team will take a look at it.
... View more
11-27-2023
11:40 AM
|
0
|
1
|
301
|
POST
|
I suggest reaching out to Esri support if you suspect this is a bug. They will attempt to reproduce the issue independently then log a bug so the dev team can take a look at it.
... View more
11-27-2023
11:37 AM
|
0
|
0
|
252
|
POST
|
I'm not sure I follow the scenario 100%, but it sounds like you could just use the smart mapping functions for this: https://developers.arcgis.com/javascript/latest/api-reference/esri-smartMapping-renderers-type.html#createRenderer The smart mapping functions generate renderers based on the underlying data. The createRenderer function for unique values works for all "feature layer-like" types, including GeoJSON. Here's an example: https://codepen.io/kekenes/pen/wvNPGXJ?editors=100
... View more
11-15-2023
02:44 PM
|
0
|
1
|
416
|
POST
|
Not necessarily a performance benefit. Just an alternative that is fewer lines. I try to go with the shortest expression. Though I'd say the for loop version is more readable than the reduce approach.
... View more
11-06-2023
11:51 AM
|
0
|
0
|
1326
|
POST
|
@KenBuja is correct. You should use the Expects function for this case if using a for loop. The rendering engine for Online (JS API) is optimized for performance. So it only requests the data that's required by the layer's style by default. If you specify a field outside of an Arcade expression, the API knows to request data from that field for rendering. In the case of Arcade, the expression is evaluated for the fields required to make it work. When $feature.FIELDNAME is used, it's easy for the engine to figure out the required fields. That's why the alternative expression works. However, you can use Expects to directly tell the rendering engine which fields it should expect to request from the service. This can be a list of fields as Ken points out, or you can also define template strings like the following: Expects("*"); // requests all fields. Don't do this if you have a ton of attributes.
Expects("Year_*") // requests all fields that begin with "Year_". (e.g. "Year_2000", "Year_2010") would be requested, but "Y2004" wouldn't). On a side note, you could take advantage of the number function to condense the initial expression like this: Expects($feature,'*_20*');
var fieldList = ['Dorian_2019','Sally_2020','Ian_2022','Nicole_2022','Idalia_2023'];
var total = 0;
for (var f in fieldList) {
// adds 1 if "YES"
// adds 0 if not "YES"
total += Number($feature[fieldList[f]] == 'YES');
}
return total; Or use the reduce function to avoid a for loop altogether. You still need Expects for this to work... Expects($feature,'*_20*');
var fieldList = ['Dorian_2019','Sally_2020','Ian_2022','Nicole_2022','Idalia_2023'];
function add (total, fieldName){ total + Number($feature[fieldName] == 'YES') }
Reduce(fieldList, add, 0);
... View more
11-06-2023
09:05 AM
|
4
|
2
|
1344
|
IDEA
|
The UniqueValueInfo.description is intentionally left out of the documentation as it does not have a use in the current API. You should use the label property in stead of the description.
... View more
09-12-2023
08:31 AM
|
0
|
0
|
355
|
POST
|
> the still undocumented JSON structure for specifying it with uniqueValueGroups The JSON structure has actually been documented in the web map specification ever since the concept was introduced. You can find it here: https://developers.arcgis.com/web-map-specification/objects/uniqueValueRenderer/ https://developers.arcgis.com/web-map-specification/objects/uniqueValueGroup/ https://developers.arcgis.com/web-map-specification/objects/uniqueValueClass/ It includes examples with multiple scenarios. Perhaps we should improve the JS documentation to link to the web map specification.
... View more
08-31-2023
03:00 PM
|
0
|
1
|
692
|
POST
|
I'm not observing this behavior. If you think you're encountering a bug, you should reach out to Esri support with a repro/test case so they can vet it and log it into our system to fix it more promptly. Here's the test case I tried that appeared to work: https://codepen.io/kekenes/pen/yLQMYPx?editors=100
... View more
06-27-2023
02:40 PM
|
1
|
0
|
286
|
POST
|
This sounds like a potential bug in the rendering engine. I advise reaching out to Esri Support so they can validate the issue and get it logged into our system.
... View more
06-23-2023
09:16 AM
|
0
|
0
|
1030
|
POST
|
It could be. I also don't think we save renderers directly to the service anymore (on the Online side anyway). It would be worth checking in with someone on the Pro/Enterprise side...
... View more
06-15-2023
11:55 AM
|
0
|
1
|
939
|
POST
|
Can you share the difference in renderer JSON saved to the service versus the renderer on the layer's portal item? It seems to be related to that.
... View more
06-15-2023
11:27 AM
|
0
|
0
|
945
|
POST
|
Yeah, I see the issue, but it's a bit of a confusing one... It's in the where clause of the Filter function. That where statement is a SQL where, and doesn't allow Arcade functions. So this bit: "DATE_HEURE > Date(2023-05-01)" Needs to change to: "DATE_HEURE > '2023-05-01'" Then it should work... Here's an example: https://codepen.io/kekenes/pen/NWOJapJ?editors=100
... View more
05-25-2023
07:03 AM
|
0
|
0
|
532
|
POST
|
Yes. This is possible. You need to query the features within the bin and create a column chart representing however you partition the data. This sample demonstrates how to query features inside a bin using Arcade: https://developers.arcgis.com/javascript/latest/sample-code/featurereduction-binning-arcade-summary/ In the popup, click one of the arrows next to the pie chart to see a similar visualization using a line chart. This chart displays the number of crimes that occurred in each month within the bin. This blog also steps you through the process: https://www.esri.com/arcgis-blog/products/arcgis-online/mapping/how-to-summarize-aggregate-data-using-arcade-in-popups/
... View more
05-23-2023
09:51 AM
|
0
|
0
|
583
|
Title | Kudos | Posted |
---|---|---|
1 | 08-20-2024 08:06 AM | |
1 | 08-13-2024 11:53 AM | |
1 | 07-22-2024 11:04 AM | |
1 | 05-16-2024 09:46 AM | |
1 | 04-25-2024 08:56 AM |
Online Status |
Offline
|
Date Last Visited |
Thursday
|