百度地图
使用获取SHA1
然后去百度搜
然后注册,注意密码大小写都要有!!!
然后点击控制台
然后点击创建应用
应用名称随便写,应用类型选择Android SDK,包名是你创建的demo名,在清单文件中可以找到再把已经用它
获得的SHA1输入进去(他获得的是所有的,点击复制后现在一个空的text文件中粘贴,只要SHA1就可以了,千万别弄错了,不然出不来,key值不对)
最后点击提交
就会跳到这个页面
然后在清单文件中添加(我第一次就弄错了,第二次才弄好,就是key值不对)
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="Mya3ucDDwmLBPfUg9jV8E680uYgZv6Gu" />
下面是需要导入的包
然后开始写代码
主页面
package com.example.lx_baiduditu; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.ZoomControls; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.MapStatus; import com.baidu.mapapi.map.MapStatusUpdate; import com.baidu.mapapi.map.MapStatusUpdateFactory; import com.baidu.mapapi.map.MapView; import com.baidu.mapapi.map.UiSettings; import com.baidu.mapapi.model.LatLng; import com.example.lx_baiduditu.R; public class MainActivity extends AppCompatActivity implements View.OnClickListener { //主要是用Map对象来改变坐标用的.清华大学坐标,创建LatLng(40.009424, 116.332556); LatLng xh=new LatLng(31.832944,117.191521); //北京大学坐标. (39.997743, 116.316176); LatLng HC=new LatLng(31.891637,117.324073); //天安门坐标 (39.915112, 116.403963) private MapView mapView_mv; private BaiduMap baiduMap; private Button zoomOut_bt; private Button zoomIn_bt; private Button setCompassEnabled_bt; private Button rotate_bt; private Button overlook_bt; private Button newLatLng_bt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //在使用SDK各组件之前初始化context信息,传入ApplicationContext //注意该方法要再setContentView方法之前实现 setContentView(R.layout.activity_main); //控件初始化 initView(); //运行后自动隐藏百度的logo View child = mapView_mv.getChildAt(1); if (child != null && (child instanceof ImageView || child instanceof ZoomControls)){ child.setVisibility(View.INVISIBLE); } //1.0,使用MapVIew对象,控制是否显示MapVIew上面的按钮 //设置不显示缩放控件 该方法的参数是boolen,false是不显示缩放控件 mapView_mv.showScaleControl(false); //设置不显示比例尺控件 该方法的参数是boolen,false是不显示比例尺控件 mapView_mv.showZoomControls(false); //2.获取获取最小(3)、最大缩放级别(21) //获取最小的级别,map对象.getMinZoomLevel(); float minZoomLevel = baiduMap.getMinZoomLevel(); System.out.println("地图最小的级别minZoomLevel: "+minZoomLevel); //获取最大的级别,map对象.getMaxZoomLevel(); float maxZoomLevel = baiduMap.getMaxZoomLevel(); System.out.println("地图最大的级别maxZoomLevel: "+maxZoomLevel); //3.进入地图,默认的中心点是天安门,改变地图中心点为新华大学. //使用MapStatusUpdateFactory工厂调用newLatLng方法,参数还是一个LatLng对象(其参数,先是维度,后是经度) MapStatusUpdate newLatLng = MapStatusUpdateFactory.newLatLng(xh); //BaiduMap对象调用setMapStatus方法往里面穿参数MapStatusUpdate对象. baiduMap.setMapStatus(newLatLng); //4.设置地图缩放为15,使用MapStatusUpdateFactory工厂调用zoomTo,得到MapStatusUpdate对象. MapStatusUpdate zoomTo = MapStatusUpdateFactory.zoomTo(15); //BaiduMap对象调用setMapStatus方法往里面穿参数(MapStatusUpdate)对象. baiduMap.setMapStatus(zoomTo); } /* * 5.通过点击事件,更新地图状态(就是让地图,放大缩小,旋转,俯仰,移动,隐藏指南针) * @param */ public void onClick(View v) { switch (v.getId()) { case R.id.zoomOut_bt: //缩小,使用MapStatusUpdateFactory工厂调用zoomOut方法,得到MapStatusUpdate MapStatusUpdate zoomOut = MapStatusUpdateFactory.zoomOut(); //在用map对象.setMapStatus,把MapStatusUpdate对象传入. baiduMap.setMapStatus(zoomOut); break; case R.id.zoomIn_bt: //放大,使用MapStatusUpdateFactory工厂调用zoomIn,得到MapStatusUpdate MapStatusUpdate zoomIn = MapStatusUpdateFactory.zoomIn(); //在用map对象.setMapStatus,把MapStatusUpdate对象传入. baiduMap.setMapStatus(zoomIn); break; case R.id.rotate_bt: //旋转(0 ~ 360),每次在原来的基础上再旋转30度 // 获取当前地图的状态,map对象.getMapStatus,直接获取到MapStatus MapStatus mapStatus = baiduMap.getMapStatus(); //然后MapStatus.rotate就可以拿到原来的旋转度数. float rotate = mapStatus.rotate; //通过new MapStatus.Builder得到MapStatus.Builder对象 MapStatus.Builder builder = new MapStatus.Builder(); //用MapStatus.Builder对象.rotate(原来旋转的度数+30); builder.rotate(rotate + 30); //用MapStatus.Builder对象.build,得到MapStatus对象 MapStatus build = builder.build(); //用使用MapStatusUpdateFactory工厂调用newMapStatus,把MapStatus对象传入.得到MapStatusUpdate MapStatusUpdate newMapStatus = MapStatusUpdateFactory.newMapStatus(build); //map对象.setMapStatus,传入MapStatusUpdate对象 baiduMap.setMapStatus(newMapStatus); break; case R.id.overlook_bt: //俯仰(0 ~ -45),每次在原来的基础上再俯仰-5度 //获取当前地图的状态,map对象.getMapStatus,直接获取到MapStatus MapStatus mapStatus1 = baiduMap.getMapStatus(); //然后MapStatus.overlook就可以拿到原来的俯仰度数. float overlook = mapStatus1.overlook; //通过new MapStatus.Builder得到MapStatus.Builder对象 MapStatus.Builder builder1 = new MapStatus.Builder(); //用MapStatus.Builder对象.overlook(原来俯仰的度数-5); builder1.overlook(overlook - 5); //用MapStatus.Builder对象.build,得到MapStatus对象 MapStatus build1 = builder1.build(); //用使用MapStatusUpdateFactory工厂调用newMapStatus,把MapStatus对象传入.得到MapStatusUpdate MapStatusUpdate newMapStatusOverlook = MapStatusUpdateFactory.newMapStatus(build1); ////map对象.setMapStatus,传入MapStatusUpdate对象 baiduMap.setMapStatus(newMapStatusOverlook); break; case R.id.newLatLng_bt: //移动,用使用MapStatusUpdateFactory工厂调用newLatLng(LatLng参数); MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newLatLng(HC); //map对象.animateMapStatus,第一个参数是mapStatusUpdate对象,第二个参数是动画执行多少秒. baiduMap.animateMapStatus(mapStatusUpdate,20000); break; case R.id.setCompassEnabled_bt: //.获取地图Ui控制器:隐藏指南针,Map对象.getUiSettings.setCompassEnabled, false是不显示指南针 UiSettings uiSettings = baiduMap.getUiSettings(); uiSettings.setCompassEnabled(false); break; } } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 mapView_mv.onDestroy(); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 mapView_mv.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 mapView_mv.onPause(); } /** * 控件的初始化 */ private void initView() { mapView_mv = (MapView) findViewById(R.id.mapView_mv); //获取对MapVIew的控制类BaiduMap,MapView对象.getMap baiduMap = mapView_mv.getMap(); zoomOut_bt = (Button) findViewById(R.id.zoomOut_bt); zoomIn_bt = (Button) findViewById(R.id.zoomIn_bt); rotate_bt = (Button) findViewById(R.id.rotate_bt); overlook_bt = (Button) findViewById(R.id.overlook_bt); newLatLng_bt = (Button) findViewById(R.id.newLatLng_bt); setCompassEnabled_bt = (Button) findViewById(R.id.setCompassEnabled_bt); zoomOut_bt.setOnClickListener(this); zoomIn_bt.setOnClickListener(this); rotate_bt.setOnClickListener(this); overlook_bt.setOnClickListener(this); newLatLng_bt.setOnClickListener(this); setCompassEnabled_bt.setOnClickListener(this); } /* public boolean onKeyDown(int keyCode, KeyEvent event) { MapStatusUpdate mapStatusUpdate = null; switch (keyCode) { case KeyEvent.KEYCODE_1: // 1) 缩小 mapStatusUpdate = MapStatusUpdateFactory.zoomOut(); break; case KeyEvent.KEYCODE_2: // 2) 放大 mapStatusUpdate = MapStatusUpdateFactory.zoomIn(); break; case KeyEvent.KEYCODE_3: // 获取当前地图的状态 MapStatus currentMapStatus = baiduMap.getMapStatus(); float rotate = currentMapStatus.rotate; System.out.println("rotate = " + rotate); // 3) 旋转(0 ~ 360),每次在原来的基础上再旋转30度 MapStatus.Builder builder = new MapStatus.Builder(); builder.rotate(rotate + 30); MapStatus mapStatus = builder.build(); mapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mapStatus); break; case KeyEvent.KEYCODE_4: // 4) 俯仰(0 ~ -45),每次在原来的基础上再俯仰-5度 currentMapStatus = baiduMap.getMapStatus(); float overlook = currentMapStatus.overlook; System.out.println("overlook = " + overlook); builder = new MapStatus.Builder(); builder.overlook(overlook -5); mapStatus = builder.build(); mapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mapStatus); break; case KeyEvent.KEYCODE_5: // 5) 移动 mapStatusUpdate = MapStatusUpdateFactory.newLatLng(HC); baiduMap.animateMapStatus(mapStatusUpdate, 4000); return true; case KeyEvent.KEYCODE_6: // 6. 获取地图Ui控制器:隐藏指南针 baiduMap.getUiSettings().setCompassEnabled(false); // 不显示指南针 return true; } // 5. 更新地图状态 baiduMap.setMapStatus(mapStatusUpdate); return super.onKeyDown(keyCode, event); }*/ }
MyApp中代码
package com.example.lx_baiduditu; import android.app.Application; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.widget.Toast; import com.baidu.mapapi.SDKInitializer; /** * date:2016/8/17 * author:易宸锋(dell) * function: */ public class MyApp extends Application { public void onCreate() { // 注册一个key验证是否正确的广播所者,我们在开发APP时,经常有一些验证,比如网络等,具体流程如下 //创建一个BroadcastReceiver的内部类, super.onCreate(); BroadcastReceiver receiver = new BroadcastReceiver() { //复写其必须有的方法onReceive,第一个参数上下文,第二个参数是传过来的intent. public void onReceive(Context context, Intent intent) { //参数intent.getAction得到发送过来的Intent里的action动作 String action = intent.getAction(); //创建一个null的字符串. String msg = ""; //进行检查,if判断字符串是否相同,action.equals(),直接用SDKInitializer.SDK_BROADTCAST_ACTION_ST...就可以了 if (action.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK)) { msg = "Key验证成功!"; }//判断SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR :验证失败 else if (action.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR)) { msg = "Key验证失败!"; }//判断SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR :网络错误 else if (action.equals(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR)) { msg = "网络错误"; } //弹吐司,内容就是字符串. Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show(); } }; //代码进行广播的注册配置,也可以在清单配置文件里进行配置 IntentFilter filter = new IntentFilter(); //添加过滤条件,IntentFilter对象.addAction();内容就是SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_.... filter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK); filter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR); filter.addAction(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR); //进行广播注册,1.要注册广播类对象 2配置文件IntentFilter对象. registerReceiver(receiver, filter); // 初始化百度地图SDK SDKInitializer.initialize(getApplicationContext()); } }
ListActivity代码
package com.example.lx_baiduditu; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; /** * date:2016/8/28 * author:易宸锋(dell) * function:创建一个ListActivity,继承ListActivity,让此类成为入口Home,在清单文件进行配置,成为用户的接口 */ public class ListActivity extends android.app.ListActivity { //创建一个内部类的数组, NameAndClass[] datas = {new 一个内部类()} NameAndClass[] datas = { new NameAndClass("HelloBaiduMap", MainActivity.class), new NameAndClass("地图分层",LayerDemoAcitivty.class ), }; /** * 复写onCreate @param savedInstanceState */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //new ArrayAdapter对象 泛型是自定义的内部类 1.第一个参数是上下文,2.android.R.layout.simple_list_item_11 3.内部类数组 ArrayAdapter<NameAndClass> adapter = new ArrayAdapter<NameAndClass>(this, android.R.layout.simple_list_item_1, datas); //setListAdapter,直接传入ArrayAdapter对象. setListAdapter(adapter); } /** * 复写点击事件onListItemClick */ @Override protected void onListItemClick(ListView l, View v, int position, long id) { //进行页面跳转,startActivity,参数是创建个Intent对象,1.上下文 2.跳转类,内部类数组[position].clazz startActivity(new Intent(this, datas[position].clazz)); } /** * 创建内部类 class NameAndClass {} */ class NameAndClass { //定义String name; String name; //定义Class<?> clazz; Class<?> clazz; //自动生成构造方法. public NameAndClass(String name, Class<?> clazz) { super(); this.name = name; this.clazz = clazz; } //自动生成toString方法. @Override public String toString() { return name; } } }
LayerDemoActivity代码
package com.example.lx_baiduditu; import android.view.KeyEvent; import com.baidu.mapapi.map.BaiduMap; public class LayerDemoAcitivty extends BaseActivity { /** *onKeyDown,该方法是更加键盘的按键,完成不同的操作. * @return */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { //使用switch.进行判断 switch (keyCode) { // 显示卫星图层 case KeyEvent.KEYCODE_1: //使用baiduMap对象,调用setMapType方法,传入BaiduMap.MAP_TYPE_SATELLITE参数 map.setMapType(BaiduMap.MAP_TYPE_SATELLITE); //使用baiduMap对象,调用setTrafficEnabled();false是关闭交通层. map.setTrafficEnabled(false); break; // 显示普通图层 case KeyEvent.KEYCODE_2: //使用baiduMap对象,调用setMapType方法,传入BaiduMap.MAP_TYPE_NORMAL参数._ map.setMapType(BaiduMap.MAP_TYPE_NORMAL); //使用baiduMap对象,调用setTrafficEnabled();false是关闭交通层. map.setTrafficEnabled(false); break; // 显示交通图 case KeyEvent.KEYCODE_3: //使用baiduMap对象,调用setTrafficEnabled();true是打开交通层. map.setTrafficEnabled(true); break; default: break; } return super.onKeyDown(keyCode, event); } }
适配器BaseActivity代码
package com.example.lx_baiduditu; import android.app.Activity; import android.os.Bundle; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.MapStatusUpdate; import com.baidu.mapapi.map.MapStatusUpdateFactory; import com.baidu.mapapi.map.MapView; import com.baidu.mapapi.model.LatLng; /** * date:2016/9/2 * author:易宸锋(dell) * function:创建一个BaseActivity类,以后在创建百度地图的Activity时,继承BaseActivity. */ public class BaseActivity extends Activity { protected MapView mapView; /** 地图控制器,用以控制地图的移动、旋转、放大缩小等等 */ protected BaiduMap map; /** 清华大学*/ protected LatLng qhPos = new LatLng(40.009424,116.332556); /** 北京坐标 */ protected LatLng bjPos = new LatLng(39.997743,116.316176); /** 天安门坐标 */ protected LatLng tamPos = new LatLng(39.915112,116.403963); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout); // 获取地图控件引用 mapView = (MapView) findViewById(R.id.mapView_mv); map = mapView.getMap(); // 获取地图控制器 // 1. 隐藏缩放按钮、比例尺 mapView.showScaleControl(true); // 设置比例尺是否显示 mapView.showZoomControls(true); // 设置缩放按钮是否显示 // 2. 获取获取最小(3)、最大缩放级别(20) float minZoomLevel = map.getMinZoomLevel(); float maxZoomLevel = map.getMaxZoomLevel(); System.out.println("minZoomLevel = " + minZoomLevel + ", maxZoomLevel = " + maxZoomLevel); // 3. 设置地图中心点为清华大学 MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newLatLng(qhPos); map.setMapStatus(mapStatusUpdate); // 4. 设置地图缩放为15 mapStatusUpdate = MapStatusUpdateFactory.zoomTo(15); map.setMapStatus(mapStatusUpdate); } @Override protected void onDestroy() { super.onDestroy(); // 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 mapView.onDestroy(); } @Override protected void onResume() { super.onResume(); // 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 mapView.onResume(); } @Override protected void onPause() { super.onPause(); // 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 mapView.onPause(); } }
主页面布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <com.baidu.mapapi.map.MapView android:id="@+id/mapView_mv" android:layout_width="match_parent" android:layout_weight="1" android:layout_height="0dp" android:clickable="true" /> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:id="@+id/zoomOut_bt" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="缩小"/> <Button android:id="@+id/zoomIn_bt" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="放大"/> <Button android:id="@+id/rotate_bt" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="旋转"/> <Button android:id="@+id/overlook_bt" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="俯仰"/> <Button android:id="@+id/newLatLng_bt" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="定位"/> <Button android:id="@+id/setCompassEnabled_bt" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="隐藏"/> </LinearLayout> </LinearLayout>
写的控件布局layout
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.baidu.mapapi.map.MapView android:id="@+id/mapView_mv" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" /> </LinearLayout>
清单文件中添加的权限和更改的东西
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.lx_baiduditu"> <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> <!-- 这个权限用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 这个权限用于访问GPS定位 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 获取运营商信息,用于支持提供运营商信息相关的接口 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 用于读取手机当前的状态 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 访问网络,网络定位需要上网 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <application android:name=".MyApp" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="Mya3ucDDwmLBPfUg9jV8E680uYgZv6Gu" /> <activity android:name="com.example.lx_baiduditu.LayerDemoAcitivty"/> </application> </manifest>
红色字体是包名,改成自己的就可以了
需要添加的依赖,也就是libs文件夹下的那一堆东西,直接添加小奶瓶就行了,不过还要添加一些东西
用红色字体显示
apply plugin: 'com.android.application' android { compileSdkVersion 26 defaultConfig { applicationId "com.example.lx_baiduditu" minSdkVersion 15 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.srcDir 'libs' } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support.constraint:constraint-layout:1.1.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation files('libs/baidumapapi_base_v3_7_3.jar') implementation files('libs/baidumapapi_cloud_v3_7_3.jar') implementation files('libs/baidumapapi_map_v3_7_3.jar') implementation files('libs/baidumapapi_radar_v3_7_3.jar') implementation files('libs/baidumapapi_search_v3_7_3.jar') implementation files('libs/baidumapapi_util_v3_7_3.jar') implementation files('libs/locSDK_6.13.jar') }
如果还不行请参考这个:
怕不是最详细的集成笔记......
https://app.yinxiang.com/shard/s46/nl/19613160/898d58ab-f5d6-48a3-8483-bf8b5eead3b8
百度地图的,只有地图显示
https://app.yinxiang.com/shard/s46/nl/19613160/898d58ab-f5d6-48a3-8483-bf8b5eead3b8
百度地图的,只有地图显示
定位bug
百度SDK共性问题:在定位上,第一个参数是维度,第二参数是经度.(而我们平常是经度在前,维度在后,称经纬度.百度这个定义虽然没有什么大问题,但是和我们的习惯不符合)
放大缩小bug,就是有些手机加载的话放大缩小图片会变得非常大
百度SDK3.7版本:百度地图提供的地图模块里有关放大缩小的Button按钮,适配没有做.
大神们用这个消除百度logo
怎么取消掉百度地图默认所带的LOGO
补充:隐藏百度地图左下角的LOGO
- 百度地图的LOGO图片放在baidumapapi_map_vxxx.jar下的assert目录底下
- 将此jar包放到本地,解压打开,使用2张透明的图片替换LOGO图片即可
- 将替换好的jar包放到工程的libs文件夹下面
补充:隐藏百度地图左下角的LOGO
- 百度地图的LOGO图片放在baidumapapi_map_vxxx.jar下的assert目录底下
- 将此jar包放到本地,解压打开,使用2张透明的图片替换LOGO图片即可
- 将替换好的jar包放到工程的libs文件夹下面
使用百度地图时有个bug就是他会在左下角显示百度的logo,更换太麻烦,不过不怕,用下面的代码就可以清除
// 隐藏logo
View child = mMapView.getChildAt(1);
if (child != null && (child instanceof ImageView || child instanceof ZoomControls)){
child.setVisibility(View.INVISIBLE);
}
oncreate方法里写
隐藏百度地图的logo
注意:View child = mMapView.getChildAt(1);
if (child != null && (child instanceof ImageView || child instanceof ZoomControls)){
child.setVisibility(View.INVISIBLE);
}
oncreate方法里写
隐藏百度地图的logo
在一些机型会出现显示不出来地图控件,比如在oppo手机上就什么都没有
百度地图不能运行到genymotion虚拟机上面,会报异常,只能运行到小米乐视真机上.
百度地图出现空白或者都是格子状的问题:
* 1.模拟器没网络,没有开网络权限
* 2.包名或者sha1值出错
* 3.没有初始