2.1 MapView
1.类概述
当前类存在于包“org.osmdroid.views”内,名称为“MapView”,是osmdroid的主要视图。主要构成如下:
其中用1-4的符号标识出了博主常用的方法,1为最常用。
2.地图的创建
博主项目中全部为单地图案例,所以地图的布局一般都是在xml文件中定义好了的。关于地图的简单创建如下:
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<org.osmdroid.views.MapView
android:id="@+id/osmv"
android:layout_width="match_parent"
android:layout_height="match_parent"></org.osmdroid.views.MapView>
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity:
public class MainActivity extends AppCompatActivity {
MapView osmv=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
osmv=(MapView) findViewById(R.id.osmv);
}
简单的地图创建如上,效果如下,无底图源所谓只能看见网格,然后未禁用自带的缩放控件致使底部会有两个按钮遮挡:
3.地图的设置
此处介绍进入地图创建后通过代码对其进行一些常规性质的设置:
//不显示放大缩小控件
osmv.setBuiltInZoomControls(false);
//可以多点触控(不设置的话地图不可通过手指的手势进行放大、缩小)
map.setMultiTouchControls(true);
//最大缩放等级
map.setMaxZoomLevel(19);
//最小缩放等级
map.setMinZoomLevel(5);
//创建指南针控件(图层)
CompassOverlay co= new CompassOverlay(context, new InternalCompassOrientationProvider(context), map);
map.getOverlays().add(mCompassOverlay); //添加进入地图
//设置地图在水平和垂直方向上是否重复平铺展示
mapView.setVerticalMapRepetitionEnabled(false);
mapView.setHorizontalMapRepetitionEnabled(false);
//设置地图的底图数据(后面部分讲解具体创建步骤)
mapView.setTileProvider(mProvider);
/缩放到当前底图范围
mapView.zoomToBoundingBox(maxBox,true);
4.地图的使用
不知道需要写一些什么内容,等大家有使用需求再进行此部分的更新。