Skip to main content

地图显示

本单元介绍显示DaxiMap地图的最简单的Android是咧

添加密钥(Key)#

方式一 在application中添加开发密钥

<application>
<meta-data android:name="com.daximap.mapapi.appkey" android:value="开发者 key" />

方式二 创建Application,并于onCreat()中以如下方式进行密钥添加

DXSDK.setToken("开发者 key");

添加所需权限#

使用DXMapSDK需要添加读写权限和网络访问权限

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
// 自定义缓存目录添加下面两个
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

在布局xml文件中添加地图控件#

在布局xml文件中添加地图控件

<com.indoor.map.api.DXMapView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/mapview"/>

初始化DaxiMap SDK#

在应用程序创建时初始化 SDK引用的Context 全局变量,注意这个MainApplication需要在AndroidManifest.xml里注册,如项目已有自己Application可写入其中的onCreare()方法中

public class MainApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
//初始化SDK
DXSDK.init(this);
// 设置Token,在地图管理页面获取
DXSDK.setToken("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
//设置配置文件版本 若无特殊情况 默认为3 可不修改
DXSDK.setConfigVersion(3);
}
}

将application对应的类改为MainApplication(已有Application时则不需要重复注册)

<application
android:name="com.daxi.map3d.demo.MainApplication" />

加载地图#

public class MainActivity extends Activity {
DXMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//在android 6.0以上的系统中地图需要动态申请权限
DXPermissionVerifyHelper.requestEssentialPermissions(this, new DXPermissionVerifyListener(){
@Override
public void hasPermission(List<String> granted, boolean isAll) {
if (!isAll) return;
// 所有权限都已经获取
createMap();
}
@Override
public void noPermission(List<String> denied, boolean quick) {
//存在未获取的权限
}
});
}
// 创建地图
private void createMap() {
DXMapView mMapView = (DXMapView) findViewById(R.id.mapView);
mMap = mMapView.getMap(); //获取地图操作对象
mMap.loadMap(""); //打开地图
}
@Override
protected void onDestroy() {
if (mMap != null) {
mMap.onDestroy();
}
super.onDestroy();
}
}