ArcGIS Pro SDK 2.9中MapView无AddOverlay方法的技术求助
ArcGIS Pro 2.9插件开发:无法访问MapView.AddOverlay方法的解决方案
问题描述
我正在开发ArcGIS Pro 2.9插件,想要在活跃MapView上添加叠加图形。根据ArcGIS Pro SDK文档,MapView类存在如下静态AddOverlay方法:
public static IDisposable AddOverlay( MapView mapView, Geometry geometry, CIMSymbolReference symbol, double referenceScale, double showThrough )
文档给出的示例代码如下:
mapView.AddOverlay(point, SymbolFactory.Instance.ConstructPointSymbol( ColorFactory.Instance.RedRGB, 30.0, SimpleMarkerStyle.Star).MakeSymbolReference()); });
但在开发环境中,通过.运算符查看MapView实例对象时,找不到该AddOverlay方法,仅能看到AddOverlayControl方法,请教如何访问此方法?
解决方案
问题核心是混淆了静态方法与实例方法的调用逻辑:
AddOverlay是MapView类的静态方法,不能通过MapView的实例对象(比如代码中的mapView变量)调用,必须直接通过MapView类本身调用。- 文档示例存在表述错误,正确调用需要将当前活跃的MapView实例作为第一个参数传入。
修正后的调用示例
// 获取当前活跃的MapView实例 var activeMapView = MapView.Active; if (activeMapView == null) return; // 构造点符号 var pointSymbol = SymbolFactory.Instance.ConstructPointSymbol( ColorFactory.Instance.RedRGB, 30.0, SimpleMarkerStyle.Star).MakeSymbolReference(); // 调用静态AddOverlay方法添加叠加图形 MapView.AddOverlay(activeMapView, point, pointSymbol);
额外注意事项
- 确保已引用正确的ArcGIS Pro SDK程序集(
ArcGIS.Core.dll、ArcGIS.Desktop.Mapping.dll等),并在代码顶部添加对应命名空间:using ArcGIS.Core.Geometry; using ArcGIS.Desktop.Mapping; using ArcGIS.Core.CIM; - 若需使用带参考比例尺或穿透度参数的重载版本,补充对应参数即可:
MapView.AddOverlay(activeMapView, point, pointSymbol, 10000.0, 0.5);
内容的提问来源于stack exchange,提问作者For Comment
相关产品推荐
相关产品推荐

