原址:http://blog.csdn.net/arcgis_all/article/details/8215163

Tpk是ArcGIS 10.1即将推出的一种新的数据文件类型,主要是用于将切片文件打包形成离线地图包。Tpk可以在ArcGIS Runtime中作为切片底图被加载。在ArcGIS 10.1中Tpk的生成被集成在了ArcGIS Desktop中。

问题提出:通过介绍我们已经知道Tpk是将切片数据打包,而在ArcMap中制作Tpk的时候,我们选择MXD文档,然后设置切片信息,确定之后,ArcMap就开始为我们切图了,这个时间是比较长(依赖数据的大小和切片的级别),但是在一些场合下,我们已经有了切片,那么能否将制作Tpk文件过程中的这个切片的擦做省略?(答案是可以的)

一、Tpk文件的组成

Tpk文件其实是一个zip文件,通过解压缩Tpk文件,我们可以得到tpk文件的内部结构,如下图:

其中"China400W"可以替换为你自己项目中的实际名称,其它文件夹名称或文件名称均不能更改。其中V101文件夹中就是我们的切片数据(紧簇型的)和一个.layer  文件。thumbnail文件夹中是一个缩略图,其余文件都是一个描述文件或者说是Tpk文件的配置信息文件,都是XML结构的,尽管有一个文件的后缀名pkinfo,但是这也是一个xml文件,不要被后缀名吓到,里面的东西才是我们关注的。

有了这个结构,我们就需要制作Tpk中需要的文件,总共三个(缩略图和,两个描述文件)

1、制作thumbnail(缩略图)

为切片制作一个200×133大小,格式为png的缩略图,并保存至thumbnail文件夹下。(但是在实际过程中,如果没这个文件,也是可以的)

2、拷贝切片文件

将生成的切片文件拷贝至v101目录下。

3、制作layer文件

打开ArcMap,添加切片文件到ArcMap中,设置文档保存属性为相对路径,将添加的切片图层另存为layer文件,拷贝至v101目录下。

4、生成item.pkinfo文件

在esriinfo目录下新建文件item.pkinfo,文件内容如下,红色部分需修改(其实 Culture='zh-CN'这个也可以修改,不同的国家这个是不一样的,因为我们都在中国,所以这个我就略过了):

<?xml version="1.0" encoding="utf-8"  ?>

<?xml-stylesheet type=" text/xsl" href="http://www.arcgisonline.com/home/pkinfostylesheet.xsl"  ?>

<pkinfo Culture='zh-CN'>

<ID>355b155c-53de-400f-9161-80fc400269dc</ID>

<name>Campus</name>

<version>10.1 Pre-release</version>

<size>-1</size>

<created></created>

<servable>false</servable>

<packagelocation></packagelocation>

<pkinfolocation></pkinfolocation>

</pkinfo>

5、生成iteminfo.xml文件

在esriinfo目录下新建文件iteminfo.xml,文件内容如下,红色部分需修改:

<?xml version="1.0" encoding="utf-8"  ?>

<ESRI_ItemInformation Culture='zh-CN'>

<name>Campus</name>

<guid>355b155c-53de-400f-9161-80fc400269dc</guid>

<catalogpath></catalogpath>

<snippet>Test</snippet>

<description>Test</description>

<summary>Test</summary>

<title>Campus</title>

<tags>Test</tags>

<type>Tile Package</type>

<typekeywords>

<typekeyword>Tile Package</typekeyword>

<typekeyword>ArcGIS Runtime</typekeyword>

<typekeyword>.tpk</typekeyword>

</typekeywords>

<thumbnail>thumbnail/thumbnail.png</thumbnail>

<documentation></documentation>

<url></url>

<datalastmodifiedtime></datalastmodifiedtime>

<extent>

<xmin>-117.200086891459</xmin>

<ymin>34.0552407754784</ymin>

<xmax>-117.191337674152</xmax>

<ymax>34.0596486598776</ymax>

</extent>

<spatialreference>WGS_1984_Web_Mercator_Auxiliary_Sphere</spatialreference>

<accessinformation>Esri., Inc.</accessinformation>

<licenseinfo></licenseinfo>

</ESRI_ItemInformation>

6、打包为tpk

将整个个目录打包为zip(打包时选择存储)。将文件后缀名更改为tpk就得到我们所需要的tpk文件了。

根据配置文件的信息,可以写一个小工具,界面如下:

