当前位置: 首页 > 工具软件 > OSMDroid > 使用案例 >

Osmdroid笔记(二)覆盖图层 Overlay的基本使用

柳深
2023-12-01

Osmdroid 是一款完全开源的地图基本操作SDK,包含了多种的基础图层:覆盖层(overlay)、点图层(可包含多点)、线(只能包含单条Polyline)、面(只能包含单个Polygon)、底图图层。

github
https://github.com/osmdroid/osmdroid

开发者文档
https://osmdroid.github.io/osmdroid/

API
https://wiki.openstreetmap.org/wiki/Zh-hans:API_v0.6

Overlay的在开发者手中最大的作用就是可塑性极高,因为它是最基础的覆盖物对象。开发者可通过对Overlay的扩展实现新的覆盖物类型,满足不同的需求。

1.小地图

        //Mini map
        mMinimapOverlay = new MinimapOverlay(context, mMapView.getTileRequestCompleteHandler());
        mMinimapOverlay.setWidth(dm.widthPixels / 5);
        mMinimapOverlay.setHeight(dm.heightPixels / 5);
        mMapView.getOverlays().add(this.mMinimapOverlay);

2.定位

        //My Location
        //note you have handle the permissions yourself, the overlay did not do it for you
        mLocationOverlay = new MyLocationNewOverlay(new GpsMyLocationProvider(context), mMapView);
        mLocationOverlay.enableMyLocation();
        mMapView.getOverlays().add(this.mLocationOverlay);

3.比例尺

        //map scale
        mScaleBarOverlay = new ScaleBarOverlay(mMapView);
        mScaleBarOverlay.setCentred(true);
        mScaleBarOverlay.setScaleBarOffset(dm.widthPixels / 2, 10);
        mMapView.getOverlays().add(this.mScaleBarOverlay);

4.指南针

        //On screen compass
        mCompassOverlay = new CompassOverlay(context, new InternalCompassOrientationProvider(context),
                mMapView);
        mCompassOverlay.enableCompass();
        mMapView.getOverlays().add(this.mCompassOverlay);

5.地图旋转

        //support for map rotation
        mRotationGestureOverlay = new RotationGestureOverlay(mMapView);
        mRotationGestureOverlay.setEnabled(true);
        mMapView.getOverlays().add(this.mRotationGestureOverlay);

这是项目中用到的基础覆盖物添加,可以根据自己的需求重写,特别是定位。

 类似资料: