转:如何利用已有的切片文件生成TPK
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文件了。
根据配置文件的信息,可以写一个小工具,界面如下:
源文地址: <http://blog.csdn.net/arcgis_cs/article/details/7593656>
转:如何利用已有的切片文件生成TPK的更多相关文章
- 根据BOM和已存在的文件生成文件列表
在BOM中记录中有物料编码,物料名称,物料规格等,而且依据BOM已经生成了相应的文件,如采购规格书,检验规格书等,这个时候需要获得这些文件的标题,并且生成一个列表,可以使用下面的VBA代码,具体代码如 ...
- 使用XML序列化器生成XML文件和利用pull解析XML文件
首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message&g ...
- 利用svn的补丁文件打包生成增量文件
下面的代码是maven版本 1. 创建patch.txt增量文件 保存到 文件目录下 比如 E:\aa\patch.txt 2. 编写java代码 package utils; import java ...
- 利用gsoap工具,通过wsdl文件生成webservice的C++工程文件
一.下载gsoap文件,下载地址:https://zh.osdn.net/projects/sfnet_gsoap2/releases/ 二.以gsoap-2.8为例,解压到D盘,在D:/gsoap- ...
- 开源方案搭建可离线的精美矢量切片地图服务-8.mapbox 之sprite大图图标文件生成(附源码)
项目成果展示(所有项目文件都在阿里云的共享云虚拟主机上,访问地图可以会有点慢,请多多包涵). 01:中国地图:http://test.sharegis.cn/mapbox/html/3china.ht ...
- ffmpeg文件生成m3u8文件及ts切片程序(一)
ffmpeg文件生成m3u8文件及ts切片程序(一) 实现目标:输入本地文件,实现m3u8切片,功能点请看注释,注意:注释很重要. 参考: http://www.cnblogs.com/mystory ...
- 【maven】如何将一个已有的jar文件,生成maven坐标,并上传至远程仓库
[一]如何将一个已有的jar文件,生成maven坐标 使用maven构建项目需要在项目中引入自定义的一些包,也像maven一样在工程的pom.xml中引入相应的坐标,这时候我们就要自己把包上传到本地仓 ...
- java使用ffmpeg生成HLS切片文件
/*** * 将文件切割成片 * @param filename * @param uuid * @param data * @throws IOException */ default void d ...
- Thymeleaf利用layout.html文件生成页面布局框架
1.layout.html文件 生成布局 <!DOCTYPE html> <html lang="zh-CN" xmlns:th="http://www ...
随机推荐
- Httprequest 添加Cookie
string postData = "Inputs={\"BarCode\":\"" + barCode + "\"}" ...
- 安装GCC-8.3.0及其依赖
目录 目录 1 1. 前言 1 2. 安装日期 1 3. GCC国内镜像下载地址 2 4. GCC的依赖库 2 4.1. gmp库 2 4.2. mpfr库 2 4.3. mpc库 2 4.4. m4 ...
- Svn安装成功后的操作
一.服务器端创建目录 在Svn服务器端创建一个用来保存客户端提交文件的文件夹 (我的路径是d:/Svn/App/book) 首先将Svn的服务端安装目录/bin 进行环境配置,以下操作是在进行环境配置 ...
- python get() 和getattr()
get() Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法: dict.get(key, default=None) 实例1: d={'A':1,'b':2} ...
- Loj 6432. 「PKUSC2018」真实排名 (组合数)
题面 Loj 题解 枚举每一个点 分两种情况 翻倍or不翻倍 \(1.\)如果这个点\(i\)翻倍, 要保持排名不变,哪些必须翻倍,哪些可以翻倍? 必须翻倍: \(a[i] \leq a[x] < ...
- 洛谷 P3244 / loj 2115 [HNOI2015] 落忆枫音 题解【拓扑排序】【组合】【逆元】
组合计数的一道好题.什么非主流题目 题目背景 (背景冗长请到题目页面查看) 题目描述 不妨假设枫叶上有 \(n\) 个穴位,穴位的编号为 \(1\sim n\).有若干条有向的脉络连接着这些穴位. ...
- sha1.js
function encodeUTF8(s) { var i, r = [], c, x; for (i = 0; i < s.length; i++) if ((c = s.charCodeA ...
- vue自定义指令clickoutside使用以及扩展用法
vue自定义指令clickoutside使用以及扩展用法 产品使用vue+element作为前端框架.在功能开发过程中,难免遇到使用element的组件没办法满足特殊的业务需要,需要对其进行定制,例如 ...
- Java - 打印质数(使用控制嵌套循环跳转)
使用控制嵌套循环跳转,打印输出10 ~ 150之间的质数 代码: public class Testcotinue { public static void main(String[] args) { ...
- shell基础优化脚本
#!/bin/bash ######################################################### #Created Time: Tue Aug 7 01:29 ...