ArcGIS进行缓存切片
介绍
大范围的影像数据数据量可能会有几个G甚至会更大,这种数据是不能直接加载到前台的,内存和网络也不支持。这时候就需要使用切片缓存。服务器会按照X、Y、Z,层级、行、列关系进行数据切片缓存在本地(png、jpeg格式等)。后台服务会按照前台传过来的可视域范围X、Y、Z进行查询并返回给前台。
这里我使用ArcGIS进行切片,这种切片是ESRI的标准。也是ArcGIS Server的切片格式。
这里可以看出ArcGIS切片是标准的层级-行-列结构。
切片格式
使用ArcMap行切片
切片步骤
这里我以影像图切片为例
加载数据
- 打开arcMap软件并添加一个影像图层
- 找到工具箱中的切片缓存工具。在数据管理工具下的切片缓存种
生成切片缓存方案
打开生成切片缓存切片方案工具
这里设置切片数据源、切片方案导出的地方、比例级数、高级设置等如图所示:
这里说明一下,比例使用的是天地图切片比例
01 147748799.2854173
02 73874399.64270863
04 36937199.82135432
05 18468599.91067716
06 9234299.955338579
07 4617149.97766929
08 2308574.988834645
09 1154287.494417322
10 577143.74720866128
11 288571.87360433064
12 144285.93680216532
13 72142.96840108266
14 36071.48420054133
15 18035.742100270665
16 9017.8710501353326
17 4508.9355250676663
18 2254.4677625338331
19 1127.233881266917
20 563.6169406334585
这个比例可以手动调整,根据你的需要来确定
这里要说明一下切片的数据格式有两种
- COMPACT(紧凑格式:bundle)
- EXPLODED(稀疏格式:png)
我们选用紧凑格式,使用紧凑格式可以节约存储空间
管理切片方案(进行切片)
选择之前的切片方案如图所示:
开始生成切片
完成切片
切片结果
紧凑格式
层级关系如图所示
离散格式
层级关系如图所示
注意
-
离散格式会比紧凑格式多一个层文件夹
-
这种切片方式和直接发布到arcgis server种生成的切片格式一致
问题
GeoWebCache发布切片
问题描述
在生成切片方案的时候不能使用默认的切片原点(x=-400,y=400)和比例,如下图所示:
如果使用了默认的原点和比例,在加载到Cesium种会加载不出来,打开控制台会看到如下提示:
400: X,Y values for the tile index were calculated to be {10.888888685772248, -9.888888704425817} which had to be rounded to {11, -10} and exceeds the threshold of 10%. Perhaps the client is using the wrong origin ?
解决方法
在生成方案的时候原点X设置为-180,y设置为90;比例尺也要修改
切片缓存方案
<?xml version="1.0" encoding="utf-8" ?>
<CacheInfo xsi:type='typens: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'>
<TileCacheInfo xsi:type='typens:TileCacheInfo'>
<SpatialReference xsi:type='typens:GeographicCoordinateSystem'>
<WKT>GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4326]]</WKT>
<XOrigin>-400</XOrigin>
<YOrigin>-400</YOrigin>
<XYScale>11258999068426.238</XYScale>
<ZOrigin>-100000</ZOrigin>
<ZScale>10000</ZScale>
<MOrigin>-100000</MOrigin>
<MScale>10000</MScale>
<XYTolerance>8.983152841195215e-009</XYTolerance>
<ZTolerance>0.001</ZTolerance>
<MTolerance>0.001</MTolerance>
<HighPrecision>true</HighPrecision>
<LeftLongitude>-180</LeftLongitude>
<WKID>4326</WKID>
<LatestWKID>4326</LatestWKID>
</SpatialReference>
<TileOrigin xsi:type='typens:PointN'>
<X>-180</X>
<Y>90</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>590995197.14166796</Scale>
<Resolution>1.406250026231578</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>1</LevelID>
<Scale>295497598.57083398</Scale>
<Resolution>0.70312501311578901</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>2</LevelID>
<Scale>147748799.28541699</Scale>
<Resolution>0.35156250655789451</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>3</LevelID>
<Scale>73874399.642708704</Scale>
<Resolution>0.17578125327894775</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>4</LevelID>
<Scale>36937199.821354397</Scale>
<Resolution>0.087890626639473987</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>5</LevelID>
<Scale>18468599.910677198</Scale>
<Resolution>0.043945313319736994</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>6</LevelID>
<Scale>9234299.9553385898</Scale>
<Resolution>0.021972656659868472</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>7</LevelID>
<Scale>4617149.9776692903</Scale>
<Resolution>0.010986328329934226</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>8</LevelID>
<Scale>2308574.9888346498</Scale>
<Resolution>0.0054931641649671242</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>9</LevelID>
<Scale>1154287.49441732</Scale>
<Resolution>0.0027465820824835504</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>10</LevelID>
<Scale>577143.74720866198</Scale>
<Resolution>0.0013732910412417797</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>11</LevelID>
<Scale>288571.87360433099</Scale>
<Resolution>0.00068664552062088987</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>12</LevelID>
<Scale>144285.936802165</Scale>
<Resolution>0.0003433227603104438</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>13</LevelID>
<Scale>72142.968401082704</Scale>
<Resolution>0.00017166138015522239</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>14</LevelID>
<Scale>36071.484200541403</Scale>
<Resolution>8.5830690077611316e-005</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>15</LevelID>
<Scale>18035.742100270701</Scale>
<Resolution>4.2915345038805658e-005</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>16</LevelID>
<Scale>9017.8710501353398</Scale>
<Resolution>2.1457672519402802e-005</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>17</LevelID>
<Scale>4508.9355250676699</Scale>
<Resolution>1.0728836259701401e-005</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>18</LevelID>
<Scale>2254.46776253384</Scale>
<Resolution>5.3644181298507123e-006</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>19</LevelID>
<Scale>1127.23388126692</Scale>
<Resolution>2.6822090649253562e-006</Resolution>
</LODInfo>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>20</LevelID>
<Scale>563.61694063345999</Scale>
<Resolution>1.3411045324626781e-006</Resolution>
</LODInfo>
</LODInfos>
</TileCacheInfo>
<TileImageInfo xsi:type='typens:TileImageInfo'>
<CacheTileFormat>MIXED</CacheTileFormat>
<CompressionQuality>75</CompressionQuality>
<Antialiasing>false</Antialiasing>
</TileImageInfo>
<CacheStorageInfo xsi:type='typens:CacheStorageInfo'>
<StorageFormat>esriMapCacheStorageModeCompact</StorageFormat>
<PacketSize>128</PacketSize>
</CacheStorageInfo>
</CacheInfo>
这是0到20级的比例,实际的切片情况可以自定义层级数量(比如只到17级)