高德的账号去改的开房平台进行注册,注册成功后进入个人中心;

进入个人中心后点击应供管理

//这里可以随便写

获取SHA1码

需要的权限有

清单文件中

sourceSets {

main {

jniLibs.srcDirs = [‘libs’]

}

}

写入一个工具类

public class LocationUtils implements AMapLocationListener {

private AMapLocationClient aMapLocationClient;

private AMapLocationClientOption clientOption;

private ILocationCallBack callBack;

public void startLocate(Context context) {

aMapLocationClient = new AMapLocationClient(context);

//设置监听回调

aMapLocationClient.setLocationListener(this);

//初始化定位参数

clientOption = new AMapLocationClientOption();

clientOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving);

clientOption.setNeedAddress(true);

clientOption.setOnceLocation(false);

//设置是否强制刷新WIFI,默认为强制刷新

clientOption.setWifiActiveScan(true);

//设置是否允许模拟位置,默认为false,不允许模拟位置

clientOption.setMockEnable(false);

//设置定位间隔

clientOption.setInterval(2000);

aMapLocationClient.setLocationOption(clientOption);

aMapLocationClient.startLocation();

}

@Override

public void onLocationChanged(AMapLocation aMapLocation) {

if (aMapLocation != null) {

if (aMapLocation.getErrorCode() == 0) {

//定位成功完成回调

String country = aMapLocation.getCountry();

String province = aMapLocation.getProvince();

String city = aMapLocation.getCity();

String district = aMapLocation.getDistrict();

String street = aMapLocation.getStreet();

double lat = aMapLocation.getLatitude();

double lgt = aMapLocation.getLongitude();

callBack.callBack(country + province + city + district + street, lat, lgt, aMapLocation);

} else {

//显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。

Log.e("AmapError", "location Error, ErrCode:"

+ aMapLocation.getErrorCode() + ", errInfo:"

+ aMapLocation.getErrorInfo());

}

}

}

/**

* 自定义图标

*

* @return

*/

public MarkerOptions getMarkerOption(String str, double lat, double lgt) {

MarkerOptions markerOptions = new MarkerOptions();

markerOptions.icon(BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher));

markerOptions.position(new LatLng(lat, lgt));

markerOptions.title(str);

markerOptions.snippet("纬度:" + lat + " 经度:" + lgt);

markerOptions.period(100);

return markerOptions;

}

public interface ILocationCallBack {

void callBack(String str, double lat, double lgt, AMapLocation aMapLocation);

}

public void setLocationCallBack(ILocationCallBack callBack) {

this.callBack = callBack;

}

}

然后就是高德的代码

public class MainActivity extends AppCompatActivity implements LocationSource {

private MapView myMapView;

private AMap aMap;

private LocationSource.OnLocationChangedListener mListener = null;//定位监听器

private LocationUtils locationUtils;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

myMapView = findViewById(R.id.MapView);

myMapView.onCreate(savedInstanceState);

initView();

}

private void initView() {

if(aMap == null){

aMap = myMapView.getMap();

}

setLocationCallBack();

//设置定位监听

aMap.setLocationSource(this);

//设置缩放级别

aMap.moveCamera(CameraUpdateFactory.zoomTo(15));

//显示定位层并可触发,默认false

aMap.setMyLocationEnabled(true);

}

private void setLocationCallBack(){

locationUtils = new LocationUtils();

locationUtils.setLocationCallBack(new LocationUtils.ILocationCallBack() {

@Override

public void callBack(String str,double lat,double lgt,AMapLocation aMapLocation) {

//根据获取的经纬度,将地图移动到定位位置

aMap.moveCamera(CameraUpdateFactory.changeLatLng(new LatLng(lat,lgt)));

mListener.onLocationChanged(aMapLocation);

//添加定位图标

aMap.addMarker(locationUtils.getMarkerOption(str,lat,lgt));

}

});

}

@Override

public void activate(OnLocationChangedListener onLocationChangedListener) {

mListener = onLocationChangedListener;

locationUtils.startLocate(getApplicationContext());

}

@Override

public void deactivate() {

mListener = null;

}

@Override

protected void onPause() {

super.onPause();

//暂停地图的绘制

myMapView.onPause();

}

@Override

protected void onDestroy() {

super.onDestroy();

//销毁地图

myMapView.onDestroy();

}

@Override

protected void onResume() {

super.onResume();

//重新绘制加载地图

myMapView.onResume();

}

@Override

public void onSaveInstanceState(Bundle outState) {

super.onSaveInstanceState(outState);

myMapView.onSaveInstanceState(outState);

}

}

xml中只需要写入一个MapView就ok

