第一步:定制Label
对于Feature图层,一般都有“Name”及“注记名”两个字段,对该图层对象的标注,一般采用“注记名”,如果没有该字段,则取值为“Name”,实现地图工程中注记的显示。
body.clientHeight)this.width=body.clientHeight" border=0>
图 1 未加Label工程示意图
body.clientHeight)this.width=body.clientHeight" border=0>
图 2 如何制作Label示意图
body.clientHeight)this.width=body.clientHeight" border=0>
图 3 加入Label工程示意图
具体步骤如上三图所示:
首先选中TOC中需要进行标注的图层(湖库),右键单击,在弹出的菜单中选择“Properties”;
在弹出的“Layer Properties”对话框中选择“Label”包,勾选“Label Feature in this layer”,并在下拉式列表中为“Label”选择合适的字段(注记名),确定即可。
第二步:Label2Annotation
具体步骤如下所示:
首先,运行Microsoft Access,在本机某一目录下新建一个名为“MyGDB.mdb”的Personal GeoDataBase,其表可为空;
然后,在ArcMap中右键单击图层,在弹出的菜单中选择“Convert Labels to Annotation…”;
之后,在创建Annotation的对话框中设定保存地址(MyGDB)及保存名“湖库Anno”;
在成功之后,可见工程文件中多了一个“湖库Anno”的图层,原“湖库”图层上的Label已被“湖库Anno”图层取代。
body.clientHeight)this.width=body.clientHeight" border=0>
图 4 Label2Annotation第一步
body.clientHeight)this.width=body.clientHeight" border=0>
图 5 Convert Label 2 Anno 选项框
(备注:该图中点击中部的“打开文件夹”按钮,会弹出图6,进行处理之后才能在点击下部的“Convert”按钮!!!)
body.clientHeight)this.width=body.clientHeight" border=0>
图 6 创建及保存Anno示意图
body.clientHeight)this.width=body.clientHeight" border=0>
图 7 创建Anno成功之后工程示意图
第三步:Save Annotation to SDE
如果需要实现网络数据访问,则需要将这些Annotation转至SDE中(借用ArcCatalog桌面软件),注意,Annotation的存储机制是采用基于点的存储,故而很像是一个Point Feature。
具体的转换步骤与一般的数据转换没什么区别,如下图所示:
body.clientHeight)this.width=body.clientHeight" border=0>
图 8 在ArcCatalog中将MyGDB的Anno转至SDE
body.clientHeight)this.width=body.clientHeight" border=0>
图 9 转至SDE的路径及文件名定义
body.clientHeight)this.width=body.clientHeight" border=0>
图 10 AnnotationTest出现在SDE库中
第四步:Apply Annotation
如果需要在地图工程中用到SDE中存储的Annotation注记,则只需在地图工程中加载SDE中的对应图层,然后稍做处理(注意:刚出来可能只是一些块状符号信息,并没有文字标注,不要急!!!前面曾提到,Annotation是基于点进行存储的,故而只需对该图层的“Porperties”进行一定的修改,注记一定会出来的!!!),就达到了预期的效果。
body.clientHeight)this.width=body.clientHeight" border=0>
图 11 从SDE中加载的Anno并没有显示出文字效果
body.clientHeight)this.width=body.clientHeight" border=0>
图 12 修改Anno的Properties
body.clientHeight)this.width=body.clientHeight" border=0>
图 13 修改Anno的Properties之后的工程效果
body.clientHeight)this.width=body.clientHeight" border=0>
图 14 修改Anno图层的Symbols
body.clientHeight)this.width=body.clientHeight" border=0>
图 15 一切搞定!!!
|
|
|