你好!我试图使用街机显示文本在地图查看器弹出。当我在新的街机编辑器中测试代码时,它完全符合预期:
var lines = FeatureSetById($map, /*下水道线路*/ "184e8d5e05b-layer-7");var bufferArea = Buffer($feature, 10, 'feet');var intersectedLine = First(Intersects(lines, bufferArea));var facilityId = ";if(intersectedLine != null){facilityId = intersectedLine. facilityId;} var cctvYears = FeatureSetById($map, /* SsTelevisedMains */ "184e8d5e05b-layer-8", ['LINETOPOINT', 'INSPECTION_DATE']);var filteredYears = Filter(cctvYears, "SEGMENT_ID = '" + facilityId + "'");var sortedYears = OrderBy(filteredYears, 'INSPECTION_DATE desc');var lastYear = First(sortedYears);var缺陷= FeatureSetByName($map, "SsCCTVConditions"); var LineToPoint = lastYear.LINETOPOINT; var filteredDefects = Filter(defects, "LINETOPOINT = '" + LineToPoint + "'"); var topDefect = Filter(filteredDefects, "Grade >= 3"); var allDefects = ''; for(var d in topDefect){ allDefects = allDefects + "(" + d.Grade + ")" + " Type: " + d.PACP_CODE + " Distance: " + Round(d.DISTANCE, 2) + "\n"; } return { type : 'text', text : allDefects //this property supports html tags }
但是,弹出窗口中没有显示任何内容:
根据我的配置,我假设表达式应该显示在Fields List的上方和Title的下方。我是否在弹出框中错误地实现了表达式?我可以确认相同的表达式在字段地图和地图查看器中新实现的表单中工作。
我对街机也不是很熟悉,但我想知道你是要返回一个功能集还是一个功能?我也遇到过类似的麻烦。
我问这个问题是因为也许你需要先将代码添加到“属性表达式”和弹出窗口中的“Arcade”中,然后使用弹出窗口中的文本类型,在那里添加表达式{expression/expr0}等。不管它是在你的字段之前还是之后。
但我可能完全错了!
我在创建自定义图表时使用街机选项!你会注意到在“+Add Content Arcade”版本中,有一些自定义图表模板可用,而这些模板在属性表达式中是不可用的。属性表达式只在尝试创建额外的自定义时有用,动态地,属性,作为一个单独的“特性”。添加内容街机的方式,创造“功能集”……这是定制图形所需要的。不能在属性表达式中创建“特性集”。
呵呵,明白了!好吧,我还没有尝试过富文本!但是这个Esri博客似乎把var放在${variable name}里面,而看起来你只是把allDefects放在里面。返回${allDefects}有区别吗?