怎么读取瓦片地图?

不管是ArcGIS Server,还是ArcMap,以及ArcGIS API For JavaScript/Flex/Silverlight/Android/ios中,都内置了瓦片的读取控件或读取算法,如果让我自己去做一个程序读取缓存瓦片,该如何去写呢??

首先看已有的资源:

配置文件:conf.cdi 和 conf.xml 

瓦片文件:等级严密的瓦片文件

conf.cdi:

<?xml version="1.0" encoding="utf-8" ?><EnvelopeN xsi:type='typens: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.0'>
<XMin>120.50</XMin><YMin>30.00</YMin>
<XMax>121.40</XMax><YMax>31.00</YMax>
</EnvelopeN>

主要保存的是地图的范围。

conf.xml:

<?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.0'><TileCacheInfo xsi:type='typens:TileCacheInfo'><SpatialReference xsi:type='typens:GeographicCoordinateSystem'>
<WKT>GEOGCS[&quot;GCS_WGS_1984&quot;,DATUM[&quot;D_WGS_1984&quot;,SPHEROID[&quot;WGS_1984&quot;,6378137.0,298.257223563]],PRIMEM[&quot;Greenwich&quot;,0.0],UNIT[&quot;Degree&quot;,0.0174532925199433],AUTHORITY[&quot;EPSG&quot;,4326]]</WKT>
<XOrigin>-180</XOrigin><YOrigin>90</YOrigin>
<XYScale>11258999068426.24</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></SpatialReference><TileOrigin xsi:type='typens:PointN'><X>-180</X><Y>90</Y></TileOrigin><TileCols>256</TileCols><TileRows>256</TileRows><DPI>96</DPI>
<LODInfos xsi:type='typens:ArrayOfLODInfo'>
<LODInfo xsi:type='typens:LODInfo'>
<LevelID>0</LevelID><Scale>225429.3893129775</Scale><Resolution>0.001373291015625</Resolution></LODInfo><LODInfo xsi:type='typens:LODInfo'>
<LevelID>1</LevelID><Scale>112714.6946564888</Scale><Resolution>0.0006866455078125</Resolution></LODInfo><LODInfo xsi:type='typens:LODInfo'>
<LevelID>2</LevelID><Scale>56357.34732824438</Scale><Resolution>3.4332275390625e-4</Resolution></LODInfo><LODInfo xsi:type='typens:LODInfo'>
<LevelID>3</LevelID><Scale>28178.67366412219</Scale><Resolution>1.71661376953125e-4</Resolution></LODInfo><LODInfo xsi:type='typens:LODInfo'>
<LevelID>4</LevelID><Scale>14089.3368320611</Scale><Resolution>8.58306884765625e-5</Resolution></LODInfo><LODInfo xsi:type='typens:LODInfo'>
<LevelID>5</LevelID><Scale>7044.668416030548</Scale><Resolution>4.291534423828125e-5</Resolution></LODInfo><LODInfo xsi:type='typens:LODInfo'>
<LevelID>6</LevelID><Scale>3522.334208015274</Scale><Resolution>2.145767211914063e-5</Resolution></LODInfo><LODInfo xsi:type='typens:LODInfo'>
<LevelID>7</LevelID><Scale>1761.167104007637</Scale><Resolution>1.072883605957031e-5</Resolution></LODInfo><LODInfo xsi:type='typens:LODInfo'>
<LevelID>8</LevelID><Scale>880.5835520038185</Scale><Resolution>5.364418029785156e-6</Resolution></LODInfo>
</LODInfos>
</TileCacheInfo><TileImageInfo xsi:type='typens:TileImageInfo'><CacheTileFormat>PNG8</CacheTileFormat><CompressionQuality>0</CompressionQuality><Antialiasing>false</Antialiasing></TileImageInfo><CacheStorageInfo xsi:type='typens:CacheStorageInfo'><StorageFormat>esriMapCacheStorageModeExploded</StorageFormat><PacketSize>0</PacketSize></CacheStorageInfo></CacheInfo>

存储的有坐标系等信息以及各个级别的分辨率和坐标系。

 

瓦片文件:可以从每个瓦片的路径和名称获得该瓦片的行列号和所在级别,然后通过conf.xml中的配置文件中读取solution,然后计算得到该瓦片的坐标位置。

 

以此我们可以制作自己的程序或者软件来显示瓦片地图了·······

 

转载请注明出处  http://www.cnblogs.com/The-SEA/p/4367898.html

转载于:https://www.cnblogs.com/The-SEA/p/4367898.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值