SuperMap超圖基礎——開啟地圖
超圖的開啟地圖
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();
}
}