在mapimagelayer上启用特征选择

138
4
跳到解决方案
12-20-2022凌晨03:20
Aeseir
通过
偶然的因素

我正在从MapServer中提取数据,现在我希望能够与每一层上的功能进行交互,以启用功能的弹出。

到目前为止,我的非常简单的代码是这样的:

const mapLayer = new MapImageLayer({url: e.l l,不透明度:0.5,});视图? .map.add (mapLayer);

有没有办法让每个图层都能弹出模板?或者在默认情况下自动转换为特征层?

0荣誉
2解决方案

接受的解决方案
UndralBatsukh
通过 亚博搜索yabovip28点com
亚博搜索yabovip28点com
0荣誉
Aeseir
通过
偶然的因素

这将工作时,你有层,但在我的情况下,我没有,它可以是许多或1。

最后我是这样解决的。

mapServerLayers.loadAll().then(() => mapserverlayers . allsubblayer . foreach ((e) => e. popuptemplate = e. createpopuptemplate ({visibleFieldNames: viewFields})));

在原帖子中查看解决方案

0荣誉
4回复
UndralBatsukh
通过 亚博搜索yabovip28点com
亚博搜索yabovip28点com
0荣誉
Aeseir
通过
偶然的因素

我以前看到过,但是在那种情况下,你必须提供子层的id来应用它。

在我的例子中,子层数在1…N之间。它们都有共同的数据,所以我想把它应用到所有的层。

你会如何应对这个挑战?

0荣誉
UndralBatsukh
通过 亚博搜索yabovip28点com
亚博搜索yabovip28点com

一旦MapImageLayer被加载到MapView中,你就可以循环遍历子层,如下所示:

const popupTemplate = {title: "公共标题",content: "公共内容"};view.whenLayerView(layer).then(() => {layer. subblayers。forEach((子层)=>(子层。popupTemplate = popupTemplate));});
0荣誉
Aeseir
通过
偶然的因素

这将工作时,你有层,但在我的情况下,我没有,它可以是许多或1。

最后我是这样解决的。

mapServerLayers.loadAll().then(() => mapserverlayers . allsubblayer . foreach ((e) => e. popuptemplate = e. createpopuptemplate ({visibleFieldNames: viewFields})));
0荣誉