首页 / 浏览问题 / 移动GIS / 问题详情
AS打开自制地图,没有底图
4EXP 2019年07月25日

使用产品:idesktop 操作系统:win10 x64
数据类型: smwu
问题详细描述:按照帮助文档的“

基于Android Studio 开发二维移动 GIS 程序

”过程,将自己在idesktop制作的smwu文件代替sampledata里面的例子,但是显示出来的只有smwu里面的路径分析图层,也就是线图层,没有底图和点。那么怎么才能显示正确的地图呢?

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
            //检查该权限是否已经获取
            int l = ContextCompat.checkSelfPermission(getApplicationContext(), permissions[0]);
            int m = ContextCompat.checkSelfPermission(getApplicationContext(), permissions[1]);
            int s = ContextCompat.checkSelfPermission(getApplicationContext(), permissions[2]);
            //权限是否已经授权GRANTED---授权    DINIED----拒绝
            if (l != PackageManager.PERMISSION_GRANTED || m != PackageManager.PERMISSION_GRANTED || s != PackageManager.PERMISSION_GRANTED){
                Toast.makeText(this,"请打开易回收的手机权限",Toast.LENGTH_LONG).show();
            }
        }
        startRequestPermission();

        //设置一些系统需要用到的路径
        Environment.setLicensePath("/sdcard/SuperMap/license/");
        Environment.setTemporaryPath("/sdcard/SuperMap/temp/");
        Environment.setWebCacheDirectory("/sdcard/SuperMap/WebCatch/");

        //组件功能必须在Environment初始化之后才能调用
        Environment.initialization(this);

        //如果机器中默认不包括需要显示的字体,可以把相关字体文件放在参数所代表的路径中。
        //例如,如果需要显示阿拉伯文字(若机器中原先不包括相关字体文件),可以把需要的字体文件放在参数所代表的路径中。
        Environment.setFontsPath("/sdcard/SuperMap/fonts/");
        setContentView(R.layout.activity_di_tu);

        //打开工作空间
        Workspace m_workspace = new Workspace();
        WorkspaceConnectionInfo info = new WorkspaceConnectionInfo();
        info.setServer("/sdcard/SuperMap/GeometryInfo/newmap.smwu");
        info.setType(WorkspaceType.SMWU);
        m_workspace.open(info);

        //将地图显示控件和工作空间关联
        MapView m_mapView = findViewById(R.id.Map_view);
        m_mapcontrol = m_mapView.getMapControl();
        m_mapcontrol.getMap().setWorkspace(m_workspace);

        //打开工作空间中的第二幅地图
        String mapName = m_workspace.getMaps().get(1);
        m_mapcontrol.getMap().open(mapName);
        ZoomControls m_zoom = findViewById(R.id.zoomControls1);
        m_zoom.setIsZoomInEnabled(true);
        m_zoom.setIsZoomOutEnabled(true);

        //放大按钮
        m_zoom.setOnZoomInClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                m_mapcontrol.getMap().zoom(2);
                m_mapcontrol.getMap().refresh();
            }
        });

        //缩小按钮
        m_zoom.setOnZoomOutClickListener(new View.OnClickListener(){
            public void onClick(View v) {
                m_mapcontrol.getMap().zoom(0.5);
                m_mapcontrol.getMap().refresh();
            }
        });
        m_mapcontrol.getMap().refresh();

        my = (ViewGroup)findViewById(R.id.my);
        my.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(DiTu.this,My.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent);
            }
        });

        shouye = (ViewGroup)findViewById(R.id.shouye);
        shouye.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(DiTu.this,MainActivity.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent);
                finish();
            }
        });
    }

    private void startRequestPermission(){
        ActivityCompat.requestPermissions(this,permissions,321);
    }

    @Override
    public void onRequestPermissionsResult(int requsetCode,String[] permissions,int[] grantResults){
        super.onRequestPermissionsResult(requsetCode,permissions,grantResults);
        if (requsetCode ==321){
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
                if (grantResults[0] != PackageManager.PERMISSION_GRANTED){
                    Toast.makeText(this,"请按照“设置--应用--权限”开启权限!",Toast.LENGTH_LONG).show();
                }else {
                    Toast.makeText(this,"获取权限成功!",Toast.LENGTH_LONG).show();
                }
            }
        }
    }

1个回答

您好,你工作空间中的地图里面保存了点图层和底图吗?还有您的底图是在线数据还是离线数据呢
9,232EXP 2019年07月25日
...