|
IDEA
|
You should set the layer's time zone before you publish the service. Take a look at the documentation about time settings.
... View more
01-29-2025
02:09 PM
|
0
|
0
|
1852
|
|
POST
|
This would give you an empty result if the fields start with a capital "C". "com" is not equivalent to "Com" Check whether this gives you the result you're expecting var pattern = "com" // Substring to match field names starting with "com"
var result = {}
for (var field in $feature) {
if (Lower(Left(field, Count(pattern))) == pattern && !IsEmpty($feature[field])) {
result[field] = $feature[field]
}
}
Console(result)
return result
... View more
01-29-2025
09:47 AM
|
0
|
0
|
2246
|
|
POST
|
Have you taken a look at the requirement page for ArcGIS Pro 3.1 SDK? Make sure you have the correct .NET runtime version and the correct .vsix components.
... View more
01-28-2025
10:39 AM
|
0
|
0
|
631
|
|
POST
|
You have to use the correct return type for an Arcade element. The simple replacement would look like this, assuming you only expect to get one record back for each parcel var intersectLayer = Intersects(FeatureSetByName($map,"Park County Zoning"),Buffer($feature, -10, "feet"))
for (var f in intersectLayer){
var regs = Split(f.ZONEREGS,';')
}
return {
type : 'text',
text : regs
} A simpler version would look like this var intersectLayer = Intersects(FeatureSetByName($map,"Park County Zoning"),Buffer($feature, -10, "feet"))
return {
type : 'text',
text : Split(First(intersectLayer).ZONEREGS, ";|;")
}
... View more
01-24-2025
11:42 AM
|
1
|
1
|
1800
|
|
POST
|
In the new map viewer, you have to use an Arcade element in your popup to include clickable links. You could either split your text element into two items and put the Arcade element for the Parcel Zoning between them or replace the text element with an Arcade element, combining the different attribute expressions into a single code block.
... View more
01-24-2025
09:37 AM
|
2
|
3
|
1820
|
|
POST
|
Yes, this does work properly. That dangling comma is added by the VS Code Prettier and didn't have an effect on it
... View more
01-23-2025
08:55 AM
|
0
|
0
|
1185
|
|
POST
|
Thanks @JeffreyThompson2 I modified the config to create a new setting of this type export interface Config {
//other settings
templateLayer: TemplateLayer;
}
export type TemplateLayer = {
id: string;
name: string;
}; and used this code to update it onSettingChange({
id: id,
config: config.set('templateLayer', {
id: selectedItem.id,
name: selectedItem.title,
}),
});
... View more
01-23-2025
08:33 AM
|
0
|
2
|
1190
|
|
POST
|
I'm attempting to set two items in the config file in my Settings widget using this code, but it's only setting the second item ('templateLayerId'). function onDoneClicked(): void {
onSettingChange({
id: id,
config: config.set('templateLayerName', selectedItem.title),
});
onSettingChange({
id: id,
config:
config.set('templateLayerId', selectedItem.id),
});
} What's the proper syntax for setting multiple items?
... View more
01-22-2025
02:00 PM
|
0
|
4
|
1219
|
|
POST
|
In line 14, you're checking if a string is a NaN. That will return false, since the function IsNAN evaluates if a value is a NaN according to these rules: A number is considered NaN in one of the following scenarios: - 0/0 - Infinity / Infinity - Infinity * 0 - Any operation in which NaN is an operand - Casting a non-numeric text or undefined to a number So what you have to do is to attempt to cast that last character as a Number and check if it's a NaN. This will return the list as you wanted. var inputString = $feature.OrdConcat;
var values = Split(inputString, ";");
var result = [];
for (var i in values) {
var cleanedValue = values[i];
// Remove the first leading zero
if (Left(cleanedValue, 1) == "0") {
cleanedValue = Mid(cleanedValue, 1, Count(cleanedValue) - 1);
}
// Check if the last character is a letter
if (IsNan(Number(Right(cleanedValue, 1)))) {
// Check if the character before the letter is a zero
if (Mid(cleanedValue, Count(cleanedValue) - 2, 1) == "0") {
cleanedValue = Left(cleanedValue, Count(cleanedValue) - 2) +
Right(cleanedValue, 1);
}
} else if (Right(cleanedValue, 1) == "0") {
// Remove exactly one trailing zero if no letter is present at the end
cleanedValue = Left(cleanedValue, Count(cleanedValue) - 1);
}
Push(result, cleanedValue);
}
return Concatenate(result, TextFormatting.NewLine);
... View more
01-21-2025
08:00 AM
|
2
|
0
|
845
|
|
POST
|
Yes, you can add links like this (using an Arcade expression) return {
type : 'text',
text : `<a href="https://www.youtube.com/watch?v=viJEBsoXKi8">About Esri</a>` //this property supports html tags
}
... View more
01-21-2025
05:04 AM
|
0
|
0
|
4944
|
|
POST
|
Don't forget to click the "Accept as Solution" button on the post. Have you added those fields to the FeatureSetByPortalItem and the GroupBy functions?
... View more
01-17-2025
06:39 AM
|
0
|
0
|
1860
|
|
POST
|
You can use Arcade's GroupBy function to get a FeatureSet containing the sum of each of the IDs
... View more
01-16-2025
10:15 AM
|
2
|
0
|
1372
|
|
POST
|
In a Data Expression, you can use the GroupBy function with a case expression in the SQL statement to return a FeatureSet with a calculated field. It would look something like this (not knowing how you want the original statues reclassified) var fs = FeatureSetByPortalItem(
Portal("your portal"),
"itemID",
0,
["Status"],
false
);
var sql_statement = `CASE
WHEN STATUS = 'PENDING' OR STATUS = 'FINAL-PROCESS' THEN 'Active'
WHEN STATUS = 'FINAL-APPROVED' OR STATUS = 'PRELIMINARY-APPROVED' THEN 'Approved'
WHEN STATUS = 'SUCCESS' THEN 'Release'
ELSE 'Other'
END`
GroupBy(
fs,
{ name: "Status", expression: sql_statement, statistic: "COUNT" },
{ name: "Total", expression: "1", statistic: "COUNT" }
);
... View more
01-16-2025
06:25 AM
|
0
|
2
|
1890
|
|
POST
|
This code works with my data var fields = ["util_point_type_ngas", "util_point_type_power", "util_point_type_water", "util_point_type_sswr", "util_point_type_strm", "util_point_type_telco"];
var domainValues = {};
for (var i in fields) {
var myDomain = Domain($feature, fields[i]);
//console(myDomain)
if (!IsEmpty(myDomain)) {
var value = [];
var counter = 0;
for (var j in myDomain.codedValues) {
value[counter] = myDomain.codedValues[j].name;
counter++;
}
domainValues[fields[i]] = value;
} else {
domainValues[fields[i]] = "No Domain";
}
}
return domainValues;
... View more
01-14-2025
01:58 PM
|
0
|
0
|
1185
|
|
POST
|
After a little more testing, you can also change it to this to get the same result labelExpression: "[assetgroup]"
... View more
01-13-2025
01:13 PM
|
1
|
1
|
1534
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 02-04-2025 06:39 AM | |
| 1 | 05-01-2026 08:26 AM | |
| 1 | 04-10-2026 12:01 PM | |
| 1 | 04-13-2026 09:11 AM | |
| 1 | 10-11-2023 06:18 AM |
| Online Status |
Offline
|
| Date Last Visited |
3 weeks ago
|