关于加载离线SHP文件、geodatabase文件所遇到的路径问题

  正文开始之前还是先吐槽一下,一行代码DEBUG了一天不知道怎么改,终于误打误撞弄出来了(以下以shp文件为例)

  对于虚拟机测试

1         public  String getPath(){
2             File sdDir = null;
3             boolean sdCardExit = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
4             if (sdCardExit){
5                 sdDir = Environment.getExternalStorageDirectory();
6             }
7             return sdDir.toString();
8         }

  通过getPath方法取得SD卡的根目录,String tmp = getPath()+"/sample/xxx.shp";   ,这样子取得shp文件是没问题的(shp文件放在了SD卡中sample文件夹下面),但是我用手机测试的时候死活获取不到,原来通过getPath方法取得手机目录为/storage/emulated/0,这个根本不是我想要的根目录,那怎么办呢?多嘴一句,这个可能和手机有关系,也许你的手机用getPath可以获得正确的SD卡目录。如果不能获取呢

  1. String strMapUrl = "file:///storage/sdcard1/sample/beijing01.tpk";  这个可以取得TPK文件并且将其正确加载

  2. String geoPathString="/storage/sdcard1/sample/road3.shp";   这个可以取得shp文件并将其正确加载

  3. String pathString=new File(Environment.getExternalStorageDirectory().getParent()).getParent()+"/sdcard1/sample/road2.shp"; 这个可以取得shp文件并将其正确加载

以上的三种方法需要根据手机的具体情况去尝试,我到目前为止还不知道是什么原因,以下是我手机的目录结构

  嗯,讲的都是些粗浅的表面现象,内在的实质性的东西我还没有弄懂,欢迎大神给我解答········

时间: 2024-12-18 00:35:29

关于加载离线SHP文件、geodatabase文件所遇到的路径问题的相关文章

[Android学习系列2]用webview写界面,加载本地js,js,html文件

以jquery mobile为例 1.在android界面拖入一个webview,然后添加一个internet权限 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <uses-permission android:name="android.permission.INTERNET"/> <application ........

javaEE:day2-servlet生命周期、提交解决中文乱码、tomcat加载jar包或类文件的顺序

servlet生命周期 生命周期简介: servlet在服务器第一次被请求的时候new出来,并初始化(即init())再调用service方法.这个实在服务器中new出来,然后用HashMap加的,与客户端无关.客户端之后访问只调用这个servlet的service方法. 具体分为4步: 1 构造方法 :服务器在被客户端第一次请求的时候运行 仅在服务器中运行一次 2 init方法:客户端第一次访问服务器的时候在服务器中进行初始化 仅一次.并且可以通过config参数在 web.xml中通过(ke

CocoStudio使用笔记1:cocos2dx3.4加载CocoStudio导出的csb文件

一直以来都是用手写代码来做cocos2dx的游戏界面.看朋友一个星期一个游戏的速度,很让我眼红.他们公司使用的是CocosBuilder做界面.对于CocosBuilder 在他的推荐下我也研究了一个星期,网上的教程太乱,而且坑太多,每个教程的操作还不一样,按照教程来还是搞不定,对此我决定要一点点的来填坑.而本篇笔记是记录下cocostudioV2.3.2版本生成的csb文件在cocos2dx3.4中的运用.对于cocosbuilder的笔记过几天在整理,爬坑爬的心累. Cocostudio已经

ReportView动态加载带参数的RDCL文件

在vs里新建一个winform程序"ReportViewTest",在form1中添加一个reportView控件,from1的load事件如下: private void Form1_Load(object sender, EventArgs e) { DataSet ds = new DataSet(); try { ds = getDS(); } catch (Exception) { throw; } Microsoft.Reporting.WinForms.ReportDat

Away3D 学习笔记(一): 加载3DS格式的模型文件

加载外部的3DS文件分为两种: 1: 模型与贴图独立于程序的,也就是从外部的文件夹中读取 1 private function load3DSFile():Loader3D 2 { 3 loader = new Loader3D(); 4 loader.addEventListener(LoaderEvent.RESOURCE_COMPLETE,onLoadComplete); 5 loader.addEventListener(AssetEvent.ASSET_COMPLETE,onAsset

快速加载DXF、DWG格式文件控件ABViewer

ABViewer是一种高品质,低成本,高效率的多功能设计及工程文档管理应用程序. ABViewer为您提供专业的cad文件浏览和编辑工具. 支持多种格式,如:DWG格式, DXF, DWF, Hewlett-Packard HPGL, PLT, HGL, CGM, SVG, TIFF, BMP, JPG, GIF etc 等. 具体功能: ABViewer它可以方便我们在下述几种情况下大大节省时间: 当您需要在您的MS Word 文档中导入CAD图像时 您可以获得比常规软件快两倍的CAD文件(D

webView 加载本地html css javascript文件路径尝试

一:UIWebView加载数据的方式有三种: 1:- (void)loadRequest:(NSURLRequest *)request NSString * path = [[NSBundle mainBundle] pathForResource:@"demoFolder" ofType:@"html"]; NSURL *url = [NSURL URLWithString:path]; [self.webView1 loadRequest:[NSURLRequ

JavaScript 之 动态加载JS代码或JS文件

2.动态加载JS文件 <script type="text/javascript"> function loadScript(url, callback) { var script = document.createElement("script"); script.type = "text/javascript"; if(typeof(callback) != "undefined"){     if (scri

iOS WebView 加载本地资源(图片,文件等)

NSString *path = [[NSBundle mainBundle] pathForResource:@"关于.docx" ofType:nil]; NSURL *url = [NSURL fileURLWithPath:path]; NSLog(@"%@", [self mimeType:url]); //webview加载本地文件,可以使用加载数据的方式 //第一个诶参数是一个NSData, 本地文件对应的数据 //第二个参数是MIMEType //第