我试着写一个Arcade表达式,做以下事情。如果一条线在另一个多边形层的边界内,则该线从边界中获取名称属性,但仅当该线是某种类型时。到目前为止,我们已经完成了第一部分。
var OLT = FeatureSetByName($datastore, "Proposed_OLT_LCP_Boundaries",["cab_id"], true) var intersectLayer = Intersects(OLT, Geometry($feature)) if (Count(intersectLayer) > 0) {var layer = First(intersectLayer);返回layer.cab_id;} else{返回null;}
但是,如果intersectsLayer是某种类型的,我正在努力处理只拉入cab_id的部分。任何关于这方面的意见都是非常感谢的。
解决了!进入解决方案。
var OLT = FeatureSetByName($datastore, "Proposed_OLT_LCP_Boundaries",["cab_id"], true) var intersectLayer = Intersects(OLT, Geometry($feature)) if (Count(intersectLayer) > 0 && ($feature. var)cabletype == 'F1' || $feature。cabletype == 'F2') {var layer = First(intersectLayer);返回layer.cab_id;} else{返回null;}
是的,我们有一个type字段,它有不同的标签。我们只希望这个函数适用于图层中特定类型的线条。这是我想做的(虽然到目前为止不正确……)
var OLT = FeatureSetByName($datastore, "Proposed_OLT_LCP_Boundaries",["cab_id"], true) var intersectLayer = Intersects(OLT, Geometry($feature)) if (Count(intersectLayer) > 0) and ($feature. net)cabletype == 'F1'或'F2') {var layer = First(intersectlayer);返回layer.cab_id;} else{返回null;}
var OLT = FeatureSetByName($datastore, "Proposed_OLT_LCP_Boundaries",["cab_id"], true) var intersectLayer = Intersects(OLT, Geometry($feature)) if (Count(intersectLayer) > 0 && ($feature. var)cabletype == 'F1' || $feature。cabletype == 'F2') {var layer = First(intersectLayer);返回layer.cab_id;} else{返回null;}