SuperMap iMobile for Android 地图开发(一)
创始人
2025-05-29 04:58:30
0

第一步:创建 Android Studio 项目

第一步:创建 Android Studio 项目
Android Studio 有两种创建项目的方法。
第一种是在 Android Studio起始页选择“Start a new Android Studio Project”。
第二种是在 Android Studio 主页选择“File”–>“New Project…”

第二步:使用SuperMap iMobile for Android

1、解压SuperMap iMobile for Android 产品包。
在这里插入图片描述
2、根据功能的需要,从产品包中libs文件夹中选择需要的库文件拷贝到工程顶级路径下,本例以使用910版本为例(其他版本选用对应的库文件即可), 仅使用到二维功能,所以将产品包中libs文件夹中的核心模块库文件com.supermap.data_v910.jar、地图显示模块库文件com.supermap.mapping_v910.jar拷贝到 Module 的libs文件夹
3、然后在Module的build.gradle里加上jni的sourceSets配置:jniLibs.srcDirs = [‘libs’],完整代码请参见下面的代码段。

apply plugin: 'com.android.application'
android {compileSdkVersion 26defaultConfig {applicationId "com.supermap.supermapimobiledemo3d"minSdkVersion 15targetSdkVersion 26versionCode 1versionName "1.0"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}sourceSets {main {jniLibs.srcDirs = ['libs']}}
}dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])implementation 'com.android.support:appcompat-v7:26.1.0'implementation 'com.android.support.constraint:constraint-layout:1.1.2'
}

第三步:添加SuperMap iMobile for Android 最低权限

1、在AndroidManifest.xml中添加








第四步:添加 Activity 配置

在“AndroidManifest.xml”中,承载 MapControl 的那个 Activity 项目中添加 Activity 配置,让地图界面在横竖屏切换时不再重复调用 onCreate。

具体配置如下:

	在Activity 项目中添加如下配置android:configChanges="keyboardHidden|orientation"注意:当Android 版本在4.0以上时,配置configChanges要添加screenSize,具体配置如下:android:configChanges="keyboardHidden|orientation|screenSize"

第五步:支持多格式屏幕配置

在 AndroidManifest.xml的manifest节点下添加以下配置:

 

第六步:编写代码

在布局文件 activity_main.xml 中添加如下代码:




在MainActivity中编写应用程序代码如下:


public class MainActivity extends Activity {private MapControl m_mapcontrol = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();//设置一些系统需要用到的路径Environment.setLicensePath(rootPath + "/SuperMap/license/");Environment.setTemporaryPath(rootPath + "/SuperMap/temp/");Environment.setWebCacheDirectory(rootPath + "/SuperMap/WebCatch");//组件功能必须在Environment初始化之后才能调用Environment.initialization(this);//如果机器中默认不包括需要显示的字体,可以把相关字体文件放在参数所代表的路径中。//例如,如果需要显示阿拉伯文字(若机器中原先不包括相关字体文件),可以把需要的字体文件放在参数所代表的路径中。Environment.setFontsPath(rootPath + "/SuperMap/fonts/");setContentView(R.layout.activity_main);//打开工作空间Workspace m_workspace = new Workspace();WorkspaceConnectionInfo info = new WorkspaceConnectionInfo();info.setServer(rootPath + "/SampleData/GeometryInfo/World.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 OnClickListener() {public void onClick(View v) {m_mapcontrol.getMap().zoom(2);m_mapcontrol.getMap().refresh();}});//缩小按钮m_zoom.setOnZoomOutClickListener(new OnClickListener(){public void onClick(View v) {m_mapcontrol.getMap().zoom(0.5);m_mapcontrol.getMap().refresh();}});m_mapcontrol.getMap().refresh();}
}

第七步:运行工程就可以了

相关内容

热门资讯

【每日一题Day150】LC1... 分割两个字符串得到回文串【LC1616】 给你两个字符串 a 和 b ,它们长度相同...
一年级春游日记 一年级春游日记一年级春游日记1  今天是春游,我作天就去买许多零食和矿泉水,打算在春游的时候干掉,我...
课外读书笔记摘抄 课外读书笔记摘抄(精选12篇)  导语:舍弃就是这样,它也许出于无奈,可在无奈之后是另一份希望,它也...
蚂蚁观察日记 【热门】蚂蚁观察日记4篇蚂蚁观察日记 篇1  我家有一个后院,我经常到后院去观察那些鹭绿上得小精灵—...
ImageView(图像视图) 本节介绍的UI基础控件是:ImageView(图像视图),就是用来显示图像的一个View或者说控件!...
关于接口测试——自动化框架的设... 一、自动化测试框架 在大部分测试人员眼中只要沾上“框架”,就感觉非常神秘,...
【2023.3.8】数据结构复... 【2023.3.8】数据结构复习笔记 文章目录【2023.3.8】数据结构复习笔记序言一、绪论二、线...
数学周记 【精华】数学周记范文(通用20篇)  不经意间,一个星期已经结束了,想必有很多难忘的瞬间吧,是时候仔...
男生贾里全传读书笔记 男生贾里全传读书笔记(通用24篇)  当品读完一部作品后,相信大家一定领会了不少东西,不能光会读哦,...
1.计算机网络和因特网 1.因特网的描述1.1 具体构成描述根据底层实现(硬件软件)端系统(主机...
使用YOLO部署哨岗相机 流程 一.模型选取 将YOLO和Faster RCNN进行搭配,通过多次实验ÿ...
大蒜观察日记 大蒜观察日记3篇  【导语】大蒜虽然是一种很不起眼的植物,但是它的生命力很强,无论在任何的环境下都可...
四年级观察植物的日记 四年级观察植物的日记范文  观察植物的日记需要怎么写呢?同学们是否有观察过植物的生长过程呢?不妨写下...
同一片天空共眠,同一个梦想奋斗... 同一片天空共眠,同一个梦想奋斗《大抠车始歌》(1) Eng...
Vue 3.0 Data选项 #概览 非兼容:data 组件选项声明不再接收纯 JavaScript object...
Java中原子操作的实现原理 Java中原子操作的实现原理1. 什么是原子操作2. 处理器如何是实现操作的原子性2.1 使用总线锁...
春节的街头小学日记 春节的街头小学日记  今天是大年初一,天气晴朗,妈妈带着我一早来到了兴宁路。  街上可热闹了,车水马...
通用实习日记 通用实习日记集合10篇通用实习日记 篇1  4 月18 日  今天是为期三周实习的第一天,心情有点紧...
【JUC进阶】如何合理设置线程... 文章目录1. 前言2. CPU 密集型3. IO密集型4. 实际情况 1. 前言 线程池ÿ...
JavaScript 学习笔记 0、前端三要素 HTML(结构):超文本标记语言ÿ...