其他分享
首页 > 其他分享> > ArcGIS Server发布本地瓦片

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