还有一个反编译地理位置的代码,效果图就不上了

public class AddrChangeActivity extends AppCompatActivity implements View.OnClickListener, GeocodeSearch.OnGeocodeSearchListener {

private EditText Addr_Edit;

private Button Zheng_Btn;

private EditText JinDU_Edit;

private EditText WeiDu_Edit;

private Button Fan_Btn;

private TextView Get_Text;

private GeocodeSearch geocodeSearch;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_addr_change);

initView();

//构造 GeocodeSearch 对象,并设置监听。

geocodeSearch = new GeocodeSearch(this);

geocodeSearch.setOnGeocodeSearchListener(this);

//通过GeocodeQuery设置查询参数,调用getFromLocationNameAsyn(GeocodeQuery geocodeQuery) 方法发起请求。

//address表示地址,第二个参数表示查询城市,中文或者中文全拼,citycode、adcode都ok

// GeocodeQuery query = new GeocodeQuery(address, "010");

// geocoderSearch.getFromLocationNameAsyn(query);

}

private void initView() {

Addr_Edit = (EditText) findViewById(R.id.Addr_Edit);

Zheng_Btn = (Button) findViewById(R.id.Zheng_Btn);

JinDU_Edit = (EditText) findViewById(R.id.JinDU_Edit);

WeiDu_Edit = (EditText) findViewById(R.id.WeiDu_Edit);

Fan_Btn = (Button) findViewById(R.id.Fan_Btn);

Get_Text = (TextView) findViewById(R.id.Get_Text);

Zheng_Btn.setOnClickListener(this);

Fan_Btn.setOnClickListener(this);

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.Zheng_Btn:

String addr = Addr_Edit.getText().toString().trim();

if (addr.isEmpty()) {

Toast.makeText(this, "请输入地址", Toast.LENGTH_SHORT).show();

return;

}

//参数1:addr 地址值 参数2:规定一个区域

GeocodeQuery query = new GeocodeQuery(addr, null);

geocodeSearch.getFromLocationNameAsyn(query);

break;

case R.id.Fan_Btn:

String jingdu = JinDU_Edit.getText().toString().trim();

String weidu = WeiDu_Edit.getText().toString().trim();

if (jingdu.isEmpty() || weidu.isEmpty()) {

Toast.makeText(this, "请输入经纬度", Toast.LENGTH_SHORT).show();

return;

}

//这个是经纬度查询的类

LatLonPoint point = new LatLonPoint(Double.parseDouble(jingdu), Double.parseDouble(weidu));

RegeocodeQuery regeocodeQuery = new RegeocodeQuery(point, 2000000000, GeocodeSearch.AMAP);

GeocodeSearch reSe = new GeocodeSearch(this);

reSe.setOnGeocodeSearchListener(new GeocodeSearch.OnGeocodeSearchListener() {

@Override

public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {

Log.e("onRegeocodeSearched", "onRegeocodeSearched");

RegeocodeAddress address = regeocodeResult.getRegeocodeAddress();

Get_Text.setText(address.getFormatAddress()+"地址");

}

@Override

public void onGeocodeSearched(GeocodeResult geocodeResult, int i) {

}

});

geocodeSearch.getFromLocationAsyn(regeocodeQuery);

break;

}

}

//把经纬度转换成地址

@Override

public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {

Log.e("onRegeocodeSearched", "onRegeocodeSearched");

RegeocodeAddress address = regeocodeResult.getRegeocodeAddress();

Get_Text.setText(address.getFormatAddress());

}

//是吧地址转换成经度纬度

@Override

public void onGeocodeSearched(GeocodeResult geocodeResult, int i) {

Log.e("onGeocodeSearched", "onGeocodeSearched");

//从查出来的结果集 得到地址对象

GeocodeAddress address = geocodeResult.getGeocodeAddressList().get(0);

//从地址对象里面得到 经纬度的类

LatLonPoint latLonPoint = address.getLatLonPoint();

//从这个point取经纬度即可

Get_Text.setText("经度是:" + latLonPoint.getLongitude() + ",纬度是:" + latLonPoint.getLatitude());

}

}

反编译的xml

以上;

