4X去掉了之前的ArcGISDynamicMapServiceLayer,替换的MapImageLayer更能更强大一些,但是MapImageLayer没有图形的鼠标交互,对需要添加图形交互的MapServer图层需要用FeatureLayer加到map对象上。
// 包含图层url等信息的对象数组
layerList.reverse().forEach((ele: any) => {
let layer;
if (ele.type === 'feature') {
// arcgisFuns是自己封装的arcGIS组件对象 等同于new FeatureLayer
layer = arcgisFuns.FeatureLayer({
// 自己封装的一个拼接图层url的方法
// 示例:http://ip:6080/arcgis/rest/services/XXX/${ele.name}/MapServer
url: layerConfig.getServerPath(ele.name, 'MapServer') + '/0',
id: ele.name,
visible: false,
outFields: ['*'], // 这里需要自行设置输出字段,默认不全
});
} else {
layer = arcgisFuns.MapImageLayer({
url: layerConfig.getServerPath(ele.name, 'MapServer'),
id: ele.name,
visible: false,
});
}
_t.view.map.add(layer);
});
然后是封装的一个获取鼠标点击图层内graphic的方法。GraphicsLayer和FeatureLaye

博客介绍了如何在ArcGIS中使用MapImageLayer替代DynamicMapServiceLayer,并通过FeatureLayer实现图层的鼠标交互。文章详细阐述了如何添加图层,以及封装获取点击和悬停图形对象的方法,提供了示例代码供参考。
最低0.47元/天 解锁文章
1138





