1. 配置超图开发环境的管理类
//Environment开发环境配置的管理类
private voidsetEnvironment() {
// 设置一些系统需要用到的路径
//设置许可,在初始化界面前验证许可
Environment.setLicensePath("/sdcard/SuperMap/license/"); Environment.setTemporaryPath("/sdcard/SuperMap/temp/");
Environment.setWebCacheDirectory("/sdcard/SuperMap/WebCache/");
//如果机器中默认不包括需要显示的字体,可以把相关字体文件放在参数所代表的路径中。
//例如,如果需要显示阿拉伯文字(若机器中原先不包括相关字体文件),可以把需要的字体文件放在参数所代表的路径中
//Environment.setFontsPath("/sdcard/SuperMap/fonts/");
//初始化配置信息 组件功能必须在 Environment 初始化之后才能调用
Environment.initialization(TabMainActivity.tabMain);
}
2. 添加存放地图的View
//解析xml配置的View。
//在fragment中
view =inflater.inflate(R.layout.fragment_patrol_query, null);
//在activity中
setContentView();
3. 添加地图控件
//地图组件
mMapView =(MapView) view.findViewById(R.id.mapView);
4. 打开地图的工作空间
//打开工作空间
private boolean openWorkspace() {
mWorkspace = new Workspace();
mInfo = newWorkspaceConnectionInfo();
mServer ="/sdcard/SampleData/GeometryInfo/World.smwu";
mInfo.setServer(mServer);//设置工作空间路径
//设置工作空间类型 两种:smwu:二进制形式 sxwu:明文形式
mInfo.setType(WorkspaceType.SMWU);
// 设置完毕工作空间连接信息后打开工作空间
boolean isopen =mWorkspace.open(mInfo);
return isopen;
}
5. 将工作空间与空间结合
// 将地图显示控件和工作空间关联,并打开第二幅图
@SuppressWarnings("deprecation")
private void setMapControl() {
Display display = ((WindowManager)TabMainActivity.tabMain.
getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
screenWidth = display.getWidth();
screenHeight = display.getHeight();
DisplayMetrics dm = newDisplayMetrics();
display.getMetrics(dm);
mMapControl = mMapView.getMapControl();
mMap = mMapControl.getMap();
mMap.setMapDPI(dm.densityDpi);
mMap.setWorkspace(mWorkspace);
//设置地图操作的监听器
mMapControl.setOnTouchListener(newOnTouchListener() {
@Override
public boolean onTouch(Viewv, MotionEvent event) {
returnmMapControl.onMultiTouch(event);
}
});
}
6. 打开地图
//打开地图
private void showMap() {
if(openWorkspace()){
setMapControl();
//打开第一幅地图 刷新组件
String mapName =mWorkspace.getMaps().get(1);
mMap.open(mapName);
mMap.refresh();
}
}