如何利用已有的切片文件生成TPK相关推荐

  1. 利用影像的元数据文件生成落图的程序(xml/tfw)

    有时候需要获取遥感影像的范围,即落图文件.利用高分影像的元数据文件生成则十分简便快捷.根据实际需求,编写了生成落图的程序,主要针对高分的影像.不同的传感器的数据存储的形式也不一定一样,针对相同的存储形 ...

  2. Cocos Creator TypeScript 中使用ProtoBuf(利用工具把proto文件生成对应的js文件以及ts文件)

    我是一枚刚入坑cocos的小白o(╯□╰)o 开发环境:Cocos Creator 1.9   (需要安装Node.js,使用npm命令) 在网上找了很久都是讲的protobuf.js的用法,但是没有 ...

  3. 利用MDK的FLM文件生成通用flash驱动

    文章目录 前言 一.FLM文件是什么? 二.FLM文件结构 1.FlashPrg.c 2.FlashPrg.c 三.解析FLM文件 1.解析flm文件 四.设计flash驱动抽象层 五.快速使用 前言 ...

  4. java问卷导入excel_Java利用已有的Excel文件导出新的Excel

    在项目开发过程中,经常遇到需要将数据导出到Excel文件中的需求,如果是简单的数据展示,例如:只需一行表头,然后在下面循环输出数据这样的需求,还是比较容易实现的. 但是,在很多情况下,表格的头部并不是 ...

  5. ArcGIS如何利用已有坐标转成点(arcgis生成、python生成)

    文章目录 前言 一.经纬度坐标转点.线.面 (一)在excel对数据进行初始处理 (二)在ArcGIS中对数据进行生成 1.生成点 2.生成线 3.生成面 二.利用坐标点直接转换为点.线.面 (一)把 ...

  6. svn增量打包部署_利用svn的补丁文件打包生成增量文件

    下面的代码是maven版本 1. 创建patch.txt增量文件 保存到 文件目录下 比如 E:\aa\patch.txt 2. 编写java代码 package utils; import java ...

  7. gerber文件怎么导贴片坐标_利用Gerber文件生成贴片坐标及元件位置图的方法技巧...

    利用 Gerber 文件生成贴片坐标及元件位置图的方法技巧 利用 Gerber 文件生成贴片坐标及元件位置图的方法技 巧 2010-10-11 21:59 Gerber 文件是所有电路设计软件都可以产 ...

  8. 利用poi读取word模板文件生成新的word文档

    利用poi读取word模板文件生成新的word文档 利用poi读取word模板文件,并回填逻辑数据,生成并导出需要的word文档源码.解决模板读取异常问题,提供wordUtils工具类(各种功能实现) ...

  9. java word模板poi生成文件_利用poi读取word模板文件生成新的word文档

    利用poi读取word模板文件生成新的word文档 利用poi读取word模板文件,并回填逻辑数据,生成并导出需要的word文档源码.解决模板读取异常问题,提供wordUtils工具类(各种功能实现) ...

  10. [torchtext]如何利用torchtext读取json文件并生成batch

    如何利用torchtext读取json文件并生成batch 设置Field 使用torchtext.data.Tabulardataset.splits读取文件 构建vocab表 使用torchtex ...

最新文章

  1. 4次迭代!10w行级别数据的Excel导入优化记录
  2. “停课不停学”,线上填报如何逼疯老师
  3. WEB前端 vue学习 vue-router讲解router.push
  4. hash和hashcode_Hibernate事实:等于和HashCode
  5. Visual.Assist.X.V10.7.1949的汉化破解补丁
  6. kali linux虚拟机密码,[Linux]安装kali虚拟机后忘记root密码
  7. Winform开发全套31个UI组件开源共享
  8. 用计算机怎么弹星辰大海,【计算机学院】你们的征途将是星辰大海~
  9. 机器人电机驱动及智能控制分析及展望
  10. 利用Retrofit, RxJava获取网络内容
  11. 如何用自己的电脑作为服务器搭一个网站
  12. python自定义函数实例计算1-n的偶偶数和_Python入门--11--自定义函数
  13. 虚拟主机能做游戏服务器么,虚拟主机做游戏服务器吗
  14. postgresql 命令行操作
  15. 呼叫中心系统的基本构成和二次开发思路
  16. C语言F/C温度转换
  17. JAVA基础 :数据类型
  18. VC++中单个键盘按键的响应
  19. 操作系统MIT6.S081:P7->Interrupts
  20. FTP服务器,部署YUM仓库,NFS共享服务

热门文章

  1. Linux固态硬盘 设置写入缓存,Win10下的写入缓存策略严重影响SSD硬盘的性能!
  2. 使用vot-toolkit-python测试VOT2020
  3. DR选举和BDR选举
  4. win7配置magic mouse和keyboard
  5. vba 定义类_excel编程系列基础:认识VBA的编辑器VBE
  6. Icebound and Sequence(等比数列公式的递归处理)
  7. 如何通过外包平台承接IT项目
  8. 调整IT外包业务合同 降低外包价格
  9. java SE的内容有什么_JavaSE包含哪些内容?JavaEE呢?
  10. Laravel执行seeder命令出现class *** does not exist