愿你出走半生,归来仍是少年!
在Osmdroid中MapView是最为重要的一个类,它承载了用户交互、数据展示等重要责任。
1.初始化
通过在布局文件中引入以下,就可以在当前的界面中添加对应的Mapview对象(此处Map为基于MapView进行二次封装后的类)。
<spec.map.osm.Map
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent" />
2.地图常用初始化配置参数
在地图初始化后,我们会对其进行一些常用的全局配置。包含缩放控件、多点触控设置、平铺设置、默认底图。
需注意的是,当我们未设置默认的有效底图时,若地图中加载有WMS、XYZ等在线图层数据时,在线图层将不会自动刷新、加载数据。所以有一个有效的底图是至关重要的。
//隐藏默认的缩放控件
getZoomController().setVisibility(CustomZoomButtonsController.Visibility.NEVER);
//允许多点触控
setMultiTouchControls(true);
//取消平铺
setHorizontalMapRepetitionEnabled(false);
setVerticalMapRepetitionEnabled(false);
var basicTile = TileLayerFactory.createTilesLayer(getContext(), GlobalConfig.getDefaultTile()).get(0);
setTileProvider(basicTile.getTileProvider());
3.图层控制器
通过getOverlayManager可获取的默认的图层管理器。默认的图层管理器可管理图层,但是和业务的结合还需要进行扩充。
OverlayManager
getOverlayManager()
4.投影信息
通过getProjection可获取的地图的投影信息,可用于坐标转换。
Projection
getProjection()
5.地图控制器
通过getController可获取的地图的控制器,可用于进行地图控制。
IMapController
getController()
MapView虽说是最重要的承载体,但是它最为重要的好像就这几个了。