一、生成sld文件
a、使用工具ArcGIS_SLD_Converter将ArcMap里面图层导出为sld文件
1.在http://arcmap2sld.i3mainz.hs-mainz.de/ArcMap2SLDConverter_Eng.htm 下载ArcMap2SLD
打开LUT_sld_mapping_file.xml文件(上传文件中已经修改)
修改文件<LUT>——><sldConfiguration>——><xmlEncoding>ISO-8859-1为GB2312
打开LUT_sld_WorldMap_mapping_file.xml文件
修改文件<LUT>——><sldConfiguration>——><xmlEncoding>ISO-8859-1为GB2312
4.arcmap打开一个mxd文档
5.运行ArcGIS_SLD_Converter.exe 设置每个图层保存成单独的sld文件 如图:
使用上图是每一个图层导出一个sld文件,选择Alle/All Layers 一个地图所有图层生成一个sld文件
6.点击save SLD to左下角的SLD按钮 会自动读取当前arcmap中图层 读取完成后回弹出选择sld保存路径的对话框
7.按钮选择SLD保存文件夹 保存即可。
b、自己按照sld文件规范进行手动编写
二、ArcGIS Server中wms服务使用SLD文件
参考 http://resources.arcgis.com/zh-cn/help/main/10.2/index.html#/na/015400000388000000/
1、发布服务,启动wms功能,
2、选中wms功能,找到“SLD 路径或 URL” 设置sld文件路径或者url
这里注意,如果使用工具“ArcGIS_SLD_Converter”导出的SLD文件,里面默认图层名称是显示的名称,要使用该sld文件需要选中“使用地图文档中的图层名称”,不然设置不起作用。
三、mapbox使用wms服务
1、发布wms服务时候没有设置sld文件,访问时没有设置sld参数,显示样式默认为发布地图时候的样式。
2、发布时候设置了sld文件,访问时没有设置sld参数,设置layers和styles的时候如果按照sld文件里面设置,将按照sld里面显示,如果不设置styles或者设置为default 将按照发布时候地图默认样式显示
3、发布时候设置了sld文件,访问时设置sld参数,styles里面设置为default 将按照发布时候默认显示,如果设置为发布时候配置的sld文件就按发布时sld文件显示样式显示,如果按照请求参数sld文件里面设置,着将按照参数sld配置的显示。
四、wms调试
可以直接通过浏览器来查看wms获取到的数据,模板样式地址如下
通过参数指定sld文件来设置显示样式
http://localhost:6080/arcgis/services/mapbox_wms/MapServer/WMSServer?version=1.3.0&request=getmap&BGCOLOR=ffffff&layers=0&styles=style2&crs=EPSG:3857&bbox=11890620.557070304,3076475.7329359166,11890658.775584444,3076513.9514500573&width=512&height=512&format=image/png&TRANSPARENT=TRUE&sld=http://120.77.2.35:8090/lw_base_mapbox.sld
通过发布时候指定的sld文件设置显示样式
http://localhost:6080/arcgis/services/mapbox_wms/MapServer/WMSServer?version=1.3.0&request=getmap&BGCOLOR=ffffff&layers=0&styles=style2&crs=EPSG:3857&bbox=11890620.557070304,3076475.7329359166,11890658.775584444,3076513.9514500573&width=512&height=512&format=image/png&TRANSPARENT=TRUE
通过发布时候地图样式设置显示样式
http://localhost:6080/arcgis/services/mapbox_wms/MapServer/WMSServer?version=1.3.0&request=getmap&BGCOLOR=ffffff&layers=0&styles=&crs=EPSG:3857&bbox=11890620.557070304,3076475.7329359166,11890658.775584444,3076513.9514500573&width=512&height=512&format=image/png&TRANSPARENT=TRUE
NamedLayer>UserStyle>Name内容是显示样式的名称