android高德地图demo,Android :高德地图demo相关推荐

  1. android室内地图,概述-Android 室内地图SDK | 高德地图API

    Android 室内地图 SDK 简介 说明: 室内地图数据对新用户暂停开放,建议您使用 Android地图SDK 可实现室内外一体化效果. 高德地图 Android 室内地图SDK 是一套室内地图开 ...

  2. Android第三方开发包之高德地图SDK使用介绍

    Android第三方开发包之高德地图SDK使用介绍 前言 准备 Android Studio 配置工程 1,新建一个 Empty Activity 应用项目. 2,添加SDK 3,集成SDK 显示地图 ...

  3. Android - 简单的显示高德SDK中的3D地图

    简单的显示高德SDK中的3D地图 身为一个安卓小白,前几天试了一下高德SDK,踩了几个蠢蠢的坑,秉承着别让其他小白也踩到,我就写一篇怎么简单的实现高德SDK显示地图与小蓝点的教程. 获得key 1.先 ...

  4. android高德地图使用教程,Android 之 高德地图学习 一 基本地图

    自己做的笔记,没有深层的东西,请大神绕行~ 高德地图和百度地图相差不多,网上很多百度地图的视频教学,在这里锻炼下自己的学习能力,来弄下高德地图. 首先 进入 高德地图  官网,注册开发者  ,申请ke ...

  5. 高德地图 web android,Android 调用第三方地图类App (高德 百度 百度网页版)

    Screenshot_20170509-152819.png 前言 最近项目中需要用到地图的功能,但是应用本身不是地图类应用,而且用地图只是为了分享和展示一个地点而已,所以完全没有必要去集成厚重的sd ...

  6. 高德地图组件在Android的应用以及Android与JavaScript的交互(一)

    最近在慕课网学习了关于高德地图组件的课程(其实就是一个广告,内容和官网的API完全一样),发现这个JavaScript API比Android API简单方便多了,于是就打算放在Android APP ...

  7. Android百度地图、高德地图、腾讯地图导航路线规划问题

      Android百度地图.高德地图.腾讯地图导航路线规划 在最近的项目中,需求是用户选择某个地址需要进行导航时,弹出百度地图.高德地图和腾讯地图让用户选择.如果该用户手机中已安装对应的地图App,则 ...

  8. Android 起调第三方导航,百度地图,高德地图,腾讯地图。起调高德地图导航

    主要工具类 /*** Created by meixi on 2018/6/29.* 使用第三方导航:高德.百度..........*/ public class AmapUtil {public s ...

  9. 高德地图基础使用教程(附demo)

    高德地图基础使用教程 简介 带大家一步步实现地图显示特定位置,或定位到当前位置.并且拖拽地图界面能够查询出指定位置周边的信息.通过关键字搜索周边信息. 本教程适合初学者. demo git 地址 一. ...

  10. android高德地图后台运行,Android手把手教你集成高德地图

    在上一篇博客上,和大家分享了如何在Android中集成高德定位以及定位的基本使用.今天我们就来看看高德地图在Android中如何使用吧. 同样,我将本篇博客的内容分为如下部分: (1)添加高德SDK ...

最新文章

  1. [转] Java @interface 自定义注解
  2. PHP(Thinkphp框架)将数据表导出csv文件
  3. 消息中间件的技术选型心得-RabbitMQ ActiveMQ和ZeroMQ
  4. Win10之打印机扫描为pdf格式
  5. 【转】js 获取浏览器高度和宽度值(多浏览器
  6. 阿里云mysql导出表,导出mysql表数据库
  7. 装机摸鱼日记01--DDR3AMD专用内存+QHQF(6400T)试水
  8. Email,电子邮箱免费注册流程
  9. 高德地图开放平台(js免费引入)
  10. ECPC-2015部分题解
  11. 下载微信支付sdk的两个方法
  12. Php绘制棋盘,第二次DIY棋盘,纯手工绘制完美棋盘
  13. 腾讯收购Foxmail的意图
  14. 希腊字母常用指代意义及其中英文读音
  15. 日语操作系统安装日语软件乱码的解放方案
  16. 树莓派实现简单的人脸识别
  17. 10种最流行的国外博客程序
  18. 儿童使用计算机和手机的 危害,孩子长期玩手机危害有哪些?
  19. 什么是人力资源管理系统?hr系统功能介绍
  20. php 工厂模式运用实例,php工厂模式的实例

热门文章

  1. 【搞定Java并发编程】第24篇:Java中的并发工具类之CountDownLatch
  2. 小程序setData报错未定义
  3. 供赴鸿蒙什么意思,不负遇见共赴鸿蒙 仙风道骨手游与你同行
  4. 无线渗透之KALI基础
  5. ENVI shp转roi并对栅格进行掩膜提取
  6. 大众营销OUT,活跃科技教你玩精众营销
  7. Vue生命周期,Vue中在哪个生命周期阶段调用异步请求最佳
  8. mybatis-day04-改进多表查询collection配置、延迟加载、缓存、注解开发(★)
  9. 时间工具类: 判断两个时间是否是同一月、是否是同一天
  10. ZSD017出货达成率