1.在写代码之前应当下好相应的高德地图SDK,官网上面就有下载之后导入就可以

高德地图SDK

2.配置好相关的lib包并添加依赖

在main文件中创建jnilibs文件夹,将SDK中的so文件导入进去

在build.gradle文件android中配置so文件

sourceSets{main{jniLibs.srcDirs=['libs']}}

3.在Manifest文件中添加各种权限,地图及定位权限

 <!--用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/><!--用于访问GPS定位--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><!--用于获取运营商信息,用于支持提供运营商信息相关的接口--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><!--允许程序打开网络套接字--><uses-permission android:name="android.permission.INTERNET" /><!--允许程序设置内置sd卡的写权限--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!--允许程序访问WiFi网络信息--><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!--用于获取wifi的获取权限,wifi信息会用来进行网络定位--><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/><!--允许程序读写手机状态和身份--><uses-permission android:name="android.permission.READ_PHONE_STATE" /><!--允许程序访问CellID或WiFi热点来获取粗略的位置--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

在Application中注册服务组件

<service android:name="com.amap.api.location.APSService"></service>

添加key信息,申请key的办法在官网上面有

<meta-data android:name="com.amap.api.v2.apikey"android:value="自己申请的key">
</meta-data>

4.layout布局文件,直接添加一个mapview控件就行了很简单,我多添加了一个开关按钮,用来切换地图

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><com.amap.api.maps.MapView
        android:id="@+id/map"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginBottom="55dp"/><ToggleButton
        android:id="@+id/btn_mapchange"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="left"android:layout_marginLeft="10dp"android:layout_marginTop="10dp"android:textOn="@string/map_name_2"android:textOff="@string/map_name_1"/></FrameLayout>

5.fragment中的代码

package com.lqx.ui.amazingdialog;/*** Created by NEDUsoftware on 2016/11/3.*/import android.app.Fragment;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CompoundButton;
import android.widget.ToggleButton;import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationListener;
import com.amap.api.maps.AMap;
import com.amap.api.maps.LocationSource;
import com.amap.api.maps.MapView;
import com.amap.api.maps.model.MyLocationStyle;public class FindFragment extends Fragment implements CompoundButton.OnCheckedChangeListener,LocationSource,AMapLocationListener {private MapView mapView;private AMap aMap;private ToggleButton btn_mapchange;private MyLocationStyle myLocationStyle;private OnLocationChangedListener mListener;private AMapLocationClient locationClient;private AMapLocationClientOption clientOption;public static FindFragment newInstance() {FindFragment fragment = new FindFragment();return fragment;}public FindFragment() {}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.fragment_find, container, false);initview(savedInstanceState,view);initlistener();return view;}private void initview( Bundle savedInstanceState,View view){mapView= (MapView) view.findViewById(R.id.map);mapView.onCreate(savedInstanceState);if (aMap==null){aMap=mapView.getMap();}myLocationStyle = new MyLocationStyle();//初始化定位蓝点样式类aMap.setMyLocationStyle(myLocationStyle);aMap.getUiSettings().setMyLocationButtonEnabled(true);aMap.setLocationSource(this);aMap.setMyLocationEnabled(true);btn_mapchange=(ToggleButton) view.findViewById(R.id.btn_mapchange);}private void initlistener(){btn_mapchange.setOnCheckedChangeListener(this);}/*** 激活定位*/@Overridepublic void activate(OnLocationChangedListener listener) {mListener=listener;if(locationClient==null){locationClient=new AMapLocationClient(getActivity());clientOption=new AMapLocationClientOption();locationClient.setLocationListener(this);clientOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);//高精度定位clientOption.setOnceLocationLatest(true);//设置单次精确定位locationClient.setLocationOption(clientOption);locationClient.startLocation();}}/*** 停止定位*/@Overridepublic void deactivate() {mListener=null;if(locationClient!=null){locationClient.stopLocation();locationClient.onDestroy();}locationClient=null;}@Overridepublic void onLocationChanged(AMapLocation aMapLocation) {if (mListener != null&&aMapLocation != null) {if (aMapLocation != null&&aMapLocation.getErrorCode() == 0) {mListener.onLocationChanged(aMapLocation);// 显示系统小蓝点} else {String errText = "定位失败," + aMapLocation.getErrorCode()+ ": " + aMapLocation.getErrorInfo();Log.e("AmapErr",errText);}}}@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {if(isChecked){aMap.setMapType(AMap.MAP_TYPE_SATELLITE);}else {aMap.setMapType(AMap.MAP_TYPE_NORMAL);}}/*** 必须重写以下方法*/@Overridepublic void onResume(){super.onResume();mapView.onResume();}@Overridepublic void onPause() {super.onPause();mapView.onPause();}@Overridepublic void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);mapView.onSaveInstanceState(outState);}@Overridepublic void onDestroy() {super.onDestroy();mapView.onDestroy();if(locationClient!=null){locationClient.onDestroy();}}
}

效果图

