集成百度离线地图过程

来源:互联网 发布:vb软件开发工程师招聘 编辑:程序博客网 时间:2024/05/20 21:43

现存问题:
一个activity中包含多个fragment,其中一个fragment里面放了mapView,来回切换fragment
一、切换地图所在的fragment黑屏。MapView换成TextureMapView,黑屏没了(其实是换成了白屏)
二、切换应用重启:http://blog.csdn.net/easyer2012/article/details/47316419
三、切换不显示百度地图中的街道、建筑物名称、地铁点:http://blog.csdn.net/easyer2012/article/details/47316419
导入百度地图库和jar包时注意:
1、jar包的位置放在 project/libs下,so库文件放在src/main/jniLibs文件夹下,选中jar,右键as library
2、或者jar,和so库都放在libs下,然后在module中的build.gradle文件夹里,android{}结构里加入

apply plugin: 'com.android.application'android {    compileSdkVersion 26    buildToolsVersion "26.0.1"    defaultConfig {        applicationId "com.jiaxun.mbmap"        minSdkVersion 17        targetSdkVersion 26        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }    sourceSets {        main() {            jniLibs.srcDirs = ['libs']//加入这个        }    }}
View child = mMapView.getChildAt(1);        if (child != null && (child instanceof ImageView || child instanceof ZoomControls))        {            //child.setVisibility(View.INVISIBLE);        }        //不显示百度地图Logo        mMapView.removeViewAt(1);        //地图上比例尺        //mMapView.showScaleControl(false);        // 隐藏缩放控件        //mMapView.showZoomControls(false);

自定义百度地图中的marker图标:将自定义布局转换为一个Bitmap
View markView = LayoutInflater.from(getActivity()).inflate(R.layout.mark_view, null);
布局文件 mark_view.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:background="@android:color/transparent"    android:gravity="center_vertical"    android:orientation="vertical">    <TextView        android:id="@+id/camera_name"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center_horizontal"        android:textColor="@color/top_title_bg_color"        android:textSize="15sp"/>    <ImageView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center_horizontal"        android:scaleType="centerCrop"        android:src="@drawable/icon_mark"/></LinearLayout>
private Bitmap getBitmapFromView(String num, View view)    {//将一个view的对象转换成一个bitmap形的对象。        TextView textView = view.findViewById(R.id.mark_num);        textView.setText(num);        ImageView imageView = view.findViewById(R.id.mark_img);        imageView.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.icon_mark));        view.destroyDrawingCache();        view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.UNSPECIFIED);        view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());        view.setDrawingCacheEnabled(true);        Bitmap bitmap = view.getDrawingCache();        return bitmap;    }
private Bitmap getViewBitmap(String num, View markView)    {        markView.destroyDrawingCache();        TextView textView = markView.findViewById(R.id.mark_num);        textView.setText(num);        ImageView imageView = markView.findViewById(R.id.mark_img);        textView.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.top_title_bg_color));        imageView.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.icon_mark));        markView.setDrawingCacheEnabled(true);        markView.measure(                View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),                View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));        markView.layout(0, 0,                markView.getMeasuredWidth(),                markView.getMeasuredHeight());        markView.buildDrawingCache();        Bitmap cacheBitmap = markView.getDrawingCache();        Bitmap bitmap = Bitmap.createBitmap(cacheBitmap);        return bitmap;    }

MarkerOptions option = new MarkerOptions().icon(BitmapDescriptorFactory
.fromBitmap(getViewBitmap(number, markView))).position(ptCenter);

http://map.baidu.com/zt/faq/

http://lbsyun.baidu.com/index.php?title=androidsdk/guide/offlinemap

http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-map/offlinemap

原创粉丝点击