前段时间做了arcgis bundle压缩地图数据的读取,方法如下,使用object C
+ (NSData *)getCompressedTile:(NSString *)filepath x:(NSString *)x y:(NSString *)y z:(NSString *)z { filepath = [NSString stringWithFormat:@"%@%@", filepath, @"Layers/_alllayers"]; NSString *bundlepath=filepath; bundlepath=[filepath stringByAppendingString:bundlepath]; NSString *lpadding = @"00"; NSString *lz=[NSString stringWithFormat:@"%@%@", lpadding, z]; NSString *l = [NSString stringWithFormat:@"L%@",[lz substringFromIndex:[lz length] - 2]]; int row = [y intValue]; int col = [x intValue]; int rGroup = 128 * (row / 128); NSString *r = [[NSString alloc] initWithFormat:@"%1x",rGroup]; while ([r hasPrefix:@"0"]) { r = [r substringFromIndex:1]; } int rLength = [r length]; if (rLength < 4) { r = [NSString stringWithFormat:@"0000%@", r]; r = [r substringFromIndex:[r length] - 4]; } r = [NSString stringWithFormat:@"R%@", r]; int cGroup = 128 * (col / 128); NSString *c = [[NSString alloc] initWithFormat:@"%1x",cGroup]; while ([c hasPrefix:@"0"]) { c =[c substringFromIndex:1]; } int cLength = [c length]; if (cLength < 4) { c = [NSString stringWithFormat:@"0000%@", c]; c = [c substringFromIndex:[c length] - 4]; } c = [NSString stringWithFormat:@"C%@", c];//@"R0a00" @"C3480" NSString *bundleBase = [NSString stringWithFormat:@"%@/%@/%@%@", filepath , l,r ,c]; NSString *bundlxFileName = [NSString stringWithFormat:@"%@.bundlx", bundleBase]; NSString *bundleFileName = [NSString stringWithFormat:@"%@.bundle", bundleBase]; NSFileManager *filemanager=[NSFileManager defaultManager]; //NSLog(@"bundle%@,bundlx%@,bundlx %@,%@,%@,%@",bundleFileName,bundlxFileName,c,l,r,bundleBase); // NSLog(@"bundle------:%@",bundleFileName); // NSLog(@"bundlx------:%@",bundlxFileName); if (![filemanager fileExistsAtPath:bundleFileName]||![filemanager fileExistsAtPath:bundlxFileName]) { // NSLog(@"地图bundle文件或bundlx文件不存在!"); return nil; } int index = 128 * (col - cGroup) + (row - rGroup); NSFileHandle* lxfileHandle=[NSFileHandle fileHandleForReadingAtPath:bundlxFileName]; [lxfileHandle seekToFileOffset: 16 + 5 * index]; Byte bufferbundlx[5]; NSData *data=[lxfileHandle readDataOfLength:5]; [data getBytes:bufferbundlx]; long offset = (long ) (bufferbundlx[0] & 0xff) + (long) (bufferbundlx[1] & 0xff) * 256 + (long) (bufferbundlx[2] & 0xff) * 65536 + (long) (bufferbundlx[3] & 0xff) * 16777216 + (long) (bufferbundlx[4] & 0xff) * 4294967296LL; // NSLog(@"%ld",offset); NSFileHandle *lefileHandle=[NSFileHandle fileHandleForReadingAtPath:bundleFileName]; [lefileHandle seekToFileOffset:offset]; Byte bufferbundle[4]; NSData *bundleIndex=[lefileHandle readDataOfLength:4]; [bundleIndex getBytes:bufferbundle]; int length = (int) (bufferbundle[0]& 0xff) + (int) (bufferbundle[1] & 0xff) * 256 + (int) (bufferbundle[2] & 0xff) * 65536 + (int) (bufferbundle[3] & 0xff) * 16777216; // NSLog(@"dddddddddd%d",length); NSData *result=[lefileHandle readDataOfLength:length]; //关闭文件流 [lxfileHandle closeFile]; [lefileHandle closeFile]; return result; }
相关推荐
首先,要读取.bundlx文件,这是一种二进制文件,包含有每个切片的元数据,如切片的位置、大小等信息。在Java中,我们可以使用`java.nio`包中的类,如`ByteBuffer`和`FileChannel`来读取和解析这些二进制数据。`...
利用C#实现的读取ARCGIS SERVER 紧凑型缓冲文件BUNDLE的类。
1. **读取TPK文件**:使用Java的I/O流读取TPK文件,通常是一个压缩的ZIP文件,可以使用`java.util.zip`包中的类进行解压。 2. **解析镶嵌定义XML**:读取并解析XML文件,获取切片的层级、范围和每个级别的切片索引。...
本文将深入探讨如何使用C# 2010编程语言来读取ArcGIS 10.2的紧凑格式数据,并将其转换为Base64编码,这对于处理地图切片数据尤其有用。 首先,我们需要理解ArcGIS紧凑格式数据的特性。这种格式是为了提高空间数据的...
在安卓和 iOS 平台上,ArcGIS 客户端应用程序可以用来读取和利用 ArcGIS Server 上发布的服务。本文将详细介绍如何配置 ArcGIS Server 后台服务,以便于 ArcGIS 客户端在移动设备上访问。 首先,发布 ArcGIS Server...
Arcgis 10.3破解文件,使用方法: 1、自行安装lm,关闭服务,拷贝破解文件①② 2、自行安装desktop,拷贝破解文件③,启动lm服务。 破解覆盖文件所在路径: ①service.txt--->C:\Program Files (x86)\ArcGIS\...
- **bundlx**: 存储各个图片文件在bundle文件中的偏移量。 **4. 命名规则** - **bundle**: 命名为`R数字C数字`,其中`R`表示起始行,`C`表示起始列,采用十六进制表示。 - **bundlx**: 文件结构固定为81,952字节,...
《ArcGIS for iOS官方示例解析》 ArcGIS for iOS是一款由Esri公司开发的用于构建iOS设备上的地理信息系统(GIS)应用的SDK。这款强大的工具集为开发者提供了丰富的功能,帮助他们创建具有地图显示、地理编码、地理...
ArcGIS10.2 破解文件
本文将深入探讨如何在ArcGIS中加载TIFF(Tagged Image File Format)文件,这是一种常见的栅格图像格式,常用于遥感和地理空间数据。 首先,加载TIFF文件至ArcGIS是为了展示或分析地理空间图像。TIFF格式支持多光谱...
ArcGIS切片通常指的是地图服务的预计算图像切片,这些切片存储为紧凑型文件,可以快速加载到Web地图中,提高地图性能。它们是由ArcGIS Server生成的,包含了多个不同分辨率的图像,用于支持不同级别的缩放操作。切片...
Arcgis10.2.2破解文件
ArcGIS 10.2, 许可文件, ArcGIS 10.2 ArcGIS全模块的许可文件
ArcGIS 10.1 破解文件
《全面解析ARCGIS Enterprise授权文件:服务器与Portal的整合应用》 ARCGIS Enterprise是Esri公司推出的全面地理信息系统解决方案,它集成了多种组件,包括Server、Portal和Data Store等,为企业级用户提供强大的...
《ArcGIS Runtime for iOS加载天地图的实现与详解》 在移动GIS开发领域,ArcGIS Runtime SDK for iOS是一个强大的工具,它允许开发者构建能够在iOS设备上运行的地图应用程序。本篇文章将详细探讨如何利用该SDK加载...
《ArcGIS Server 10.2.2 许可文件详解》 ArcGIS Server是Esri公司开发的一款强大的地理信息系统(GIS)服务器软件,它允许用户在互联网、内联网或局域网环境下发布、管理和共享地理空间数据。在这个场景中,我们...
网上目前针对IOS的arcgis的将天地图作为底图的,都是老的,而且里面有很多错误,调整之后加载出来的图的都是偏移的,这个是我调整后的,在xcode5下,arcgis ios sdk 10.2.4环境下显示正常的。2015年最新的。
ArcGIS API For iOS 2.2.1及26个例程源代码 ArcGIS API for iOS 使您可使用 Objective C 构建多种应用程序(这些应用程序将运用 ArcGIS Server 提供的强大制图、地理编码、地理处理和自定义功能)并将它们部署到 ...