一、前期准备
1.前期的注册和创建应用我不说了,这块仔细一点就好;
2.然后从官网下载它的demo,我下载的demo名称叫“AMap_Android_API_Location_Demo”:
注意啊小伙伴们,不要看到它里面有build.gradle,就以为它是Android Studio项目,然后直接将lib里的jar包和so文件直接放到项目中(在Android Studio是错误的),Android Studio里so文件应该放在jinLibs(如果没有就新建)
3.libs里的jar包要添加到依赖库
二、代码部分
1.布局文件
<com.amap.api.maps.MapView android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" />
没什么好说的,就一个MapView
2.逻辑代码部分
//地图显示 private AMap aMap; private MapView map;
protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.my_map); initLocation();//初始化定位参数 //checkLocationPermission();//初始化请求权限,存储权限 map = (MapView) findViewById(R.id.map); map.onCreate(savedInstanceState);// 此方法必须重写 if (aMap == null) aMap = map.getMap(); initlick(); }
注意红色文字部分,它和百度地图不一样,请注意
//初始化定位参数部分 private void initLocation() { //初始化client mlocationClient = new AMapLocationClient(this.getApplicationContext()); // 设置定位监听 mlocationClient.setLocationListener(this); //定位参数 mLocationOption = new AMapLocationClientOption(); //设置为高精度定位模式 mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); //设置为单次定位 mLocationOption.setOnceLocation(true); //设置定位参数 mlocationClient.setLocationOption(mLocationOption); }
private void checkLocationPermission() { // 检查是否有定位权限 // 检查权限的方法: ContextCompat.checkSelfPermission()两个参数分别是Context和权限名. // 返回PERMISSION_GRANTED是有权限,PERMISSION_DENIED没有权限 if (ContextCompat.checkSelfPermission(MyMapActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { //没有权限,向系统申请该权限。 Log.i("MY", "没有权限"); //这里添加向系统请求权限操作 } else { //已经获得权限,则执行定位请求。 Toast.makeText(MyMapActivity.this, "已获取定位权限", Toast.LENGTH_SHORT).show(); startLocation();
/** * 开始定位 */ private void startLocation() { // 启动定位 mlocationClient.startLocation(); Log.i("MY", "startLocation"); }
@Override protected void onResume() { super.onResume(); map.onResume(); } @Override protected void onPause() { super.onPause(); map.onPause(); } @Override protected void onDestroy() { super.onDestroy(); map.onDestroy(); }