首页 / 浏览问题 / 移动GIS / 问题详情
Android 使用天地图数据源为空
58EXP 2023年03月24日

您好,我在使用天地图的时候出现如下:

tiandiPlane是空的

以下是我的代码

 tiandidsInfo = new DatasourceConnectionInfo();
        if(isFileExit("/sdcard/SuperMap/data/WMTS/t0.tianditu.gov.cn/img_c/wmts/img/img.sci") )
        {
            Log.d(ContentName.TAG,"使用天地图sci文件1");
            tiandidsInfo.setEngineType(EngineType.IMAGEPLUGINS);
            tiandidsInfo.setServer("/sdcard/SuperMap/data/WMTS/t0.tianditu.gov.cn/img_c/wmts/img/img.sci");//注意配置文件要和瓦片要保持目录结构放到手机中,因为配置文件访问的是相对路径
            tiandidsInfo.setAlias("world");

        }else if( isFileExit("/sdcard/Documents/SuperMap/webCache/WMTS/t0.tianditu.gov.cn/img_c/wmts/img/img.sci")){
            Log.d(ContentName.TAG,"使用天地图sci文件2");
            tiandidsInfo.setEngineType(EngineType.IMAGEPLUGINS);
            tiandidsInfo.setServer("/sdcard/Documents/SuperMap/webCache/WMTS/t0.tianditu.gov.cn/img_c/wmts/img/img.sci");//注意配置文件要和瓦片要保持目录结构放到手机中,因为配置文件访问的是相对路径
            tiandidsInfo.setAlias("world1");
        }else{

            Log.d(ContentName.TAG,"使用URL访问地图");
            tiandidsInfo.setServer(TIANDI_URL);
            tiandidsInfo.setEngineType(EngineType.OGC);
            tiandidsInfo.setAlias("TD");
            tiandidsInfo.setDriver("WMTS");
        }

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (this.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {//未获取权限
                Log.d(ContentName.TAG,"未检测到使用权限,开始权限设置");
                this.requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1111);
            } else {
                Log.d(ContentName.TAG,"能够获得权限,开始进行设置地图");
                tiandidsPlane = m_woWorkspace.getDatasources().open(tiandidsInfo);
            }
        }

        if(Environment.getLicenseStatus().isLicenseValid())
        {
            Log.d(ContentName.TAG,"许可是有效的");
        }
        if(tiandidsPlane == null){
            Toast.makeText(MapCenterActivity.this,"无法获取数据源头",Toast.LENGTH_SHORT).show();
            Log.d(ContentName.TAG,"tiandidsPlane是空的");
        }

其中 :权限是有的,许可时有效的。是因为天地图的原因吗

TIANDI_URL = 

"http://t0.tianditu.gov.cn/img_c/wmts?tk=我的keyt&DPI=96";
问题关闭原因: 已解决

1个回答

你好,麻烦看下手机下supermap/log下面日志呢,里面有没有相关提示
3,685EXP 2023年03月24日

 其中有一段是下面:我怀疑是不是天地图那边出问题了,我直接在网络上输入

"http://t0.tianditu.gov.cn/img_c/wmts?tk=我的keyty";提示的是invaild arguements
2023-03-24 14:06:07|   5464| ELj008| 1161890992|   error| HTTP 错误号大于300 HTTP Status Code 418http://t3.tianditu.gov.cn/img_c/wmts?service=wmts&request=GetCapabilities&tk=51dede6e10e831620870a4a8110086b9| jni/JB/64/NetToolkit/../../../Src/NetToolkit/UGHttpHelper.cpp(2515)
2023-03-24 14:06:07|     11| EAc003| 1161890992| warning| 从网络上得到的文件为空| jni/JB/64/NetToolkit/../../../Src/NetToolkit/UGHttpHelper.cpp(607)
2023-03-24 14:06:08|   1117| ELj008| 1161890992|   error| HTTP 错误号大于300 HTTP Status Code 418http://t3.tianditu.gov.cn/img_c/wmts?Servers=wmts&request=GetCapabilities&tk=51dede6e10e831620870a4a8110086b9| jni/JB/64/NetToolkit/../../../Src/NetToolkit/UGHttpHelper.cpp(2515)
2023-03-24 14:06:08|     14| EAc003| 1161890992| warning| 从网络上得到的文件为空| jni/JB/64/NetToolkit/../../../Src/NetToolkit/UGHttpHelper.cpp(607)
2023-03-24 14:06:08|      0| EJc002| 1161890992|   error| 所请求的服务端资源不存在| jni/JB/64/MapServiceStub/../../../Src/MapServiceStub/UGWMTSParams.cpp(281)

...