fragment中高德地图定位相关推荐

  1. android中高德地图定位功能并且获取定位的城市

    一.概述 今天再一次用到了地图定位功能和地图显示功能,以前一直用的是高德地图定位,这次还是用高德,记录一下以便以后再做时方便一些.因为业务需要的功能不是很全,可以参考https://www.2cto. ...

  2. Android MVVM框架搭建(八)高德地图定位、天气查询、BottomSheetDialog

    Android MVVM框架搭建(八)高德地图定位.天气查询.BottomSheetDialog 前言 正文 一.集成SDK 二.基础配置 ① 权限配置 ② 配置Key 三.显示地图 ① MapFra ...

  3. flutter 获取定位_从头开发一个Flutter插件(二)高德地图定位插件

    在上一篇文章从头开发一个Flutter插件(一)开发流程里具体介绍了flutter插件的具体开发流程,从创建项目到发布.接下来将会为Flutter天气项目开发一个基于高德定位sdk的flutter定位 ...

  4. 安卓开发 高德地图定位的封装 十分钟上手

    前言 地图作为开发中三方sdk中较常遇到的一项,集成起来并不麻烦但是不小心踩坑可能会浪费较多时间,如果项目中多处使用还容易造成代码大量冗余,今天我们来将高德地图定位功能集成一个功能化模块,只需两分钟应 ...

  5. android 地图定位失败,Android 高德地图定位遇到的异常

    最近项目中集成了高德地图定位功能,使用都是正常按照高德开发文档来的,目前出现的问题是退出整个应用程序时(应用的主界面显示地图同时开启了实时定位),报错误如下: 12-26 10:21:56.739 2 ...

  6. android 定位工具类,高德地图定位工具类

    引言 定位功能初始化设置时耗时较多,如果放在Activity中操作,难免会有Activity切换较慢的问题.通过该工具类,可以实现一次初始化,多处随时调用.具有占用资源少,使用方便,便于复用,速度快, ...

  7. 高德地图定位的简单实现

    1.要实现高德地图的定位,首先要下载高德地图的SDK以及高德地图定位的SDK 下载地址:http://lbs.amap.com/api/android-sdk/download/ http://lbs ...

  8. uniapp使用高德地图定位(兼容app)

    1.获取Key  查看官方文档 需要:应用包名和SHA1(获取方法查看) ​2.配置manifest.json ​ 3.设置安全通讯域名 登录微信公众平台,在 "设置"->& ...

  9. vue-amap 实现高德地图定位 + 搜索 +回显

    1.注册成为开发者  -> 申请秘钥key 调用高德api 高德地图开放平台:https://lbs.amap.com/?ref=https://console.amap.com/dev/ind ...

  10. android wifi定位不了,h5网页使用高德地图定位正常,网页嵌入安卓app后wifi定位正常,4g网络无法定位?...

    问题描述 h5网页使用高德地图定位正常,网页嵌入安卓app后wifi定位正常,4g网络无法定位 问题出现的环境背景及自己尝试过哪些方法 h5网页手机浏览器打开没有问题,嵌入app后打包,安卓9.0系统 ...

最新文章

  1. 《中国人工智能学会通讯》——6.27 超越模式识别
  2. 关于抢红包的_关于抢红包的作文500字
  3. 磨刀不误砍柴工——数据准备的过程与实践
  4. 值得收藏的时间复杂度速查表:数据结构操作、排序算法、图操作、堆操作
  5. shopify在哪里填写html,[Shopify开店教程]添加嵌入代码
  6. MYSQL 自定义排序
  7. db2 空值转换函数_Excel一键转换百分比
  8. 苹果挥刀,iPhone 12 mini要换处理器了,无缘A14!
  9. sql数据库性能指标_SQL Server磁盘性能指标–第2部分–其他重要的磁盘性能指标
  10. 持续集成商 Travis CI 爆严重漏洞,数千开源项目机密或被盗
  11. 郑大计算机组成原理(专科)试卷 答案,专科《数字电路与逻辑设计》
  12. SVN修改文件夹名称
  13. 抓包|获取移动app里的数据,什么是抓包?
  14. TSC打印机使用教程终极版(转)
  15. 计量实证-PSM-DID教程、代码及数据分享
  16. 读论文:Self-Attention ConvLSTM for Spatiotemporal Prediction
  17. 【特征】PSI的计算
  18. word查找参考文献引用格式
  19. HTML5新特性之History
  20. CSS学习记录3.2/设置标签的背景颜色/控制背景图片的平铺方式/控制背景图片的位置/背景图片关联方式/背景图片和插入图片的区别/捕鱼达人背景练习/精灵图

热门文章

  1. 黑苹果E3-1290 v2(ivy bridge架构)安装成功案例分享
  2. 计算机实验室安全知识心得体会,实验室安全知识宣传
  3. Linux文件打包tar
  4. slam和orbslam3环境配置
  5. 苹果手机连接服务器传输文件,iOS 设备实现wifi局域网传输文件到iphone
  6. 三大开源bi工具_不用无限手套,人人都能开发 BI 系统------开源BI软件,可集成的BI工具...
  7. Win10应用商店下载应用速度非常缓慢的原因和解决方法
  8. 前端js使用jszip实现文件压缩功能
  9. 201510月职称计算机题目,职称计算机考试模拟题库-Excel试题及答案11
  10. JPM Coin— 货币非国家化的开端 | TokenInsight