地图打开时间长至一分钟

0 投票
212 浏览

打开 smwu 类型的地图 工作空间在4-5MB左右

在UI线程打开,会直接卡死

在子线程打开,如果联网的话 可能会一分钟左右 ,不联网的话 也要几秒钟。

在打开过程中 关闭网络连接,就直接打开了,这是什么情况

正常打开地图的时间应该是多长时间

最新提问 1月 5 分类:  212次浏览 | 用户: mxc 初出茅庐 (55 分)
修改于 1月 5 用户:mxc

1个回答

0 投票
你好,工作空间中如果有在线的数据源,打开就会比较慢,这个和网络宽带有关,如果工作空间是UDB数据源,就你测试的数据量打开会很快;还有你说的打开的时间是包含打开地图并渲染出来的时间吗?打开地图的时间也是很快的,地图的渲染时间和地图中数据的大小有关,另外和设备的性能也有关系。
最新回答 1月 5 用户: 王国新 名扬四海 (1,792 分)
数据源是udb 离线的,大小都在4-5MB左右,是包括渲染出来的时间。

关闭网络连接打开的情况下 2秒左右完全渲染出来

开着网络就很慢了。我的数据源是UDB 没有在线的。

打开工作空间的代码

  public void openWorkspace() {
        Observable.create(new Observable.OnSubscribe<Workspace>() {
            @Override
            public void call(Subscriber<? super Workspace> subscriber) {
                String path = CurUser.getInstance().getMapDataPath() + "/" + Constants.NAME.MAP_DATA_NAME;
                log("openWorkspace", "time->"+ StringUtil.parseDate(new Date(),"HH:mm:ss.SSS"));
                Workspace workspace = new Workspace();
                WorkspaceConnectionInfo connectionInfo = new WorkspaceConnectionInfo();
                connectionInfo.setType(WorkspaceType.SMWU);
                connectionInfo.setServer(path);
                connectionInfo.setPassword(Constants.CONF.WORK_SPACE_PASSWORD);
                boolean open = workspace.open(connectionInfo);
                log("openWorkspace", "open->"+open);
                if (open) {
                    subscriber.onNext(workspace);
                }else{
                    subscriber.onError(new Exception("地图打开失败"));
                }
            }
        }).subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber<Workspace>() {
                    @Override
                    public void onCompleted() {

                    }

                    @Override
                    public void onError(Throwable e) {
                        e.printStackTrace();
                        if (null != view) {
                            BMMapView activity = (BMMapView) view;
                            activity.openFailed();
                        }
                    }

                    @Override
                    public void onNext(Workspace workspace) {
                        if (null != view) {
                            log("openWorkspaceNext", "time->"+StringUtil.parseDate(new Date(),"HH:mm:ss.SSS"));
                            BMMapView activity = (BMMapView) view;
                            activity.openSuccess(workspace);
                        }
                    }
                });

    }

下面是log出的时间

 E/openWorkspace: time->16:03:00.742
 E/openWorkspace: open->true
 E/openWorkspaceNext: time->16:03:50.686
 E/openSuccess: time-->16:03:51.843

1、你是用的正式许可还是试用许可?

2、你用的是哪个版本的iMobile for Android?

3、是否开启了OpenGL地图渲染模式?
试用许可

版本是8c SP2

OpenGL模式默认是打开的吗,我没有设置,是默认的
你用的不是官网的版本吧,8c最新的版本是8.11的版本,建议你用9d的版本跑一下看。
...