|
POST
|
Hi @CBarrett , Thanks for your support. You can find the link below: https://community.esri.com/t5/arcgis-online-internal-ideas/provide-the-location-clicked-in-the-pop-up-to-the/idi-p/1087588 (although this is an internal idea, and it might not be available to everyone)...
... View more
04-11-2022
01:35 PM
|
0
|
0
|
5470
|
|
POST
|
Hi @AnneSanta_Maria1 , That is an interesting case. I haven't played with that part but it somehow feels as if this should be possible. Would it be possible to get access to (a sample of) the data? Could you share this with me using my user "xbakker.spx"?
... View more
04-08-2022
02:18 PM
|
0
|
1
|
3592
|
|
DOC
|
Hi @KateRose , Thanks for sharing and sorry for the delay in my reply. this would have been my first thought. When IsEmpty does not detect a field as empty, it normally is a white space. Trim does a good job in removing those spaces. I am glad you and your colleague were able to solve it!
... View more
04-08-2022
02:13 PM
|
0
|
0
|
32628
|
|
POST
|
Hi @DanielShaffer2 , Sorry for getting back to you so late, but I was occupied organizing an event that took place yesterday. A couple of thoughts in case this is still current: Since you are using ArcGIS Online, I suppose that you want to symbolize the information there. This might limit the possibilities like using Attribute Rules which are available in ArcGIS Pro and ArcGIS Enterprise (but not in AGOL or ArcMap). You are right that it is complex and limited to visualize information from a related table. You can use Arcade in a Field Calculation (static) that accesses data from the related table and includes it as fields so that you can use multiple fields to visualize the results in the web map. However, if the data underneath changes in time, you will have to include a mechanism to update the values with a certain interval. Let me know if you still need help and if so, it would be nice to have access to some sample data to have a better understanding of what you want to achieve.
... View more
04-08-2022
02:09 PM
|
0
|
6
|
5964
|
|
DOC
|
Hi @KateRose , Sorry for the delay in my reply. A couple of comments that I believe are relevant. First of all, since December last year, you can define Arcade in two areas of the pop-up. The one that is most common works like a "virtual field" and can be used to create new information in the pop-up and, as described in this post, has been "abused" to hide information too. To hide 24 fields would require that you have many Arcade expressions and this would take up quite some time to configure. With the December update, it has become possible to define an Arcade element and add it to the pop-up. It is possible to return a field list in a single Arcade expression. See the example below: var flds = ['Actividad', 'actividad_con', 'califique_la_actividad', 'campa_a', 'clasificaci_n_de_actividad', 'descripci_n_evento_y_contenido_', 'describe_la_soluci_n_ofrecida', 'empresa', 'fecha_de_actividad'];
var info = [];
var atts = {};
for (var i in flds) {
var fldname = flds[i];
if (!IsEmpty($feature[fldname])) {
Push (info, {'fieldName': fldname})
atts[fldname] = $feature[fldname];
}
}
return {
type: 'fields',
title: 'My Title',
description : 'My description',
fieldInfos: info,
attributes : atts
} In this case, I start with a list of fields and I build an array with my field names (if you aren't empty) and a dictionary with the field values. The interpretation of the expression will present the result as a list of fields (but only those that have values). This will return the actual values and names of the field. So no conversion for domain descriptions of aliases for the fields. So you can have a little more fun and get all the fields that have values dynamically and return the alias as field "name" and the domain descriptions if a field has a domain: Function HasDomain(f, fldname) {
return Domain(f, fldname) != Null;
}
Function GetAlias(f, fldname) {
var esquema = Schema(f);
var flds = esquema["fields"];
for (var i in flds) {
var fldinfo = flds[i];
if (fldinfo["name"]==fldname) {
return fldinfo["alias"];
}
}
return fldname;
}
Function GetFieldNames(f) {
var fldlst = [];
var esquema = Schema(f);
var flds = esquema["fields"];
for (var i in flds) {
var fldinfo = flds[i];
Push(fldlst, fldinfo["name"]);
}
return fldlst;
}
var flds = GetFieldNames($feature);
var info = [];
var atts = {};
for (var i in flds) {
var fldname = flds[i];
if (!IsEmpty($feature[fldname])) {
var alias = GetAlias($feature, fldname);
Push (info, {'fieldName': alias})
if (HasDomain($feature, fldname)) {
atts[alias] = DomainName($feature, fldname);
} else {
atts[alias] = $feature[fldname];
}
}
}
return {
type: 'fields',
title: 'My Title',
description : 'My description',
fieldInfos: info,
attributes : atts
} But maybe you don't want to include all the fields in the result. In that case you can put those fields in a list and have the expression exclude those fields from the result, like this: Function HasDomain(f, fldname) {
return Domain(f, fldname) != Null;
}
Function GetAlias(f, fldname) {
var esquema = Schema(f);
var flds = esquema["fields"];
for (var i in flds) {
var fldinfo = flds[i];
if (fldinfo["name"]==fldname) {
return fldinfo["alias"];
}
}
return fldname;
}
Function GetFieldNames(f, excludeflds) {
var fldlst = [];
var esquema = Schema(f);
var flds = esquema["fields"];
for (var i in flds) {
var fldinfo = flds[i];
if (!Includes(excludeflds, fldinfo["name"])) {
Push(fldlst, fldinfo["name"]);
}
}
return fldlst;
}
var excludeflds = ['globalid', 'objectid'];
var flds = GetFieldNames($feature, excludeflds);
var info = [];
var atts = {};
for (var i in flds) {
var fldname = flds[i];
if (!IsEmpty($feature[fldname])) {
var alias = GetAlias($feature, fldname);
Push (info, {'fieldName': alias})
if (HasDomain($feature, fldname)) {
atts[alias] = DomainName($feature, fldname);
} else {
atts[alias] = $feature[fldname];
}
}
}
return {
type: 'fields',
title: 'My Title',
description : 'My description',
fieldInfos: info,
attributes : atts
}
... View more
03-18-2022
04:47 PM
|
0
|
0
|
32984
|
|
DOC
|
Hola Carlos, Que pena por la demora en mi respuesta. Interesante el caso que planteas. Primero que todo, es importante entender que llevar los datos CAD al UN sin corrección, resulta en algo visual pero no funcional. Es decir, no va ser posible crear subredes y por lo tanto no será posible realizar los traces, generar diagramas y aprovechar todos los beneficios que ofrece el UN. Contar con 2 versiones de la misma red es algo que no es recomendado. La buena práctica va muy enfocado a contar con un solo repositorio centralizada que representa "a single source of truth" (una sola verdad). Gestionar 2 versiones a la vez es doble trabajo. Tratar de montar 2 versiones en la misma UN no es posible, porque estarán usando el mismo dominio con los mismos featureclasses. Es posible convertir los datos CAD y gestionarlos en un Featuredataset distinta en la misma EGDB y establecer relationship classes entre ellos, pero realmente no veo el beneficio en hacer esto. Si los datos (la geometría) más exactos están representados en los datos CAD recomiendo hacer el esfuerzo de corregir la conectividad y usarlos para la migración al UN y combinarlos con los datos atributivos almacenado en GIS. Lo importante en este trayecto es establecer una visión de más largo plazo, ¿qué quiero lograr con la migración al UN?, ¿hasta dónde quiero llegar? La implementación de UN y ArcGIS realizada correctamente es un trayecto que puede (y debería) transformar el negocio, requiere re-imaginar los flujos de trabajo y roles que van a interactuar con el UN para sus flujos diarios de trabajo. Requiere también una gestión de cambio y no debe ser enfocado en replicar la situación actual sobre tecnología nuevo, es contar con una visión que permite tener un retorno máximo de la inversión. Lamento no brindar una solución sencilla al reto que estás planteando, pero es importante no empezar con la migración cuando los datos no se encuentren en un estado que permite tener éxito.
... View more
03-11-2022
06:08 AM
|
0
|
0
|
3600
|
|
DOC
|
Hola @CarlosSalguero_Hoffmann , En el momento de manejar múltiples dominios (ejemplo telco y energía) en un solo Utility Network, solamente vamos a contar con una red estructural. Esto nos permite gestionar un poste una sola vez, aunque sea utilizado por tanto la red de distribución eléctrica (por ejemplo para colgar un transformador) y por la red de telecomunicaciones (por ejemplo colgar una reserva de cables). En el Utility Network por el tema de conectividad de adjuntos el poste está conectado tanto al transformador como a la reserva de cables y de esta manera existe una relación. También el tema de reglas de atributos nos permite actualizar información en un dominio cuando hay un cambio en otro dominio (si existe un caso para justificar el cambio). ¿Es posible explicar un poco más que relaciones quiere establecer entre los dominios?
... View more
03-07-2022
01:37 PM
|
0
|
0
|
3628
|
|
POST
|
Hi @VanessaSimps , You can use the Text function to format the date the way you want. For an example see: https://community.esri.com/t5/arcgis-online-questions/arcade-date-function-for-expression-in-popup/td-p/79896 and the documentation can be found here: https://developers.arcgis.com/arcade/function-reference/text_functions/#text
... View more
03-07-2022
01:26 PM
|
0
|
0
|
3874
|
|
POST
|
Hi @DavidColey One way to go is to get the code a translate it to the description making use of the domain function. You can use something like the example below to get a dictionary of the domain and use that dictionary to translate the description based on the code. function GetDomainDct(lay, fldname) {
var dom = Domain(lay, fldname);
var cvs = dom["codedValues"];
var dct = {};
for (var i in cvs) {
var cv = cvs[i];
dct[cv["code"]] = cv["name"];
}
return dct;
}
... View more
03-07-2022
01:22 PM
|
0
|
2
|
1621
|
|
POST
|
Hi @jcarlson , There is something additional you need to do in order to create a valid featureset containing dates. The date has to be translated to a UNIX timestamp. In the post below you can see an example: https://community.esri.com/t5/developers-questions/arcade-dictionary-to-featureset/td-p/1047117
... View more
02-25-2022
11:46 AM
|
0
|
0
|
2458
|
|
POST
|
Hi @jcarlson , When it comes to changes in the web map I think Enterprise is a bit behind ArcGIS Online. It should come to Enterprise soon and can't wait to see some cool stuff with that. Keep up the good work!
... View more
02-24-2022
02:28 PM
|
0
|
1
|
1392
|
|
POST
|
Hi @RaenaDeMaris , You would probably end up doing something like: var expr1 = 'Include the result of expr1 here' // {expression/expr1}
var expr2 = 'Include the result of expr2 here' // {expression/expr2}
var expr8 = 'Include the result of expr8 here' // {expression/expr8}
var expr9 = 'Include the result of expr9 here' // {expression/expr9}
var html = '<div style="background-color:#' + expr8 + ';padding:5px;">';
html += TextFormatting.NewLine + '<span style="color:#' + expr9 + ';">';
html += TextFormatting.NewLine + '<strong>' + $feature.CatDescrip + ': ' + $feature.Organization + '</strong>';
html += TextFormatting.NewLine + '</span></div>';
html += TextFormatting.NewLine + '<span style="' + expr1 + '">';
html += TextFormatting.NewLine + '<br />' + $feature.VictoryTitle + '<br />';
html += TextFormatting.NewLine + '</span><i><b><font color="#46C8F3"><br />' + $feature.Pop + ' benefitted from the victory!</font></b>';
html += TextFormatting.NewLine + '<br /></i>';
html += TextFormatting.NewLine + '<span style="display:' + expr2 + '"><br />' + $feature.VictDescrip + '<br /> </span>';
html += TextFormatting.NewLine + '<br />';
if (!IsEmpty($feature.Embeds)) {
html += TextFormatting.NewLine + '<span><a href="' + $feature.Embeds + '" target="_blank">Visit the Victory' + "'s Media Page</a></span>";
html += TextFormatting.NewLine + '<br />';
}
if (!IsEmpty($feature.Link1)) {
html += TextFormatting.NewLine + '<span><a href="' + $feature.Link1 + '" target="_blank">Learn More About the Victory</a></span>';
html += TextFormatting.NewLine + '<br />';
}
html += TextFormatting.NewLine + '<a href="' + $feature.Link2 + '" target="_blank">Go to Waterkeeper Website</a>';
return {'type': "text", 'text': html};
... View more
02-23-2022
04:39 PM
|
1
|
1
|
3494
|
|
POST
|
Hi @RaenaDeMaris , When you add an Arcade content element, the idea is that you can create HTML. Now I haven't checked the support for every available HTML, however, if you can share the entire Arcade expression you are using I can have a look. Edit: In order to avoid that you have to create a table and hide elements from that table manually in the HTML output, you could have a look at the Field Maps application. This may sound strange, but the idea is that this application allows you to hide fields conditionally and that is stored in the json definition of the map and the new map viewer is able to handle this. However, if you are planning the use the web map in for instance a dashboard or an instant app, not all other applications have support for this information in the json.
... View more
02-23-2022
03:22 PM
|
0
|
3
|
2109
|
|
POST
|
Hi @RaenaDeMaris and @jcarlson , If I can chime in... there is a way to create HTML in the pop-up of the new map viewer. The way to do this is not to create an expression that appears as a "virtual field" (red rectangle below), but to add an Arcade content element (green rectangles below): This way you can generate HTML and it will appear in the pop-up, like this example below: You can use different styles, create lists, include multiple links stored in related data, etc...
... View more
02-23-2022
02:45 PM
|
1
|
8
|
2112
|
|
POST
|
Hi @AhmedElagroudy , See my answer at your other post: https://community.esri.com/t5/arcgis-pro-questions/arcade-error-intersection-in-the-same-layer/m-p/1145175
... View more
02-23-2022
02:28 PM
|
0
|
0
|
673
|
| Title | Kudos | Posted |
|---|---|---|
| 6 | 12-20-2019 08:41 AM | |
| 1 | 01-21-2020 07:21 AM | |
| 2 | 01-30-2020 12:46 PM | |
| 1 | 05-30-2019 08:24 AM | |
| 1 | 05-29-2019 02:45 PM |
| Online Status |
Offline
|
| Date Last Visited |
2 weeks ago
|