ArcGIS Server发布本地瓦片
作者:互联网
本文的适用情况:
假设已经拿到了打包好的瓦片数据并且拷贝到了服务器硬盘目录下,目的是利用arcgis server快速的发布地图服务,而不用再次切片或者构建缓存。
补充另注:千万注意如果arcgis已经汉化,下面图1中应该把第一层Layers文件夹名称修改为“图层”,不然它会又新建一个图层的文件夹然后又开始切片,那我们的目的就无从达到了。血和泪的教训,大家切切注意这一点!!!
背景介绍:
背景的话大家可以参考,有些地方大家不一定一样。具体我的项目背景是,从别人服务器上拷贝来了切片好的瓦片数据(数据格式如图1),解压后大概有15个G,因为太大了不能放在C盘,所以放在了D盘Data文件夹下。我们的想法就是直接使用这些数据,不再进行切片和增加缓存。
图1中第二层的Status.gdb文件夹可以直接删除。
图1:文件夹结构
Arcgis server版本:10.1
Arcgis server默认缓存路径:C:\arcgisserver\directories\arcgiscache
Arcgis server manager路径:http://localhost:6080/arcgis/manager/login.html(服务器本地打开)
http://\[IP-Adress\]:6080/arcgis/manager/login.html(外部访问)
在本文中瓦片数据的路径:D:\Data\tile 图1所示即为tile文件夹的结构
解决的问题主要是以下两个:
1.更改缓存目录,防止占用C盘空间
2.直接利用已有的瓦片数据,防止二次切片浪费时间和机器资源
具体步骤:
准备工作:
查看数据文件夹路径,将Conf.xml提前拷贝出来到外面文件夹D:\Data\Conf.xml。
1.打开两个配置文件(con.cdi和Conf.xml)大致查看信息,con.cdi文件描述的是瓦片的空间参考信息,Conf.xml文件描述的除空间参考信息外还有瓦片的详细信息。con.cdi文件部分如下代码段所示。
<?xml version="1.0" encoding="utf-8"?>
<EnvelopeN xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:typens="http://www.esri.com/schemas/ArcGIS/10.1" xsi:type="typens:EnvelopeN">
<XMin>-20037507.067161843</XMin>
<YMin>-20080143.559868</YMin>
<XMax>20037507.067161843</XMax>
<YMax>20080143.559867892</YMax>
<SpatialReference xsi:type="typens:ProjectedCoordinateSystem">
<WKT>PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3857]]</WKT>
<XOrigin>-22041257.77387803</XOrigin>
<YOrigin>-30241100</YOrigin>
<XYScale>144148035.89861274</XYScale>
<ZOrigin>-100000</ZOrigin>
<ZScale>10000</ZScale>
<MOrigin>-100000</MOrigin>
<MScale>10000</MScale>
<XYTolerance>0.001</XYTolerance>
<ZTolerance>0.001</ZTolerance>
<MTolerance>0.001</MTolerance>
<HighPrecision>true</HighPrecision>
<WKID>102100</WKID>
<LatestWKID>3857</LatestWKID>
</SpatialReference>
</EnvelopeN>
Conf.xml文件部分如下代码段所示:
<?xml version="1.0" encoding="utf-8"?>
<CacheInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:typens="http://www.esri.com/schemas/ArcGIS/10.1" xsi:type="typens:CacheInfo">
<TileCacheInfo xsi:type="typens:TileCacheInfo">
<SpatialReference xsi:type="typens:ProjectedCoordinateSystem">
<!-- 中间是空间参考信息,与con.cdi文件中相同,为了使文章简洁,这里就不展示了 -->
</SpatialReference>
<TileOrigin xsi:type="typens:PointN">
<X>-20037508.342787001</X>
<Y>20037508.342787001</Y>
</TileOrigin>
<TileCols>256</TileCols>
<TileRows>256</TileRows>
<DPI>96</DPI>
<PreciseDPI>96</PreciseDPI>
<LODInfos xsi:type="typens:ArrayOfLODInfo">
<LODInfo xsi:type="typens:LODInfo">
<LevelID>0</LevelID>
<Scale>591657527.591555</Scale>
<Resolution>156543.03392800014</Resolution>
</LODInfo>
<!-- 中间有其他层的信息,为了使文章简洁,这里就不展示了 -->
<LODInfo xsi:type="typens:LODInfo">
<LevelID>19</LevelID>
<Scale>1128.4971760000001</Scale>
<Resolution>0.29858214164761665</Resolution>
</LODInfo>
</LODInfos>
</TileCacheInfo>
<TileImageInfo xsi:type="typens:TileImageInfo">
<CacheTileFormat>JPEG</CacheTileFormat>
<CompressionQuality>75</CompressionQuality>
<Antialiasing>false</Antialiasing>
</TileImageInfo>
<CacheStorageInfo xsi:type="typens:CacheStorageInfo">
<StorageFormat>esriMapCacheStorageModeExploded</StorageFormat>
<PacketSize>128</PacketSize>
</CacheStorageInfo>
</CacheInfo>
2.打开ArcMap软件,执行操作:Add Data(菜单栏File --> Add Data --> Add Data),在弹出的选项框中找到并选择D:\Data\data\Layers加载瓦片数据。若数据能够正常加载,说明没什么问题,如果不行的话,根据报错解决问题或者查看步骤一中的两个文件有没有问题。完成后移除所有图层。
3.步骤二没问题后,打开ArcCatalog找个文件夹创建一个空的shapefile,操作如下:File --> New --> Shapefile。在弹出的对话框中,Feature Type选择Polygon,点击Edit按钮修改空间参考(如图2所示),这里需要根据步骤一中con.xml文件的参考系统来选择坐标系统和投影系统,本项目中的参考系统选择如图3所示。完成后点击ok就创建了一个空的名为testtile的shapefile了。注意此时shapefile的文件名称即为之后发布服务的图层名称,大家根据项目需要填写名称。
图2:完成输入后点击Edit
图3:由参考信息选择该坐标系统
4.在ArcMap中同步骤二执行操作Add Data,找到并打开步骤三中创建的shapefile,打开后点击保存按钮,将其保存为.mxd文件。文件命名为tile(此处的名字就是之后发布的瓦片服务的名字,但是要注意这个名字一定要和自己数据文件夹的名字保持一致,这样才能找到自己的切片文件而不会再次进行切片。所以我建议在所有需要命名的地方全都使用数据文件夹的名字)。完成后不要移除图层或者关闭项目,一会还有用。
5.进入arcgis server manager进行设置(网址在文章最上面),点击菜单栏“站点”,选择“GIS服务器”、“目录”,点击“添加目录”,在弹出对话框中,名称随便起一个,“类型”修改为缓存,位置写数据文件的上级目录,在本项目中为D:\Data,点击添加按钮。如下图图4所示。
图4:添加缓存目录
6.发布地图
在第四步ArcMap的基础上进行操作,发布地图服务,操作如下,点击菜单栏File --> Share As --> Service,在弹出对话框中选择"Publish a Service"后点击下一步,这是会弹出对话框如图5所示,默认选择下一步。
图5:选择连接并填写服务名称
在如图6所示的弹出对话框中,默认使用root文件夹就可以,因为这里是发布服务到某个文件夹,而不是设置缓存的位置,所以这里选择root目录是不会占用太多C盘空间的。
图6:选择发布服务到文件夹
在上图中点击continue后弹出Service Editor对话框,如图7所示,我们在此对话框中完成其他设置。
图7:Service Editor对话框
在此对话框中我们点击左侧的Caching目录,对话框内容如图8所示,我们在此界面中设置缓存。
图8:Caching界面
在Caching界面中,我们首先设置绘制服务的方式,从"Dynamically from the data"更改为"Using tiles from a cache",即从数据中动态绘制更改为直接使用缓存中的瓦片。然后"Tiling Scheme"就会变为可选了,我们此时将其从"ArcGIS Online/Bing Maps/Google Maps"更改为“A tiling scheme file”,即由这三家的更改为使用自己的切片方案。选择后会弹出一个"Load Tiling Scheme"的对话框要求我们选择自己的切片方案,这是我们选择之前提前拷贝出来的Conf.xml文件,在本项目中地址为D:\Data\Conf.xml。选择切片方案后可以发现下面的"Levels of Detail"界面变化了,说明这是加载了我们自己的切片方案。这时我们可以自由选择要发布的层级。然后修改最下方的瓦片创立方式,由"Build cache automatically when the service is publish"更改为“manually”,即由自动到手动,这一个地方非常关键,因为我们已有瓦片,如果再自动的话就会浪费资源,所以一定要选择手动。修改后的界面如图9所示。
图9:修改后的界面
下一步进入左侧caching目录下的Advanced Settings子目录,界面如图10所示。
图10:Caching Advanced Settings
在这里,我们修改Cache directory目录由原来的默认目录到我们再ArcGIS Manager中建立的缓存目录D:\Data,如图11所示。
图11:修改缓存目录
在之后我们点击顶部的Analyze分析按钮,若分析未报错,则可以publish服务了。
本文转自 https://blog.csdn.net/zxzfcsu/article/details/95204082?spm=1001.2014.3001.5502,如有侵权,请联系删除。
标签:缓存,对话框,Server,ArcGIS,文件夹,瓦片,所示,Data 来源: https://www.cnblogs.com/hustshu/p/16062246.html