时间:2016-1-18 作者:悬浮的青春 分类: gis二次开发
底图图层是10之后新增的图层类型。底图图层在用户拖拽鼠标过程中不断刷新的图层。不像一般图层。在鼠标按下拖动过程中白色的部分不会自动刷新。
BasemapLayer以IGroupLayer的方式存在,在许多方面的表现也和GroupLayer相同。 BasemapLayer利用了高性能多线程绘图引擎,可以显著提高你的地图的显示速度和响应能力。
下面直接贴部分关键代码。。。
以下代码示例显示了如何创建一个底图图层并把他加入地图。
[C#]
private void CreateBasemapLayerAndAddLayerToIt(IMap map, ILayer layer)
{
IBasemapLayer basemapLayer = new BasemapLayerClass();
IGroupLayer basemapGroupLayer = basemapLayer as IGroupLayer;
basemapGroupLayer.Add(layer);
basemapGroupLayer.Name = "Basemap Content";
map.AddLayer((ILayer)basemapLayer);
}
以下代码示例显示了如何访问底图图层的子图层以及子图层更新如何通知底图图层。
private void UpdateBasemapSublayerAndNotify(IBasemapLayer basemapLayer, IMap map) { ICompositeLayer basemapCompositeLayer = basemapLayer as ICompositeLayer; IBasemapSubLayer basemapSubLayer = basemapCompositeLayer.get_Layer(0)as IBasemapSubLayer; ILayer innerLayer = basemapSubLayer.Layer; IFeatureLayer featureLayer = innerLayer as IFeatureLayer; if (featureLayer != null) { IFeatureLayerDefinition featureLayerDef = featureLayer as IFeatureLayerDefinition; featureLayerDef.DefinitionExpression = ""; } //When performing operations against the wrapped layer that change properties, you must //notify the basemaplayer so the display cache can be recreated if necessary. basemapLayer.NotifyLayerChanged(basemapSubLayer as ILayer, esriLayerEventHint.esriLayerEventHintProperties, null); IActiveView activeView = map as IActiveView; activeView.PartialRefresh(esriViewDrawPhase.esriViewGeography, basemapLayer as object, null); }
完毕。
标签: arcgis二次开发