拆分和获得价值与街机

3792
38
跳到解决方案
06-11-2021 08:06 am
KARIMLABIDI
通过
偶然的因素

你好,

在Arcgis Portal上,我想用Arcade和HTML来表示我的公交线路。我想知道电话号码,然后把颜色和数字联系起来。

我的值就像我的停车功能:1号线,2号线,……,测试56。

我的第一个问题是只得到数字。我可以分割字段,但我不知道如何得到值。

有人认为这是可能的还是太复杂了?与国际金融协会也许?

我知道这个博客,但我的问题有点不同。https://www.esri.com/arcgis-blog/products/arcgis-online/mapping/combining-arcade-and-html-for-a-real..。


谢谢你!

0荣誉
1解决方案

接受的解决方案
JohannesLindner
常规赛MVP

很高兴听你这么说,很高兴能帮上忙。

请将答案标记为解决方案,这样它就会显示在问题的顶部。


祝你有愉快的一天!
约翰内斯

在原帖子中查看解决方案

0荣誉
38个回复
jcarlson
通过 MVP荣誉贡献者
MVP荣誉贡献者

你的例子也是如此。”1号线,2号线,……,测试56“就为了一分?”当有多个值时,您如何设想显示一个停止?

——乔什·卡尔森
肯德尔县GIS
0荣誉
KARIMLABIDI
通过
偶然的因素

如果我可以分割字段并获得每个值,之后可能与Iif (Left($feature.field),4) == "Test"), "#color", Iif ((Left($feature.field),4) == "Line"), "#color2"),…

我不知道这是否可能。

0荣誉
jcarlson
通过 MVP荣誉贡献者
MVP荣誉贡献者

问题是,你只能输出一种颜色。你的弹出窗口可以有某种元素,可能是一个形状或一行文本,但你只能定义它的颜色一次。

如果希望每行有一个元素与stop相关联,则需要某种方法分别标识每行。这意味着,每一行都需要自己的表达式。

你可以试一试在一个表达式中创建一个行列表,但是你会发现HTML标签必须在弹出窗口中建立,在表达式中。当你尝试在表达式本身中使用HTML时,你会得到这个:

jcarlson_0 - 1623432144347. - png

<……>项被视为原始文本,而不是HTML。

对于每个可能的行,你需要在弹出窗口中有某种占位符。根据可能的行数,这可能导致一个相当不优雅的弹出窗口。

这可能远远超出了您的问题范围,但是您对数据有多大的控制?是否有可能在车站和线路之间建立一个关系类?基于字符串的Lines列表似乎很难使用。

——乔什·卡尔森
肯德尔县GIS
0荣誉
KARIMLABIDI
通过
偶然的因素

你好,乔什,谢谢你的回答。

在车站和线路之间仍然有一个关系类。你觉得这些东西怎么样?

0荣誉
JohannesLindner
常规赛MVP

正如Josh所说,如果你想在弹出窗口中以不同的方式格式化这些行,你必须为每一行创建一个表达式。

// expression/show_line_1 //如果Line field中没有“Line 1”则返回“none”//如果Line field中没有“Line 1”则返回“block”var result = Find("Line 1", $feature.LineField) if(result == -1) {return "none"} return "block"

在弹出式配置中,切换到HTML源代码。

< span style="font- family:宋体;">此站的行:

Line 1
Line 2

祝你有愉快的一天!
约翰内斯
KARIMLABIDI
通过
偶然的因素

嗨,约翰内斯,它的工作就像一个魅力!

karimlabidi_0 - 1624220152110. - png

但是我有一个问题与查找函数:它找到我的每一个单词开头的B或C,我们在图像中看到。即使当我的行调用1或11时,它也会找到两者。

karimlabidi_1 - 1624220282004. - png

我怎么解决这个小问题呢?我已经尝试了值的长度或其他字段的其他值,但我没有成功。

如果你有什么想法,那就太好了!谢谢你!

0荣誉
JohannesLindner
常规赛MVP

如果你的行总是由相同的字符(“/”在你的图像)分开,你可以使用这个:

// show_line_1 var lines = Split($feature. conf)LineField, "/")返回IIF(包含(lines, "Line 1"), "block", "none")

如果Includes还没有提供给你(它是最新的街机版本),它会有点麻烦:

// show_line_1 var lines = Split($feature. conf)LineField, "/") for(var i in lines) {if(lines[i] == "Line 1") {return "block"}} return "none"

祝你有愉快的一天!
约翰内斯
PSGeo
通过
新贡献者III

你好,

真正的好。我在找这个。我想知道是否可以根据字段属性添加超链接。我的问题是,我想显示一个别名的超链接。但装备领域可以有一个以上的设备(因此我使用你的解决方案为分裂)。

我希望你能理解我的难处。

干杯

佩德罗

// show_line_1 var lines = Split($feature. conf)装备,“,”)for(var i in lines) {if(lines[i] == "car"){返回"https://luxe。Digital /lifestyle/cars/fastest cars/"}}返回"none"

0荣誉
JohannesLindner
常规赛MVP

因此,如果“car”在您的设备字段中,您总是希望返回该链接,但使用别名“这些是最快的汽车”?在这种情况下,你会把链接放到弹出窗口的HTML中,并用表达式显示或隐藏它:

< a href = " https://luxe。这些是最快的车
< a href = " https://..。这些是最大的游轮
// show_car var lines = Split($feature. txt)装备,",")for(var i in lines) {if(lines[i] == "car") {return "block"}} return "none"


祝你有愉快的一天!
约翰内斯