导读

1.简介
2.获取SHA1码的方式
3.配置环境
4.地图初养成
5.显示地图覆盖物
6.窗口信息的添加及发起截图
7.POI检索
8.线路规划
9.定位
10.导航
11.全景图

简介

使用流程

注册登录

点击上图获取密钥

点击上图创建应用


⚠️这里要选择android SDK
下载SDK,事例代码,类参考

获取SHA1码的方式

获取开发版

获取发布版

在finish后,从存储的路径找到生成的文件,然后拷贝到下图

在Terminal中复制输入如下命令(是一句哦)

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android 

然后得到发布码

填写完毕后会创建应用如下图

配置环境

上一步完成后,我们还需要配置环境,需要用到上边下载的文件

⚠️以下内容要去百度地图官网查看最新情况

首先,将下载的文件解压,我们要用到的是下图文件

Docs文件夹 —-百度地图的类库及接口
Lib文件夹—-开发要导入工程的配置文件
Sample文件夹—-百度官方的开发案例

⚠️图中标号对应的拷到对应的位置,在工程视图下操作较容易

然后添加依赖⚠️要到百度地图官网上查最新的代码


sourceSets{main{jniLibs.srcDir 'libs'//说明so的路径为该libs路径,关联所有地图SDK的so文件}}
compile files('libs/BaiduLBS_Android.jar')

 signingConfigs{release{storeFile file("/Users/air/Documents/Android/app/Android.jks")storePassword "********"keyAlias "key0"keyPassword "******"}}
buildTypes {release {//是否混淆minifyEnabled false//是否移除无用资源zipAlignEnabled true//混淆的配置文件proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'signingConfig signingConfigs.release}
}

⚠️这里有个安全问题

再然后在清单文件中添加权限⚠️在百度地图官网上查询

⚠️上图的开发者key来自下图

地图初养成

见上图了,官方给的使用方法,不过开发中经常要写我们自己的application

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"package="com.hala.mapdemo"><application
        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"android:name=".HalaApplication"><meta-data
            android:name="com.baidu.lbsapi.API_KEY"android:value="自己创建的百度地图项目下面有" /><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>//获取设备网络状态,禁用后无法获取网络状态<uses-permission android:name="android.permission.INTERNET"/>//网络权限,当禁用后,无法进行检索等相关业务<uses-permission android:name="android.permission.READ_PHONE_STATE" />//读取设备硬件信息,统计数据<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />//读取系统信息,包含系统版本等信息,用作统计<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />//获取设备的网络状态,鉴权所需网络代理<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>//允许sd卡写权限,需写入地图数据,禁用后无法显示地图<uses-permission android:name="android.permission.WRITE_SETTINGS"tools:ignore="ProtectedPermissions" />//获取统计数据<uses-permission android:name="android.permission.GET_TASKS" />//鉴权所需该权限获取进程列表<uses-permission android:name="android.permission.CAMERA" />//使用步行AR导航,配置Camera权限</manifest>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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"><com.baidu.mapapi.map.MapView
        android:id="@+id/bmapView"android:layout_width="fill_parent"android:layout_height="fill_parent"android:clickable="true" /></android.support.constraint.ConstraintLayout>

HalaApplication.java

package com.hala.mapdemo;import android.app.Application;import com.baidu.mapapi.SDKInitializer;//别忘了在清单文件中注册自定义application
public class HalaApplication extends Application {@Overridepublic void onCreate() {super.onCreate();//初始化地图SDKInitializer.initialize(getApplicationContext());}
}

MainActivity.java

package com.hala.mapdemo;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapView;public class MainActivity extends AppCompatActivity {MapView mMapView=null;//展示地图视图BaiduMap mBaiduMap;//控制器@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mMapView=(MapView)this.findViewById(R.id.bmapView);mBaiduMap=mMapView.getMap();}@Overrideprotected void onDestroy() {super.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理mMapView.onDestroy();}@Overrideprotected void onResume() {super.onResume();//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理mMapView.onResume();}@Overrideprotected void onPause() {super.onPause();//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理mMapView.onPause();}
}

显示地图覆盖物

⚠️其他文件相同

MainActivity.java

package com.hala.mapdemo;import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.PolygonOptions;
import com.baidu.mapapi.map.TextOptions;
import com.baidu.mapapi.model.LatLng;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {MapView mMapView=null;//展示地图视图BaiduMap mBaiduMap;//控制器@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mMapView=(MapView)this.findViewById(R.id.bmapView);mBaiduMap=mMapView.getMap();//设置地图的类型mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);addText();
//        addPoly();
//        addMarker();}@Overrideprotected void onDestroy() {super.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理mMapView.onDestroy();}@Overrideprotected void onResume() {super.onResume();//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理mMapView.onResume();}@Overrideprotected void onPause() {super.onPause();//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理mMapView.onPause();}/***添加文字覆盖物*/public void addText(){TextOptions opt=new TextOptions();opt.text("Emilia Clark");opt.fontColor(Color.BLACK);opt.fontSize(24);LatLng point=new LatLng(39,116);opt.position(point);//添加覆盖物mBaiduMap.addOverlay(opt);}/*** 添加多边形覆盖物*/public void addPoly(){PolygonOptions poly=new PolygonOptions();List<LatLng> lats=new ArrayList<LatLng>();LatLng point1=new LatLng(39,116);lats.add(point1);LatLng point2=new LatLng(38,116);lats.add(point2);LatLng point3=new LatLng(39,117);lats.add(point3);poly.points(lats);mBaiduMap.addOverlay(poly);}/*** 添加图片标志物*/public void addMarker(){MarkerOptions opt=new MarkerOptions();BitmapDescriptor icon= BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher);opt.icon(icon);LatLng point=new LatLng(39,116);opt.position(point);mBaiduMap.addOverlay(opt);}
}

窗口信息的添加及发起截图

⚠️其他文件保持不变

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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"><Button
        android:id="@+id/btn_icon"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="截图"android:onClick="onClick"/><com.baidu.mapapi.map.MapView
        android:id="@+id/bmapView"android:layout_width="fill_parent"android:layout_height="fill_parent"android:clickable="true"app:layout_constraintTop_toBottomOf="@+id/btn_icon" /></android.support.constraint.ConstraintLayout>

MainActivity.java

package com.hala.mapdemo;import android.graphics.Bitmap;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.InfoWindow;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.PolygonOptions;
import com.baidu.mapapi.map.TextOptions;
import com.baidu.mapapi.model.LatLng;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {MapView mMapView=null;//展示地图视图BaiduMap mBaiduMap;//控制器@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mMapView=(MapView)this.findViewById(R.id.bmapView);mBaiduMap=mMapView.getMap();//设置地图的类型mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);addText();
//        addPoly();
//        addMarker();
//        addInfo();}@Overrideprotected void onDestroy() {super.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理mMapView.onDestroy();}@Overrideprotected void onResume() {super.onResume();//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理mMapView.onResume();}@Overrideprotected void onPause() {super.onPause();//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理mMapView.onPause();}/***添加文字覆盖物*/public void addText(){TextOptions opt=new TextOptions();opt.text("Emilia Clark");opt.fontColor(Color.BLACK);opt.fontSize(24);LatLng point=new LatLng(39,116);opt.position(point);//添加覆盖物mBaiduMap.addOverlay(opt);}/*** 添加多边形覆盖物*/public void addPoly(){PolygonOptions poly=new PolygonOptions();List<LatLng> lats=new ArrayList<LatLng>();LatLng point1=new LatLng(39,116);lats.add(point1);LatLng point2=new LatLng(38,116);lats.add(point2);LatLng point3=new LatLng(39,117);lats.add(point3);poly.points(lats);mBaiduMap.addOverlay(poly);}/*** 添加图片标志物*/public void addMarker(){MarkerOptions opt=new MarkerOptions();BitmapDescriptor icon= BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher);opt.icon(icon);LatLng point=new LatLng(39,116);opt.position(point);mBaiduMap.addOverlay(opt);}/*** 添加窗口视图*/public void addInfo(){BitmapDescriptor icon=BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher);LatLng point=new LatLng(39,116);InfoWindow info=new InfoWindow(icon,point,0,new InfoWindowOnClickListener());mBaiduMap.showInfoWindow(info);}//窗口视图的监听器,InfoWindow的第四个参数class InfoWindowOnClickListener implements InfoWindow.OnInfoWindowClickListener{@Overridepublic void onInfoWindowClick() {Toast.makeText(MainActivity.this, "窗口信息被点击了", Toast.LENGTH_SHORT).show();}}//截图点击事件public void onClick(View view){mBaiduMap.snapshot(new BaiduMap.SnapshotReadyCallback() {@Overridepublic void onSnapshotReady(Bitmap bitmap) {Toast.makeText(MainActivity.this, "地址:"+bitmap, Toast.LENGTH_SHORT).show();}});}
}

POI检索

⚠️其他文件不变

MainActivity.java

package com.hala.mapdemo;import android.graphics.Bitmap;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.InfoWindow;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.PolygonOptions;
import com.baidu.mapapi.map.TextOptions;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.utils.poi.BaiduMapPoiSearch;
import com.baidu.mapapi.utils.poi.PoiParaOption;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {MapView mMapView=null;//展示地图视图BaiduMap mBaiduMap;//控制器@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mMapView=(MapView)this.findViewById(R.id.bmapView);mBaiduMap=mMapView.getMap();//设置地图的类型mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);addText();
//        addPoly();
//        addMarker();
//        addInfo();
//        poiSearch();}@Overrideprotected void onDestroy() {super.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理mMapView.onDestroy();}@Overrideprotected void onResume() {super.onResume();//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理mMapView.onResume();}@Overrideprotected void onPause() {super.onPause();//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理mMapView.onPause();}/***添加文字覆盖物*/public void addText(){TextOptions opt=new TextOptions();opt.text("Emilia Clark");opt.fontColor(Color.BLACK);opt.fontSize(24);LatLng point=new LatLng(39,116);opt.position(point);//添加覆盖物mBaiduMap.addOverlay(opt);}/*** 添加多边形覆盖物*/public void addPoly(){PolygonOptions poly=new PolygonOptions();List<LatLng> lats=new ArrayList<LatLng>();LatLng point1=new LatLng(39,116);lats.add(point1);LatLng point2=new LatLng(38,116);lats.add(point2);LatLng point3=new LatLng(39,117);lats.add(point3);poly.points(lats);mBaiduMap.addOverlay(poly);}/*** 添加图片标志物*/public void addMarker(){MarkerOptions opt=new MarkerOptions();BitmapDescriptor icon= BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher);opt.icon(icon);LatLng point=new LatLng(39,116);opt.position(point);mBaiduMap.addOverlay(opt);}/*** 添加窗口视图*/public void addInfo(){BitmapDescriptor icon=BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher);LatLng point=new LatLng(39,116);InfoWindow info=new InfoWindow(icon,point,0,new InfoWindowOnClickListener());mBaiduMap.showInfoWindow(info);}//窗口视图的监听器,InfoWindow的第四个参数class InfoWindowOnClickListener implements InfoWindow.OnInfoWindowClickListener{@Overridepublic void onInfoWindowClick() {Toast.makeText(MainActivity.this, "窗口信息被点击了", Toast.LENGTH_SHORT).show();}}//截图点击事件public void onClick(View view){mBaiduMap.snapshot(new BaiduMap.SnapshotReadyCallback() {@Overridepublic void onSnapshotReady(Bitmap bitmap) {Toast.makeText(MainActivity.this, "地址:"+bitmap, Toast.LENGTH_SHORT).show();}});}/***POI检索*/public void poiSearch(){BaiduMapPoiSearch poi=new BaiduMapPoiSearch();PoiParaOption opt=new PoiParaOption();opt.key("肯德基");opt.radius(5000);LatLng point1=new LatLng(39,116);opt.center(point1);poi.openBaiduMapPoiNearbySearch(opt,this);}
}

线路规划

⚠️其他文件不变
MainActivity.java

package com.hala.mapdemo;import android.graphics.Bitmap;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.InfoWindow;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.PolygonOptions;
import com.baidu.mapapi.map.TextOptions;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.utils.poi.BaiduMapPoiSearch;
import com.baidu.mapapi.utils.poi.PoiParaOption;
import com.baidu.mapapi.utils.route.BaiduMapRoutePlan;
import com.baidu.mapapi.utils.route.RouteParaOption;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {MapView mMapView=null;//展示地图视图BaiduMap mBaiduMap;//控制器@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mMapView=(MapView)this.findViewById(R.id.bmapView);mBaiduMap=mMapView.getMap();//设置地图的类型mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);addText();
//        addPoly();
//        addMarker();
//        addInfo();
//        poiSearch();rountPlan();}@Overrideprotected void onDestroy() {super.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理mMapView.onDestroy();}@Overrideprotected void onResume() {super.onResume();//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理mMapView.onResume();}@Overrideprotected void onPause() {super.onPause();//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理mMapView.onPause();}/***添加文字覆盖物*/public void addText(){TextOptions opt=new TextOptions();opt.text("Emilia Clark");opt.fontColor(Color.BLACK);opt.fontSize(24);LatLng point=new LatLng(39,116);opt.position(point);//添加覆盖物mBaiduMap.addOverlay(opt);}/*** 添加多边形覆盖物*/public void addPoly(){PolygonOptions poly=new PolygonOptions();List<LatLng> lats=new ArrayList<LatLng>();LatLng point1=new LatLng(39,116);lats.add(point1);LatLng point2=new LatLng(38,116);lats.add(point2);LatLng point3=new LatLng(39,117);lats.add(point3);poly.points(lats);mBaiduMap.addOverlay(poly);}/*** 添加图片标志物*/public void addMarker(){MarkerOptions opt=new MarkerOptions();BitmapDescriptor icon= BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher);opt.icon(icon);LatLng point=new LatLng(39,116);opt.position(point);mBaiduMap.addOverlay(opt);}/*** 添加窗口视图*/public void addInfo(){BitmapDescriptor icon=BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher);LatLng point=new LatLng(39,116);InfoWindow info=new InfoWindow(icon,point,0,new InfoWindowOnClickListener());mBaiduMap.showInfoWindow(info);}//窗口视图的监听器,InfoWindow的第四个参数class InfoWindowOnClickListener implements InfoWindow.OnInfoWindowClickListener{@Overridepublic void onInfoWindowClick() {Toast.makeText(MainActivity.this, "窗口信息被点击了", Toast.LENGTH_SHORT).show();}}//截图点击事件public void onClick(View view){mBaiduMap.snapshot(new BaiduMap.SnapshotReadyCallback() {@Overridepublic void onSnapshotReady(Bitmap bitmap) {Toast.makeText(MainActivity.this, "地址:"+bitmap, Toast.LENGTH_SHORT).show();}});}/*** POI检索*/public void poiSearch(){BaiduMapPoiSearch poi=new BaiduMapPoiSearch();PoiParaOption opt=new PoiParaOption();opt.key("肯德基");opt.radius(5000);LatLng point1=new LatLng(39,116);opt.center(point1);poi.openBaiduMapPoiNearbySearch(opt,this);}/*** 公交路线规划*/public void rountPlan(){BaiduMapRoutePlan plan=new BaiduMapRoutePlan();LatLng start=new LatLng(39.93923,116.357428);LatLng end=new LatLng(39.91923,116.327428);RouteParaOption opt=new RouteParaOption();opt.cityName("北京");opt.startPoint(start);opt.startName("天安门");opt.endPoint(end);opt.endName("龙泽");plan.openBaiduMapTransitRoute(opt,this);}
}

定位

定位需要在前边基础上再次配置关于定位功能的环境

将上边两图的Service和权限复制到清单文件中

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"package="com.hala.mapdemo"><application
        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"android:name=".HalaApplication"><meta-data
            android:name="com.baidu.lbsapi.API_KEY"android:value="41WOIuD9aoOcGqEElSGCmUWaMyxwVtRC " /><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><service android:name="com.baidu.location.f"android:enabled="true" android:process=":remote"></service></application><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>//获取设备网络状态,禁用后无法获取网络状态<uses-permission android:name="android.permission.INTERNET"/>//网络权限,当禁用后,无法进行检索等相关业务<uses-permission android:name="android.permission.READ_PHONE_STATE" />//读取设备硬件信息,统计数据<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />//读取系统信息,包含系统版本等信息,用作统计<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />//获取设备的网络状态,鉴权所需网络代理<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>//允许sd卡写权限,需写入地图数据,禁用后无法显示地图<uses-permission android:name="android.permission.WRITE_SETTINGS"tools:ignore="ProtectedPermissions" />//获取统计数据<uses-permission android:name="android.permission.GET_TASKS" />//鉴权所需该权限获取进程列表<uses-permission android:name="android.permission.CAMERA" />//使用步行AR导航,配置Camera权限<!-- 这个权限用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><!-- 这个权限用于访问GPS定位--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><!-- 获取运营商信息,用于支持提供运营商信息相关的接口--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位--><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission><!-- 用于读取手机当前的状态--><uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission><!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><!-- 访问网络,网络定位需要上网--><uses-permission android:name="android.permission.INTERNET" /><!-- SD卡读取权限,用户写入离线定位数据--><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"tools:ignore="ProtectedPermissions"></uses-permission></manifest>

MainActivity.java

package com.hala.mapdemo;import android.graphics.Bitmap;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.InfoWindow;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.map.PolygonOptions;
import com.baidu.mapapi.map.TextOptions;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.utils.poi.BaiduMapPoiSearch;
import com.baidu.mapapi.utils.poi.PoiParaOption;
import com.baidu.mapapi.utils.route.BaiduMapRoutePlan;
import com.baidu.mapapi.utils.route.RouteParaOption;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {MapView mMapView=null;//展示地图视图BaiduMap mBaiduMap;//控制器@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mMapView=(MapView)this.findViewById(R.id.bmapView);mBaiduMap=mMapView.getMap();//设置地图的类型mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);addText();
//        addPoly();
//        addMarker();
//        addInfo();
//        poiSearch();
//        rountPlan();location();}@Overrideprotected void onDestroy() {super.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理mMapView.onDestroy();}@Overrideprotected void onResume() {super.onResume();//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理mMapView.onResume();}@Overrideprotected void onPause() {super.onPause();//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理mMapView.onPause();}@Overrideprotected void onStop() {super.onStop();//如果停止,就取消定位client.unRegisterLocationListener(myLocationListener);client.stop();}/***添加文字覆盖物*/public void addText(){TextOptions opt=new TextOptions();opt.text("Emilia Clark");opt.fontColor(Color.BLACK);opt.fontSize(24);LatLng point=new LatLng(39,116);opt.position(point);//添加覆盖物mBaiduMap.addOverlay(opt);}/*** 添加多边形覆盖物*/public void addPoly(){PolygonOptions poly=new PolygonOptions();List<LatLng> lats=new ArrayList<LatLng>();LatLng point1=new LatLng(39,116);lats.add(point1);LatLng point2=new LatLng(38,116);lats.add(point2);LatLng point3=new LatLng(39,117);lats.add(point3);poly.points(lats);mBaiduMap.addOverlay(poly);}/*** 添加图片标志物*/public void addMarker(){MarkerOptions opt=new MarkerOptions();BitmapDescriptor icon= BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher);opt.icon(icon);LatLng point=new LatLng(39,116);opt.position(point);mBaiduMap.addOverlay(opt);}/*** 添加窗口视图*/public void addInfo(){BitmapDescriptor icon=BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher);LatLng point=new LatLng(39,116);InfoWindow info=new InfoWindow(icon,point,0,new InfoWindowOnClickListener());mBaiduMap.showInfoWindow(info);}//窗口视图的监听器,InfoWindow的第四个参数class InfoWindowOnClickListener implements InfoWindow.OnInfoWindowClickListener{@Overridepublic void onInfoWindowClick() {Toast.makeText(MainActivity.this, "窗口信息被点击了", Toast.LENGTH_SHORT).show();}}//截图点击事件public void onClick(View view){mBaiduMap.snapshot(new BaiduMap.SnapshotReadyCallback() {@Overridepublic void onSnapshotReady(Bitmap bitmap) {Toast.makeText(MainActivity.this, "地址:"+bitmap, Toast.LENGTH_SHORT).show();}});}/*** POI检索*/public void poiSearch(){BaiduMapPoiSearch poi=new BaiduMapPoiSearch();PoiParaOption opt=new PoiParaOption();opt.key("肯德基");opt.radius(5000);LatLng point1=new LatLng(39,116);opt.center(point1);poi.openBaiduMapPoiNearbySearch(opt,this);}/*** 公交路线规划*/public void rountPlan(){BaiduMapRoutePlan plan=new BaiduMapRoutePlan();LatLng start=new LatLng(39.93923,116.357428);LatLng end=new LatLng(39.91923,116.327428);RouteParaOption opt=new RouteParaOption();opt.cityName("北京");opt.startPoint(start);opt.startName("天安门");opt.endPoint(end);opt.endName("龙泽");plan.openBaiduMapTransitRoute(opt,this);}MyLocationListener myLocationListener;LocationClient client;/*** 定位*/public void location(){//允许进行定位 完成后关闭mBaiduMap.setMyLocationEnabled(true);LocationClientOption opt=new LocationClientOption();//坐标系opt.setCoorType("bd09ll");//打开GPSopt.setOpenGps(true);//设置定位模式  高精度opt.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);//设置监听client=new LocationClient(this,opt);myLocationListener=new MyLocationListener();client.registerLocationListener(myLocationListener);//启动定位client.start();mBaiduMap.setMyLocationEnabled(false);}class MyLocationListener implements BDLocationListener{@Overridepublic void onReceiveLocation(BDLocation bdLocation) {MyLocationData data=new MyLocationData.Builder().latitude(bdLocation.getLatitude()).longitude(bdLocation.getLongitude()).build();mBaiduMap.setMyLocationData(data);//将地图中心移动到定位位置LatLng lat=new LatLng(bdLocation.getLatitude(),bdLocation.getLongitude());MapStatusUpdate update= MapStatusUpdateFactory.newLatLng(lat);mBaiduMap.animateMapStatus(update);//窗口信息 定位图标BitmapDescriptor icon=BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher);InfoWindow infoWindow=new InfoWindow(icon,lat,0,null);mBaiduMap.showInfoWindow(infoWindow);}}
}

导航

在前边配置基础上加如下权限到清单文件

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"package="com.hala.mapdemo"><application
        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"android:name=".HalaApplication"><meta-data
            android:name="com.baidu.lbsapi.API_KEY"android:value="41WOIuD9aoOcGqEElSGCmUWaMyxwVtRC " /><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><service android:name="com.baidu.location.f"android:enabled="true" android:process=":remote"></service></application><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>//获取设备网络状态,禁用后无法获取网络状态<uses-permission android:name="android.permission.INTERNET"/>//网络权限,当禁用后,无法进行检索等相关业务<uses-permission android:name="android.permission.READ_PHONE_STATE" />//读取设备硬件信息,统计数据<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />//读取系统信息,包含系统版本等信息,用作统计<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />//获取设备的网络状态,鉴权所需网络代理<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>//允许sd卡写权限,需写入地图数据,禁用后无法显示地图<uses-permission android:name="android.permission.WRITE_SETTINGS"tools:ignore="ProtectedPermissions" />//获取统计数据<uses-permission android:name="android.permission.GET_TASKS" />//鉴权所需该权限获取进程列表<uses-permission android:name="android.permission.CAMERA" />//使用步行AR导航,配置Camera权限<!-- 这个权限用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><!-- 这个权限用于访问GPS定位--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><!-- 获取运营商信息,用于支持提供运营商信息相关的接口--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位--><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission><!-- 用于读取手机当前的状态--><uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission><!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><!-- 访问网络,网络定位需要上网--><uses-permission android:name="android.permission.INTERNET" /><!-- SD卡读取权限,用户写入离线定位数据--><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"tools:ignore="ProtectedPermissions"></uses-permission><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"tools:ignore="ProtectedPermissions" /><uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCES_MOCK_LOCATION" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /><uses-permission android:name="android.permission.WAKE_LOCK" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_GPS" /><!-- SDK1.5需要android.permission.GET_TASKS权限判断本程序是否为当前运行的应用? --><uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.BROADCAST_STICKY" /><uses-permission android:name="android.permission.WRITE_SETTINGS"tools:ignore="ProtectedPermissions" /><!-- 来电消音 --><uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /><uses-permission android:name="android.permission.RECORD_AUDIO" /><!-- 摄影机 --><uses-permission android:name="android.permission.CAMERA" /></manifest>

Main2Activity.java

package com.hala.mapdemo;import android.content.Intent;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;import com.baidu.navisdk.adapter.BNRoutePlanNode;
import com.baidu.navisdk.adapter.BaiduNaviManager;import java.io.File;
import java.util.ArrayList;
import java.util.List;public class Main2Activity extends AppCompatActivity {private Button mBtnStart;private BaiduNaviManager mBaiduNaviManager;private BNRoutePlanNode sNode;private BNRoutePlanNode eNode;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main2);//导航初始化mBaiduNaviManager=BaiduNaviManager.getInstance();mBaiduNaviManager.init(this,getSdcardRootPath(),getAppFolderName(),new MyNaviInitListener(),null,null,null);mBtnStart=(Button)this.findViewById(R.id.btn_start);mBtnStart.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//发起导航线路规划if(BaiduNaviManager.isNaviInited()){List<BNRoutePlanNode> nodes=new ArrayList<BNRoutePlanNode>();sNode = new BNRoutePlanNode(116.30142, 40.05087, "百度大厦", "百度大厦", BNRoutePlanNode.CoordinateType.WGS84);eNode = new BNRoutePlanNode(116.39750, 39.90882, "北京天安门", "北京天安门", BNRoutePlanNode.CoordinateType.WGS84);nodes.add(sNode);nodes.add(eNode);mBaiduNaviManager.launchNavigator(Main2Activity.this,nodes,0,true,new MyRoutePlanListener());}}});}//线路规划监听事件class MyRoutePlanListener implements BaiduNaviManager.RoutePlanListener{//跳转到导航的过程界面@Overridepublic void onJumpToNavigator() {Intent start=new Intent(Main2Activity.this,NaviActivity.class);start.putExtra("node",sNode);startActivity(start);}@Overridepublic void onRoutePlanFailed() {}}//初始化导航监听事件class MyNaviInitListener implements BaiduNaviManager.NaviInitListener{@Overridepublic void onAuthResult(int i, String s) {}@Overridepublic void initStart() {}@Overridepublic void initSuccess() {}@Overridepublic void initFailed() {}}//获取sd卡的路径public String getSdcardRootPath(){return Environment.getDownloadCacheDirectory().getAbsolutePath();}//获取目录名称public String getAppFolderName(){File folder=new File(Environment.getExternalStorageDirectory(),"Emilia");if(!folder.exists()){folder.mkdirs();}return folder.getAbsolutePath();}
}

布局文件 activity_main2.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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=".Main2Activity"><Button
        android:id="@+id/btn_start"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="发起导航"/></android.support.constraint.ConstraintLayout>

NaviActivity.java

package com.hala.mapdemo;import android.content.res.Configuration;
import android.graphics.drawable.Drawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;import com.baidu.navisdk.adapter.BNRouteGuideManager;
import com.baidu.navisdk.adapter.BNRoutePlanNode;import java.util.ArrayList;
import java.util.List;import static com.baidu.navisdk.adapter.BNRouteGuideManager.getInstance;//导航过程页面
public class NaviActivity extends AppCompatActivity {private BNRouteGuideManager mBnRouteGuideManager;private BNRoutePlanNode sNode;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mBnRouteGuideManager= getInstance();//设置图层sNode= (BNRoutePlanNode) this.getIntent().getSerializableExtra("node");setCustomItem();View view=mBnRouteGuideManager.onCreate(this,null);setContentView(view);}//设置图层public  void setCustomItem(){List<BNRouteGuideManager.CustomizedLayerItem> items=new ArrayList<BNRouteGuideManager.CustomizedLayerItem>();Drawable icon=this.getResources().getDrawable(R.mipmap.ic_launcher);BNRouteGuideManager.CustomizedLayerItem item=new BNRouteGuideManager.CustomizedLayerItem(sNode.getLongitude(), sNode.getLatitude(),BNRoutePlanNode.CoordinateType.WGS84,icon,BNRouteGuideManager.CustomizedLayerItem.ALIGN_CENTER);items.add(item);mBnRouteGuideManager.setCustomizedLayerItems(items);//是否显示自定义图层mBnRouteGuideManager.showCustomizedLayer(true);}@Overrideprotected void onResume() {super.onResume();mBnRouteGuideManager.onResume();}@Overrideprotected void onPause() {super.onPause();mBnRouteGuideManager.onPause();}@Overrideprotected void onStop() {super.onStop();mBnRouteGuideManager.onStop();}@Overrideprotected void onDestroy() {super.onDestroy();mBnRouteGuideManager.onDestroy();}//参数改变时也跟着改变@Overridepublic void onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);mBnRouteGuideManager.onConfigurationChanged(newConfig);}
}

全景图

activity_main3.xml

<RelativeLayout 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"><com.baidu.lbsapi.panoramaview.PanoramaViewandroid:id="@+id/pano"android:layout_width="wrap_content"android:layout_height="wrap_content"/></RelativeLayout>

MainActivity.java

package com.hala.mapdemo;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;import com.baidu.lbsapi.BMapManager;
import com.baidu.lbsapi.MKGeneralListener;
import com.baidu.lbsapi.panoramaview.ImageMarker;
import com.baidu.lbsapi.panoramaview.PanoramaView;
import com.baidu.lbsapi.tools.Point;public class Main3Activity extends AppCompatActivity {private BMapManager manager;private PanoramaView mPanoramaView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main3);manager=new BMapManager(getApplicationContext());manager.init(new MyMKGeneralListener());mPanoramaView=(PanoramaView) this.findViewById(R.id.pano);//根据经纬度坐标设置全景图mPanoramaView.setPanorama(116.400244,39.963175);//添加标记ImageMarker icon=new ImageMarker();icon.setMarker(this.getResources().getDrawable(R.mipmap.ic_launcher));icon.setMarkerPosition(new Point(116.400244,39.963175));mPanoramaView.addMarker(icon);}class MyMKGeneralListener implements MKGeneralListener {@Overridepublic void onGetPermissionState(int states) {if(states!=300){Toast.makeText(Main3Activity.this, "授权成功", Toast.LENGTH_LONG).show();}else{Toast.makeText(Main3Activity.this, "授权失败", Toast.LENGTH_LONG).show();}}}@Overrideprotected void onPause() {super.onPause();mPanoramaView.onPause();}@Overrideprotected void onResume() {super.onResume();mPanoramaView.onResume();}@Overrideprotected void onDestroy() {super.onDestroy();mPanoramaView.destroy();}
}

Android 之路51---百度地图实现相关推荐

  1. Android 不归路之百度地图API学习(导航篇)

    在学习百度地图api 导航篇时 不论怎么仿写官方DEMO 都不能初始化导航引擎 纠结了两天 在LBS论坛上找到同样问题 传送门初始化导航失败 文中解决方法 主要有三种: 目前demo中初始化导航失败有 ...

  2. Android中级篇之百度地图SDK v3.5.0-一步一步带你仿各大主流APP地图定位移动选址功能

    from: http://blog.csdn.net/y1scp/article/details/49095729 定位+移动选址 百学须先立志-学前须知: 我们经常在各大主流APP上要求被写上地址, ...

  3. 【Android】APP嵌入百度地图骑行导航一直初始化引擎失败解决办法

    [Android] APP嵌入百度地图骑行导航一直初始化引擎失败解决办法 最近手头上有个需求需要做骑行导航 首先百度地图开放平台http://lbsyun.baidu.com/ 按提示找到Androi ...

  4. Android调用跳转百度地图、高德地图、腾讯地图进行目的地导航

    Android App跳转百度地图.高德地图.腾讯地图进行目的地导航. 先放上百度.高德.腾讯地图调起API文档地址,有些参数不懂可以参考. 百度地图:http://lbsyun.baidu.com/ ...

  5. 从Eclipse转战Android Studio坑之——百度地图

    相信大家都知道如果一个项目做到一半忽然要从Eclipse转战Android Studio那肯定不太容易 ,特别是在项目引用较多第三方平台的时候(因为很多第三方平台的SDK在两个开发工具上的导入和引用方 ...

  6. Android使用第三方SDK——百度地图

    Android使用第三方SDK--百度地图 第一次用百度地图是在去年的8月中旬吧,当时是参加一个比赛,老师要求使用地图,然后就是百度,各种视频网站一顿搜啊(当时Android还没入门,就知道CV),最 ...

  7. Android Studio下加入百度地图的使用 (一)——环境搭建

    最近有学生要做毕业设计,会使用到定位及地图信息的功能,特此研究了一下,供大家参考,百度定位SDK已经更新到了5.0,地图SDK已经更新到了3.5,但是在AndroidStudio中使用还是存在一些不稳 ...

  8. android 获取经纬度(百度地图)

    今天做原生获取经纬度,本来以为很容易,毕竟之前也做过,我使用的是 LocationManager 和 Location 来获取,但是,最终我怎么也获取不到经纬度,debug才发现最终的 Locatio ...

  9. 百度地图android版 v4.0,百度地图4.0正式发布 支持iOS与Android

    百度地图今日正式推4.0版本,面向iOS及Android平台,新版的主要特色包括免费语音导航.室内定位.实时公交.生活搜索等.百度相关负责人表示,新版实现了一键导航功能,通过不同色彩标注实时路况,可帮 ...

最新文章

  1. docker 占用磁盘空间清理 无用数据卷删除
  2. 一文理清Mybatis中resultType与resultMap之间的关系和使用场景
  3. C++ STL算法之accumulate函数
  4. 【数据迁移】使用传输表空间迁移数据
  5. 基于Boost::beast模块的同步HTTP客户端
  6. java 远程 shell脚本_Java 远程调用 shell脚本
  7. POJ2886线段树 Joseph游戏(单点更新)
  8. 使用新的 apt 命令在 Ubuntu 16.04 LTS 下管理软件包
  9. linux2019内核版本发布,新兴的桌面发行版 Septor Linux 发布 2019 版
  10. LeetCode刷题(36)--Text Justification
  11. abstract、virtual、override 和 new
  12. 十大排序算法——桶排序(C语言)
  13. 一篇关于arc下内存管理的老文章,包含各种冷门修饰符(关于内存),写的较好,mark...
  14. 吴恩达机器学习视频教程(含课程作业源代码和学习笔记)
  15. 2022年低压电工题库及模拟考试
  16. 一个三流大学生的北京三年
  17. 计算机验证菜单命令的各种特性,2017年CAD工程师认证单选题「附答案」
  18. 郭天祥 10天搞定单片机 (3)数码管+中断
  19. and什么意思计算机SQL,SQL语句中 AND和OR的区别,or是什么意思,那and和它有什么区别?...
  20. itop4412调试记录

热门文章

  1. java:如何解决汉字在记事本中编译翻译后出现乱码
  2. barrier()函数
  3. 如何开展数据安全风险评估(参考)
  4. 【win10的anaconda3搭建theano环境】超详细必成功全套教程
  5. 2020-2021年 元宇宙发展研究报告
  6. 工业通讯桥接器——用于PLC、数控、注塑机等设备数据采集
  7. python3 cookbook中常遇问题的解答记录
  8. windows System32 与SysWOW64区别
  9. xb格式数据库迁移处理
  10. [网络收集]JS刷新页面总和!多种JS刷新页面代码!