比方说我在一个地图上画了几个点(Element),现在我想把这些点的坐标存储起来。
现在一个想法是将它们转化为点要素并生成一个FeatureLayer,该如何实现呢?
------解决思路----------------------
我以前做过的添加要素到图层,应该可以参考
public bool AddFeatureToLayer(string sLayerName, string sFeatureName, IPoint point, IMap m_map)
{
//判断图层名、要素名、坐标、地图是否为空,否则返回false
if (sLayerName == ""
------解决思路----------------------
sFeatureName == ""
------解决思路----------------------
point == null
------解决思路----------------------
m_map == null)
{
return false;
}
//遍历图层,选择与指定名称相同图层
ILayer layer = null;
for (int i = 0; i < m_map.LayerCount; i++)
{
layer = m_map.get_Layer(i);
if (layer.Name == sLayerName)
{
break;
}
layer = null;
}
//判断图层是否获取成功
if (layer == null)
{
return false;
}
//通过IFeatureLayer接口访问获取到的图层,并进一步获取要素类
IFeatureLayer featureLayer = layer as IFeatureLayer;
IFeatureClass featureClass = featureLayer.FeatureClass;
//通过IFeature接口访问要素类并创建新要素,判断是否成功
IFeature feature = featureClass.CreateFeature();
if (feature == null)
{
return false;
}
//对新创建要素编辑,将坐标、属性值设置,后保存该要素,判断是否成功
feature.Shape = point;
int index = feature.Fields.FindField("工厂名称");
feature.set_Value(index, sFeatureName);
feature.Store();
if (feature == null)
{
return false;
}
//将地图转化为活动视图,判断是否成功
IActiveView activeView = m_map as IActiveView;
if (activeView == null)
{
return false;
}
//活动试视图刷新
activeView.Refresh();
return true;
}