使用产品: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();
}
}
}
}