/// <summary> /// 缩放至图层 /// </summary> /// <param name="axMapControl">地图控件</param> /// <param name="featureLayerName">要素图层名称,该图层应当存在于地图控件中</param> public static void MapZoomToLayer(this AxMapControl axMapControl, string featureLayerName) { var featureLayer = axMapControl.GetFeatureLayer(featureLayerName); if (featureLayer == null) { throw new Exception($"在地图控件中,找不到名为“{featureLayerName}的要素图层”"); } MapZoomTo(axMapControl.ActiveView, featureLayer.AreaOfInterest); }
/// <summary> /// 地图缩放至指定要素并闪烁 /// </summary> /// <param name="axMapControl">地图控件</param> /// <param name="featureLayerName">要素图层名称,该图层应当存在于地图控件中</param> /// <param name="whereClause">筛选要素的where条件</param> /// <param name="nFlashes">闪烁次数</param> public static void MapZoomToAndFlash(this AxMapControl axMapControl, string featureLayerName, string whereClause, int nFlashes = 2) { var featureLayer = axMapControl.GetFeatureLayer(featureLayerName); if (featureLayer == null) { throw new Exception($"在地图控件中,找不到名为“{featureLayerName}的要素图层”"); } MapZoomToAndFlash(axMapControl, featureLayer, whereClause, nFlashes); }
/// <summary> /// 地图缩放至指定要素并闪烁 /// </summary> /// <param name="axMapControl">地图控件</param> /// <param name="featureLayerName">要素图层名称,该图层应当存在于地图控件中</param> /// <param name="whereClause">筛选要素的where条件</param> /// <param name="nFlashes">闪烁次数</param> public static void MapZoomToAndFlash(this AxMapControl axMapControl, string featureLayerName, int[] oids, int nFlashes = 2) { var featureLayer = axMapControl.GetFeatureLayer(featureLayerName); if (featureLayer == null) { throw new Exception($"在地图控件中,找不到名为“{featureLayerName}的要素图层”"); } var strOids = oids.Select(v => v.ToString()).Aggregate((a, b) => a + "," + b); var whereClause = $"{featureLayer.FeatureClass.OIDFieldName} In ({strOids})"; MapZoomToAndFlash(axMapControl, featureLayer, whereClause, nFlashes); }