# 地图符号制作与使用
最近工作上需要根据设计规范,自定义地图符号,进行地图编辑后,通过geoserver发布服务。
在查阅了相关资料和文献后,归纳出了一套完整的流程,过程比较繁琐,需要用到多个软件,踩了许多坑,因此通过本篇文章进行简要记录。
# AutoCAD制作符号
首先在CAD中根据设计图纸,绘制地图符号。
这一步需要导出带透明通道的PNG图片,我在网上暂时没有找到CAD直接导出的方式。
这里有个小技巧,在CAD中选中矢量图形,复制粘贴在PPT中,可另存为PNG格式图片,并可裁减调整尺寸。
# FontCreator制作字体,存储符号
在FontCreator中新建字体工程,插入>字符>Unicode码区选择 Basic Latin
也可以直接覆盖Charaters/Uppercase Letters下的字符,更换为项目需要的符号。
加载所有符号之后,导出为test.ttf字体文件。右键test.ttf字体文件,选择安装。
# ArcGIS制作符号库文件
在自定义>样式管理器中 新建样式>新建标记符号,选择字符标记符号,字体选择test,子集选择Basic Latin,可看到所需的符号。配置尺寸、颜色、偏移后保存。
在地图添加点格式的shape图层,使用自定义符号标注,将图层导出为lyr文件,同时保存shape文件。
# QGIS插件将lyr转为xml格式
首先下载QGIS插件lyr2sld (opens new window),在插件中通过zip安装
使用QGIS插件将lyr转为xml格式,将xml拖入QGIS自动保存为样式,打开shape文件,替换为自定义符号,然后将图层样式导出为sld格式。
这里同时要保留第2步生成的ttf字体文件
# GeoServer发布地图服务
1.首先在Geoserver中添加数据源和图层
2.然后在样式中添加自定义样式,使用第4步生成的sld文件。这里的xml文件中引用到了字体文件,直接发布服务,不会显示图标。
3.将自定义字体添加到Geoserver安装时指定的jre/lib/Fonts目录下,例如本地是E:\Program Files x86\Java\Jre-8u351\lib\fonts,安装字体,并重启geoserver
Geoserver默认指定的Java版本可以在geoserver/bin目录下的startup.bat文件中查看
rem JAVA_HOME not defined
if "%JAVA_HOME%" == "" goto trySystemJava
rem JAVA_HOME defined incorrectly
if not exist "%JAVA_HOME%\bin\java.exe" goto badJava
rem GEOSERVER_HOME not defined
if "%GEOSERVER_HOME%" == "" goto noHome
rem GEOSERVER_HOME defined incorrectly
if not exist "%GEOSERVER_HOME%\bin\startup.bat" goto badHome
可知需配置JAVA_HOME或GEOSERVER_HOME环境变量
4.在发布地图服务时,采用自定义样式,保存
在图层预览中找到发布的图层,选择openlayers即可查看,大功告成!