Skip to main content

地图控件

DaxiMap Android SDK 提供多个控件。控件与地图之间存在交互。本模块将对控件交互部分提供说明介绍。 注:所有控件的创建都必须在onMapInitSuccess事件之后,因为控件需在地图加载完成后,才能与地图有交互。

定位按钮#

DaxiMap Android SDK 提供定位按钮控件,通过点击定位按钮,地图会在自由模式,位置跟随模式,方向和位置跟随模式之间切换。

• 创建控件。参考代码如下:

DXLocationBtnControl locationBtnCtrl = null;
//在地图加载成功的回调中加载
public void onMapInitSuccess() {
locationBtnCtrl = controlFactory.createLocationBtnControl("LocationBtnControl");
locationBtnCtrl.beginUpdate();
locationBtnCtrl.setPosition(new DXScreenCoord(16,0));// 修改位置
locationBtnCtrl.setControlSize(new DXScreenCoord(38, 38)); //控件大小
locationBtnCtrl.setAnchorMode(DXAnchorMode.BOTTOM_LEFT); //控件锚点 比如目前就是位于左下方
locationBtnCtrl.mOnUserTrackingModeChangedEvent.addListener(new DXOnUserTrackingModeChangedListener() {
@Override
public void onUserTrackingModeChanged(DXUserTrackingMode trackingMode) {
//trackingMode为当前定位状态
}
});
locationBtnCtrl.endUpdate();
}

• 创建控件成功后可以通过接口修改控件的属性。参考代码如下:

// 控制显示和隐藏
locationBtnCtrl.setVisible(false);
// 修改位置
locationBtnCtrl.setPosition(16, 30);
// 修改锚点为右上角
locationBtnCtrl.setAnchorMode(DXAnchorMode.TOP_RIGHT);

指北针控件#

DaxiMap Android SDK 提供指北针控件,通过开关设置其显示或隐藏,默认隐藏, 点击指北针会自动正北显示。

• 创建控件。参考代码如下:

DXComapssControl compassCtrl = null;
//在地图加载成功的回调中加载
public void onMapInitSuccess() {
compassCtrl = controlFactory.createLocationBtnControl("CompassControl");
compassCtrl.beginUpdate();
compassCtrl.setPosition(new DXScreenCoord(16,16));
compassCtrl.setControlSize(new DXScreenCoord(38, 38));
compassCtrl.setAnchorMode(DXAnchorMode.TOP_LEFT);
compassCtrl.endUpdate();
}

• 创建控件成功后可以通过接口修改控件的属性。参考代码如下:

// 控制指北针显示和隐藏
compassCtrl.setVisible(false);
// 修改指北针的位置
compassCtrl.setPosition(16, 30);
// 修改指北针的锚点为右上角
compassCtrl.setAnchor(DXAnchorMode.TOP_RIGHT);

放大/缩小控件#

DaxiMap Android SDK 提供地图缩放控件,地图缩放控件按钮点击时会根据比例尺级别放大和缩小地图

• 创建控件。参考代码如下:

DXZoomControl zoomCtrl = null;
//在地图加载成功的回调中加载
public void onMapInitSuccess() {
zoomCtrl = controlFactory.createLocationBtnControl("ZoomControl");
zoomCtrl.beginUpdate();
zoomCtrl.setPosition(new DXScreenCoord(16, 0));
zoomCtrl.setControlSize(new DXScreenCoord(38, 76));
zoomCtrl.setAnchorMode(DXAnchorMode.BOTTOM_RIGHT);
zoomCtrl.endUpdate();
}

• 创建控件成功后可以通过接口修改控件的属性。参考代码如下:

// 控制地图缩放控件显示和隐藏
zoomCtrl.setVisible(false);
// 修改地图缩放控件的位置
zoomCtrl.setPosition(16, 60);
// 修改地图缩放控件的锚点
zoomCtrl.setAnchorDXAnchorMode.BOTTOM_LEFT);

楼层控件#

DaxiMap Android SDK 提供楼层切换控件,楼层切换控件可以通过点击和滑动控制地图楼层的切换

• 创建楼层切换控件

DXFloorListControl floorCtrl = null;
//在地图加载成功的回调中加载
public void onMapInitSuccess() {
floorCtrl = controlFactory.createLocationBtnControl("FloorListControl");
floorCtrl.beginUpdate();
floorCtrl.setPosition(new DXScreenCoord(16, 38));
floorCtrl.setControlSize(new DXScreenCoord(38, 112));
floorCtrl.setAnchorMode(DXAnchorMode.BOTTOM_LEFT);
floorCtrl.setFloorListControlListener(new DXFloorListControlListener() {
@Override
public void onFloorListSelectChanged(DXIndoorFloorInfo floorInfo) {
mMap.changeFloor(floorInfo.floorId);
}
});
floorCtrl.endUpdate();
}

• 创建控件成功后可以通过接口修改控件的属性。参考代码如下:

// 控制楼层切换控件显示和隐藏
floorCtrl.setVisible(false);
// 修改楼层切换控件的位置
floorCtrl.setPosition(16, 60);
// 修改楼层切换控件的锚点
floorCtrl.setAnchor(DXAnchorMode.BOTTOM_LEFT);

2D/3D切换控件#

DaxiMap Android SDK 提供2D/3D切换控件,通过控件可操作地图的2D或3D显示。

• 创建控件。参考代码如下:

DXViewModeControl viewModeCtrl = null;
//在地图加载成功的回调中加载
public void onMapInitSuccess() {
viewModeCtrl = controlFactory.createViewModeControl( "ViewModeControl");
viewModeCtrl.beginUpdate();
viewModeCtrl.setPosition(new DXScreenCoord(16,92));
viewModeCtrl.setControlSize(new DXScreenCoord(38, 38));
viewModeCtrl.setAnchorMode(DXAnchorMode.BOTTOM_RIGHT);
viewModeCtrl.endUpdate();
}

• 创建控件成功后可以通过接口修改控件的属性。参考代码如下:

// 控制 2D/3D切换控件显示和隐藏
viewModeCtrl.setVisible(false);
// 修改 2D/3D切换控件的位置
viewModeCtrl.setPosition(16, 120);
// 修改 2D/3D切换控件的锚点
viewModeCtrl.setAnchor(DXAnchorMode.BOTTOM_LEFT);