需求

1.后台传给我们一个经纬度,然后需要我们在地图上显示出来
2.当我们点击地图的时候进入到第二个界面,实现当前位置的定位,并且检索周边的商家地址,点击后将选中的地址回传,并显示,而我们上传给后台的是经纬度。同时当我们平移地图时我们的列表也会同步刷新(其实就是监听地图滑动,获取中心点的经纬度,再检索周边)

谷歌搜索高德SDK,进入官网选择开发支持,点击Android地图SDK

接着就是按着官方的接入流程集成SDK,需要认证开发者(免费的,支付宝认证就可以),申请应用获取key,注意了:申请的时候包名要和你app项目的包名一样,也就是你的applicationId,拿到key之后就可以开始集成了
1.依赖
在Project的build.gradle文件中配置repositories,添加maven或jcenter仓库地址
Android Studio默认会在Project的build.gradle为所有module自动添加jcenter的仓库地址,如果已存在,则不需要重复添加。Project的build.gradle文件在Project目录中位置如图所示:

配置如下:Java
allprojects {repositories {jcenter() // 或者 mavenCentral()}}

在主工程的build.gradle文件配置dependencies,这种方式不需要会给你自动依赖最新版本的SDK

android {defaultConfig {ndk {//设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so)abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64"}}
}dependencies {implementationfileTree(dir: 'libs', include: ['*.jar'])//3D地图so及jarimplementation'com.amap.api:3dmap:latest.integration'//定位功能implementation'com.amap.api:location:latest.integration'//搜索功能implementation'com.amap.api:search:latest.integration'
}

然后下个官方demo把demo中的libs下的so库复制到你的项目libs目录下(官方文档好像说通过Gradle集成SDK不需要引入so库的,但是我集成的时候不行,看到demo也是Gradle集成SDK,并且也引了so库,后来我复制过来就可以了)最后再build.grale下引入libs

 defaultConfig {sourceSets {main {jniLibs.srcDir 'libs'}
}

在androidManifest.xml中加入各种权限,与及你在官网申请得到的key

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.nnmzkj.cartrepair"><applicationandroid:name=".app.AppAplication"android:allowBackup="true"android:icon="@mipmap/logn"android:label="@string/app_name"android:networkSecurityConfig="@xml/network_security_config"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><!-- 配置高德SDK的key --><meta-dataandroid:name="com.amap.api.v2.apikey"android:value="5301d767b47de1b27cf835a34a4849bb" /></application><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.CAMERA" /> <!-- 地图包、搜索包需要的基础权限 --><!-- 允许程序打开网络套接字 --><uses-permission android:name="android.permission.CALL_PHONE" /> <!-- 允许程序设置内置sd卡的写权限 --><uses-permission android:name="android.permission.INTERNET" /> <!-- 允许程序获取网络状态 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 允许程序访问WiFi网络信息 --><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 允许程序读写手机状态和身份 --><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 允许程序访问CellID或WiFi热点来获取粗略的位置 --><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /></manifest>

完成这一步之后你的SDK就已经集成完毕

接下来就是实现我们的功能:
1.我们从后台拿到经纬度,需要显示在地图上,并标记该位置
首先在xml中添加MapView

  <com.amap.api.maps.MapViewandroid:id="@+id/map"android:layout_width="match_parent"android:layout_height="180dp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"/>

在java文件中获取该控件,并初始化地图控制器对象,并将地图移动到指定经纬度,并标记出该点

//获取地图控件引用@BindView(R.id.map) MapView mMapView;private AMap aMap = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图mMapView.onCreate(savedInstanceState);//初始化地图控制器对象if (aMap == null) {aMap = mMapView.getMap();}initAMap();}/*** 移动到指定经纬度* @para i 经度 * @param y 维度* @param zoo 缩放倍数*/private void initAMap(double i, double y, float zoo) {//22.83542400, 108.35450500AMap mAMap = mMapView.getMap();CameraPosition cameraPosition = new CameraPosition(new LatLng(i, y), zoo, 0, 30);CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition);mAMap.moveCamera(cameraUpdate);drawMarkers(i, y);}/*** 画定位标记图* @para i 经度 * @param y 维度*/public void drawMarkers(double i, double y) {aMap.clear(true);MarkerOptions markerOptions = new MarkerOptions().position(new LatLng(i, y)).draggable(true);Marker marker = aMap.addMarker(markerOptions);marker.showInfoWindow();}

2.修改定位地址,就是启动一个新的activity,首先我们需要启动定位获取当前的位置,并且标记出当前的位置(记得android6.0以上要动态申请权限),同时检索周边的地址(返回的是一个地址对象集合,我们用recyclerview把数据展示出来即可),同时要对地图滑动进行监听,当地图移动的时候拿到中心点的位置,然后重新搜索附近地址,刷新列表。当点击列表item的时候就把你点击的地址对象返回上一个activity即可,里面包含了经纬度等信息。
所以第一步:定位,并显示当前的位置

//获取地图控件引用@BindView(R.id.map) MapView mMapView;private AMap aMap = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//获取地图控件引用//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图mMapView.onCreate(savedInstanceState);//初始化地图控制器对象if (aMap == null) {aMap = mMapView.getMap();}init();}/*** 初始化定位*/private void init() {MyLocationStyle myLocationStyle;//初始化定位蓝点样式类myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。myLocationStyle = new MyLocationStyle();myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATE);//定位一次,且将视角移动到地图中心点。//设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为毫秒。myLocationStyle.interval(2000);//设置是否显示定位小蓝点,用于满足只想使用定位,不想使用定位小蓝点的场景,设置false以后图面上不再有定位蓝点的概念,但是会持续回调位置信息。myLocationStyle.showMyLocation(true);//设置定位蓝点的StyleaMap.setMyLocationStyle(myLocationStyle);//设置显示比例aMap.moveCamera(CameraUpdateFactory.zoomTo(14f));// 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。aMap.setMyLocationEnabled(true);//设置显示比例aMap.setOnMyLocationChangeListener(new AMap.OnMyLocationChangeListener() {//定位回调@Override public void onMyLocationChange(Location location) {Log.e("tag", location.toString());local = location;initAMap(local.getLatitude(), local.getLongitude(), 14f);aMap.setOnCameraChangeListener(new AMap.OnCameraChangeListener() {@Override public void onCameraChange(CameraPosition cameraPosition) {}@Override public void onCameraChangeFinish(CameraPosition cameraPosition) {cameraBean = cameraPosition;initAMap(cameraPosition.target.latitude, cameraBean.target.longitude, cameraBean.zoom);}});}});}//移动到指定经纬度private void initAMap(double i, double y, float zoo) {//22.83542400, 108.35450500AMap mAMap = mMapView.getMap();CameraPosition cameraPosition = new CameraPosition(new LatLng(i, y), zoo, 0, 30);CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition);mAMap.moveCamera(cameraUpdate);drawMarkers(i, y);}//画定位标记图public void drawMarkers(double i, double y) {aMap.clear(true);MarkerOptions markerOptions = new MarkerOptions().position(new LatLng(i, y)).draggable(true);Marker marker = aMap.addMarker(markerOptions);marker.showInfoWindow();query("", i, y);}

第二步:检索周边地址,需要实现PoiSearch.OnPoiSearchListener接口,并重写该接口的俩个方法

 /***周边检索地址调* @param poiResult* @param i*/@Override public void onPoiSearched(PoiResult poiResult, int i) {multitemPoiItemList = new ArrayList<>();//poiResult.getPois()获取的是周边地址集合,接下来就是自己用recyclerview展示数据了for (PoiItem poiItem : poiResult.getPois()) {multitemPoiItemList.add(new MultitemPoiItem(MultitemPoiItem.UNSELECT, poiItem));}gaoDeMapListAdapter = new GaoDeMapListAdapter(multitemPoiItemList);rvContent.setLayoutManager(new LinearLayoutManager(mContext));rvContent.setAdapter(gaoDeMapListAdapter);gaoDeMapListAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {@Override public void onItemClick(BaseQuickAdapter adapter, View view, int position) {Intent intent =getIntent();//返回选中的地址intent.putExtra("poiItem",multitemPoiItemList.get(position).getPoiItem());setResult(RE_CODE,intent);AppManager.getAppManager().finishActivity();}});}@Override public void onPoiItemSearched(PoiItem poiItem, int i) {}/*** 查询周边地址,你可以在每次定位中心点后开始查询* @param keyWord 关键词* @param i 经度* @param y 纬度*/private void query(String keyWord ,double i, double y) {PoiSearch.Query query = new PoiSearch.Query(keyWord, "", "");//keyWord表示搜索字符串,//第二个参数表示POI搜索类型,二者选填其一,选用POI搜索类型时建议填写类型代码,码表可以参考下方(而非文字)//cityCode表示POI搜索区域,可以是城市编码也可以是城市名称,也可以传空字符串,空字符串代表全国在全国范围内进行搜索query.setPageSize(50);// 设置每页最多返回多少条poiitemquery.setPageNum(0);//设置查询页码PoiSearch poiSearch = new PoiSearch(GaoDeMapLocationActivity.this, query);poiSearch.setBound(new PoiSearch.SearchBound(new LatLonPoint(i, y), 800));//设置周边搜索的中心点以及半径poiSearch.setOnPoiSearchListener(GaoDeMapLocationActivity.this);poiSearch.searchPOIAsyn();}

第三步:监听地图的平移缩放,重新获取周边地址,实现AMap.OnCameraChangeListener接口,一般我们是在定位之后再开始进行监听

//地址定位监听aMap.setOnMyLocationChangeListener(new AMap.OnMyLocationChangeListener() {//定位回调@Override public void onMyLocationChange(Location location) {Log.e("tag", location.toString());local = location;initAMap(local.getLatitude(), local.getLongitude(), 14f);//地图平移缩放监听aMap.setOnCameraChangeListener(new AMap.OnCameraChangeListener() {@Override public void onCameraChange(CameraPosition cameraPosition) {}/地图平移缩放监听回调@Override public void onCameraChangeFinish(CameraPosition cameraPosition) {cameraBean = cameraPosition;initAMap(cameraPosition.target.latitude, cameraBean.target.longitude, cameraBean.zoom);}});}});

最后附上整个activity代码,因为activity继承与自己的基类等等,代码仅供参考,直接复制无用:

package com.nnmzkj.dcqx.activity;import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.graphics.Color;
import android.location.Location;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.OnClick;
import com.amap.api.maps.AMap;
import com.amap.api.maps.CameraUpdate;
import com.amap.api.maps.CameraUpdateFactory;
import com.amap.api.maps.MapView;
import com.amap.api.maps.model.CameraPosition;
import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.Marker;
import com.amap.api.maps.model.MarkerOptions;
import com.amap.api.maps.model.MyLocationStyle;
import com.amap.api.services.core.LatLonPoint;
import com.amap.api.services.core.PoiItem;
import com.amap.api.services.geocoder.GeocodeResult;
import com.amap.api.services.geocoder.GeocodeSearch;
import com.amap.api.services.geocoder.RegeocodeQuery;
import com.amap.api.services.geocoder.RegeocodeResult;
import com.amap.api.services.poisearch.PoiResult;
import com.amap.api.services.poisearch.PoiSearch;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.github.lazylibrary.util.ToastUtils;
import com.kongzue.dialog.v3.WaitDialog;
import com.nnmzkj.common.base.BaseNetworkActivity;
import com.nnmzkj.common.manager.AppManager;
import com.nnmzkj.common.utils.DialogUtil;
import com.nnmzkj.dcqx.R;
import com.nnmzkj.dcqx.adapter.GaoDeMapListAdapter;
import com.nnmzkj.dcqx.bean.MultitemPoiItem;
import com.nnmzkj.dcqx.widget.FairySearchView;
import com.tbruyelle.rxpermissions2.RxPermissions;
import io.reactivex.functions.Consumer;
import java.util.ArrayList;
import java.util.List;/*** Date : 2020/7/1* Author : Davaid.lvfujiang* Desc :高德定位*/
public class GaoDeMapLocationActivity extends BaseNetworkActivityimplements PoiSearch.OnPoiSearchListener, GeocodeSearch.OnGeocodeSearchListener {public static final int RE_CODE = 1001;public static final float ZOOMTO = 16f;@BindView(R.id.rv_content)RecyclerView rvContent;@BindView(R.id.map)MapView mMapView;@BindView(R.id.search_view) FairySearchView searchView;@BindView(R.id.tv_search) TextView tvSearch;private AMap aMap;private Location local;private CameraPosition cameraBean;private GaoDeMapListAdapter gaoDeMapListAdapter;private List<MultitemPoiItem> multitemPoiItemList = new ArrayList<>();private GeocodeSearch geocoderSearch;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//获取地图控件引用//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图mMapView.onCreate(savedInstanceState);//初始化地图控制器对象aMap = mMapView.getMap();requestPermission();}/*** 动态申请权限*/@SuppressLint("WrongConstant") private void requestPermission() {RxPermissions rxPermissions = new RxPermissions(this);//申请定位权限rxPermissions.request(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION).subscribe(new Consumer<Boolean>() {@Overridepublic void accept(Boolean granted) throws Exception {if (granted) {init();} else {// 权限被拒绝ToastUtils.showToast(mContext, "权限已被禁用,功能无法正常使用!");}}});}/*** 初始化定位*/private void init() {location();}private void location() {//初始化定位蓝点样式类myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。MyLocationStyle myLocationStyle = new MyLocationStyle();//定位一次,且将视角移动到地图中心点。myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATE);//设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为毫秒。myLocationStyle.interval(2000);// 设置圆形的填充颜色myLocationStyle.radiusFillColor(Color.argb(0, 0, 0, 0));// 设置圆形的边框颜色myLocationStyle.strokeColor(Color.argb(0, 0, 0, 0));//设置是否显示定位小蓝点,用于满足只想使用定位,不想使用定位小蓝点的场景,设置false以后图面上不再有定位蓝点的概念,但是会持续回调位置信息。myLocationStyle.showMyLocation(true);//设置定位蓝点的StyleaMap.setMyLocationStyle(myLocationStyle);//设置显示比例aMap.moveCamera(CameraUpdateFactory.zoomTo(ZOOMTO));// 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。aMap.setMyLocationEnabled(true);aMap.setOnMyLocationChangeListener(new AMap.OnMyLocationChangeListener() {//定位回调@Override public void onMyLocationChange(Location location) {local = location;geocoderSearch = new GeocodeSearch(GaoDeMapLocationActivity.this);geocoderSearch.setOnGeocodeSearchListener(GaoDeMapLocationActivity.this);//拿到数据使用逆地理编码解析地址(坐标转地址)LatLonPoint latLonPoint = new LatLonPoint(local.getLatitude(), local.getLongitude());RegeocodeQuery query = new RegeocodeQuery(latLonPoint, 200, GeocodeSearch.AMAP);geocoderSearch.getFromLocationAsyn(query);}});}/*** mMapView移动中心点到指定经纬度** @param lat 经度* @param lng 维度* @param zoo 缩放大小*/private void initAMap(double lat, double lng, float zoo) {//22.83542400, 108.35450500CameraPosition cameraPosition = new CameraPosition(new LatLng(lat, lng), zoo, 0, 30);CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition);aMap.moveCamera(cameraUpdate);drawMarkers(lat, lng);}/*** 画定位标记图** @param lat* @param lng*/public void drawMarkers(double lat, double lng) {//清除之前的定位标记图aMap.clear(true);MarkerOptions markerOptions = new MarkerOptions().position(new LatLng(lat, lng)).draggable(true);Marker marker = aMap.addMarker(markerOptions);marker.showInfoWindow();}/*** 检索中心点附近的地址** @param keyWord 关键词* @param lat* @param lng*/private void query(String keyWord, double lat, double lng) {DialogUtil.waitDialog(mContext, "正在搜索周边地址...");//keyWord表示搜索字符串,//第二个参数表示POI搜索类型,二者选填其一,选用POI搜索类型时建议填写类型代码,码表可以参考下方(而非文字)//cityCode表示POI搜索区域,可以是城市编码也可以是城市名称,也可以传空字符串,空字符串代表全国在全国范围内进行搜索PoiSearch.Query query = new PoiSearch.Query(keyWord, "", "");// 设置每页最多返回多少条poiitemquery.setPageSize(50);//设置查询页码query.setPageNum(0);PoiSearch poiSearch = new PoiSearch(GaoDeMapLocationActivity.this, query);//设置周边搜索的中心点以及半径poiSearch.setBound(new PoiSearch.SearchBound(new LatLonPoint(lat, lng), 800));poiSearch.setOnPoiSearchListener(GaoDeMapLocationActivity.this);poiSearch.searchPOIAsyn();}@Overrideprotected void onDestroy() {super.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图if (mMapView != null) {mMapView.onDestroy();}}@Override protected int getLayoutResId() {return R.layout.activity_gao_de_map_location;}@Override protected void initView() {//搜索框点击软键盘右下角搜索按钮监听searchView.setOnEnterClickListener(new FairySearchView.OnEnterClickListener() {@Overridepublic void onEnterClick(String s) {//根据关键词搜索订单query(s, cameraBean.target.latitude, cameraBean.target.longitude);}});//点击搜索框右侧搜索按钮监听tvSearch.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//根据关键词搜索订单query(searchView.getSearchText(), cameraBean.target.latitude, cameraBean.target.longitude);}});}@Override protected void initData() {}@Overrideprotected void onResume() {super.onResume();//在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图mMapView.onResume();}@Overrideprotected void onPause() {super.onPause();//在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制mMapView.onPause();}@Overrideprotected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);//在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态mMapView.onSaveInstanceState(outState);}@OnClick(R.id.tv_complete)public void handleOnclick(View view) {if (view.getId() == R.id.tv_complete) {MultitemPoiItem multitemPoiItem = getMultitemPoiItem();if (multitemPoiItem == null) {ToastUtils.showToast(mContext, "请选择地址!");} else {Intent intent = getIntent();intent.putExtra("poiItem", multitemPoiItem.getPoiItem());setResult(RE_CODE, intent);AppManager.getAppManager().finishActivity();}}}/*** 获取选中的地址对象*/public MultitemPoiItem getMultitemPoiItem() {MultitemPoiItem multitemPoiItem = null;for (MultitemPoiItem item : multitemPoiItemList) {if (item.getType() == MultitemPoiItem.SELECT) {multitemPoiItem = item;break;}}return multitemPoiItem;}/*** @param poiResult* @param i*/@Override public void onPoiSearched(PoiResult poiResult, int i) {//关闭等待loading窗口WaitDialog.dismiss();multitemPoiItemList = new ArrayList<>();for (PoiItem poiItem : poiResult.getPois()) {multitemPoiItemList.add(new MultitemPoiItem(MultitemPoiItem.UNSELECT, poiItem));}gaoDeMapListAdapter = new GaoDeMapListAdapter(multitemPoiItemList);rvContent.setLayoutManager(new LinearLayoutManager(mContext));rvContent.setAdapter(gaoDeMapListAdapter);gaoDeMapListAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {@Override public void onItemClick(BaseQuickAdapter adapter, View view, int position) {MultitemPoiItem multitemPoiItem = multitemPoiItemList.get(position);for (MultitemPoiItem item : multitemPoiItemList) {item.setType(MultitemPoiItem.UNSELECT);}//选中地址后刷新列表,将选中的item设置为选中状态multitemPoiItem.setType(MultitemPoiItem.SELECT);gaoDeMapListAdapter.notifyDataSetChanged();//并画该地址的定位标记drawMarkers(multitemPoiItem.getPoiItem().getLatLonPoint().getLatitude(),multitemPoiItem.getPoiItem().getLatLonPoint().getLongitude());}});}@Override public void onPoiItemSearched(PoiItem poiItem, int i) {}/*** 是否支持滑动返回。这里在父类中默认返回 true 来支持滑动返回,如果某个界面不想支持滑动返回则重写该方法返回 false 即可** @return*/@Overridepublic boolean isSupportSwipeBack() {return false;}/*** 获取定位地址数据回调** @param regeocodeResult* @param resultCode*/@Override public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int resultCode) {//定位成功switch (resultCode) {case 1000://定位成功后初始化中心点,并绘制标记点initAMap(local.getLatitude(), local.getLongitude(), ZOOMTO);//开始检索周边的商家地址query("", local.getLatitude(), local.getLongitude());//地图缩放平移监听aMap.setOnCameraChangeListener(new AMap.OnCameraChangeListener() {@Override public void onCameraChange(CameraPosition cameraPosition) {}@Override public void onCameraChangeFinish(CameraPosition cameraPosition) {cameraBean = cameraPosition;//重新设置中心点,并重新检索周边地址initAMap(cameraPosition.target.latitude, cameraBean.target.longitude, cameraBean.zoom);query("", cameraPosition.target.latitude, cameraBean.target.longitude);}});break;case 1008:ToastUtils.showToast(mContext, "定位失败,MD5安全码未通过验证!");break;case 1802:case 1804:case 1806:ToastUtils.showToast(mContext, "定位失败,请检查您的网络!");break;case 1012:ToastUtils.showToast(mContext, "定位失败,请检查您的权限!");break;case 1200:ToastUtils.showToast(mContext, "定位失败,请检查您的定位服务是否已经开启!");break;default:ToastUtils.showToast(mContext, "定位失败!");break;}}@Override public void onGeocodeSearched(GeocodeResult geocodeResult, int i) {}
}

Android开发:集成高德地图实现定位、检索周边地址相关推荐

  1. android开发之高德地图不能定位,只显示格子

    android 在引用高德地图组件进行开发的时候,不能定位,只显示格子,如下图所示: 参考了网上的一下大家的解决方案,主要是 (1)检查申请的KEY是否正确.PS:申请方法请参考这篇博客,写的很全很详 ...

  2. Android中集成高德地图SDK实现地图定位和导航功能(一)

    一.前期准备工作 1.在高德地图开发者平创建一个自己的项目 名称和应用类型随便填 2.添加Key 1.添加key 2.获取SHA1值 2.1.使用windwos+R 输入cmd 打开控制窗口 输入 w ...

  3. Android中集成高德地图SDK实现地图定位和导航功能(二)

    我们接着上一篇文章开始继续实现android中集成高德地图的SDK实现地图 定位,搜索,导航的功能 如何让地图在手机上实现呢? 1.配置AndroidManifest 中的权限申请 可以参考官方文档 ...

  4. Android 集成高德地图——当前定位,添加图标,画路线,设置显示中心位置,比例,地图刷新位置监听,判断GPS开启,去打开GPS

    /*** 判断定位服务是否开启** @param* @return true 表示开启*/ public static boolean isLocationEnabled(Context contex ...

  5. Android Studio之高德地图实现定位和3D地图显示

    在应用开发中,地图开发是经常需要使用的"组件",国内比较出名的是就是百度地图和高德地图. 此博客讲的是高德地图实现定位和3D地图显示,并标注相应位置,话不多说,先看看效果,在上代码 ...

  6. android开发之高德地图API篇:1、高德地图API之实时定位+轨迹可视化

    TIME:2020年7月6日 高德地图API之实时定位+轨迹可视化 前言: step1.工程的配置 step2.显示地图 step2.实现静态定位: step3.实时定位 step4.实现轨迹可视化: ...

  7. Android 高德地图黑屏定位,Android Fragment集成高德地图黑屏的问题解决方案

    官方给的3.0Map的集成api说了: MapView 是 Android View 类的一个子类,它可以帮助您在 Android View 中放置地图,它是应用程序和窗口部件的基本构建类.MapVi ...

  8. Android开发集成高德定位SDK实现定位功能。

    第一步:添加高德定位SDK依赖,导入框架有两种方式,第一种是可以到高德开放平台高德开放平台 | 高德地图API下载相关的jar包,然后将jar包放在项目的libs文件下,然后点击以依赖库的形式添加到项 ...

  9. Android开发实现高德地图定位详解

     一. 要实现高德地图定位呢,首先需要做好以下几步准备: 1. 在高德开放平台注册帐号 注册地址:http://lbs.amap.com 2. 在开发中下载Android平台下的地图SDK和定位S ...

最新文章

  1. Java HashMap、Hashset、ArrayList和函数间调用的练习
  2. java分布式+高可用_[Java复习] 分布式高可用-Hystrix
  3. 大神程序员,夜夜coding到天明?Python之父昼伏夜出,PHP创始人24小时都在线
  4. JavaScript进阶3-学习笔记
  5. Java-进阶:多线程2
  6. UDP套接字编程以及提高UDP可靠性的方法
  7. Centos VIM 配置
  8. .net链接带密码的ACCESS数据库
  9. bzoj 1046: [HAOI2007]上升序列
  10. Linux基础入门之VM和centos的安装使用
  11. 让SQL用户快速进入Hadoop大数据时代 —— Transwarp Inceptor是怎样炼成的
  12. 华为交换机忘记密码怎么办啊,华为交换机登陆密码忘了怎么办
  13. 2022安全员-C证上岗证题目及答案
  14. OpenCV C++案例实战二十九《遥感图像分割》
  15. html 气泡上升效果,css气泡效果
  16. typedef 的使用方法详解、goto语句的使用方法。
  17. 创建签名文件jks 乱码
  18. Python调用电脑麦克风录音
  19. 科技兴盛下,传统银行该如何转型?
  20. 杰奇1.7 php打开乱码,杰奇2.4开源版章节内容乱码问题,解决方案

热门文章

  1. 学习笔记0326----vim编辑器的使用
  2. 2014考研英语二真题下载 2014考研英语二解析下载
  3. visual basic自定义排序
  4. 二进制数、八进制数、十六进制数与…
  5. GPRS模块中CSQ信号值相关
  6. Viewing Information About CDBs PDBs
  7. 框架协议(outline agreement)
  8. 时区设置 太平洋标准时间
  9. MES日用化工/化妆品系统源码
  10. jdb2 mysql io_CentOS 6.4系统中jdb2进程占用io过高的解决方法