ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ArcGIS Server发布本地瓦片

2022-03-27 11:31:47  阅读:337  来源: 互联网

标签:缓存 对话框 Server ArcGIS 文件夹 瓦片 所示 Data


本文的适用情况:

假设已经拿到了打包好的瓦片数据并且拷贝到了服务器硬盘目录下,目的是利用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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有