直接去导入google地图是不行的。国内手机被强了。
演示另一种:
1.引入第三方地图框架 ,osmdroid
// implementation 'org.osmdroid:osmdroid-android:6.0.1'
2.xml
<org.osmdroid.views.MapView android:id="@+id/map_view" android:layout_width="match_parent" android:layout_height="match_parent"/>
3.寻找控件初始化,注意 这地图显示我的地区是原生自带的gps。使用百度或其他第3篇讲解。
mMapView.setTileSource(GoogleTileSource.GoogleRoads); //是设置地图资源,目前是google.看第4步
String path = Environment.getExternalStorageDirectory().getAbsolutePath(); File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), Config.FILE_PATH); if (!file.exists() && !file.mkdirs()) { Log.d("TAG", "onCreate: " + file.getAbsolutePath() + " mkdirs fail "); } Configuration.getInstance().setOsmdroidBasePath(new File(path + Config.FILE_PATH)); Configuration.getInstance().setOsmdroidTileCache(new File(path + Config.FILE_PATH)); Configuration.getInstance().load(mContext,mContext.getSharedPreferences(Config.SP_NAME, mContext.MODE_PRIVATE)); mMapView.setDrawingCacheEnabled(true); mMapView.setMultiTouchControls(true);// 触控放大缩小 mMapView.setMaxZoomLevel(22.0); mMapView.setMinZoomLevel(6.0); mMapView.getController().setZoom(15.0); //mMapView mMapView.setUseDataConnection(true); mMapView.setMultiTouchControls(true);// 触控放大缩小 //是否显示地图数据源 mMapView.getOverlayManager().getTilesOverlay().setEnabled(true); //加载谷歌地图,设置地图数据源的形式 mMapView.setTileSource(GoogleTileSource.GoogleRoads); //地图自由旋转 RotationGestureOverlay mRotationGestureOverlay = new RotationGestureOverlay(mMapView); mRotationGestureOverlay.setEnabled(true); mMapView.getOverlays().add(mRotationGestureOverlay); //比例尺配置 if (isShowMetrics){ final DisplayMetrics dm = mContext.getResources().getDisplayMetrics(); ScaleBarOverlay mScaleBarOverlay = new ScaleBarOverlay(mMapView); mScaleBarOverlay.setCentred(true); mScaleBarOverlay.setAlignBottom(true); //底部显示