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

article/2025/11/5 21:03:45

一、概述

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

高德地图申请成为开发者后的限制次数:

Key平台类型

服务

个人开发者

认证个人开发者

企业开发者

调用量

(次/日)

并发量

(次/秒)

调用量

(次/日)

并发量

(次/秒)

调用量

(次/日)

并发量

(次/秒)

Web服务API

地理编码

6000

100

300000

200

3000000

1000

逆地理编码

6000

100

300000

200

3000000

1000

驾车路径规划

2000

50

30000

50

300000

200

公交路径规划

2000

50

30000

50

300000

200

步行路径规划

2000

50

30000

50

300000

200

骑行路径规划

2000

50

30000

50

300000

200

距离测量

2000

50

30000

50

300000

200

搜索

2000

50

30000

50

300000

200

输入提示

2000

50

30000

50

300000

200

行政区查询

2000

50

30000

50

300000

200

交通态势

2000

20

30000

50

300000

200

抓路服务

2000

50

30000

50

300000

200

云图搜索

2000

20

30000

50

300000

200

云图存储

2000

20

30000

50

300000

200

静态地图

100000

400

3000000

500

6000000

1000

IP定位

100000

100

300000

200

3000000

1000

坐标转换

100000

100

300000

200

3000000

1000

天气查询

100000

100

300000

200

3000000

1000

智能硬件定位

无法申请Key

无法申请Key

无法申请Key

无法申请Key

3000000

1000

2、图片效果:

4、首先是根据当前位置获得经纬度activity

(1)androidMainfest.xml中写入高德地图api的key值

<meta-dataandroid:name="com.amap.api.v2.apikey"android:value="9cb6f84fb4821043af1bd1*******" />

(2)引入地图和定位的jar包(到网上下载最新的)

//地图显示功能
compile files('libs/AMap_2DMap_V2.9.0_20160525.jar')
//地图定位功能
compile files('libs/AMap_Location_V2.5.0_20160526.jar')

(3)Activity类实现定位监听

public class MainBuildingActivity extends MainActivity implements AMapLocationListener

(4)

private AMapLocationClient locationClient = null;
private AMapLocationClientOption locationOption = null;
locationClient = new AMapLocationClient(this.getApplicationContext());
locationOption = new AMapLocationClientOption();
// 设置定位模式为高精度模式
locationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
// 设置定位监听
locationClient.setLocationListener(this);
initOption();
locationClient.setLocationOption(locationOption);
locationClient.startLocation();
@Override
public void onLocationChanged(AMapLocation aMapLocation) {if (aMapLocation.getErrorCode() == 0) {final Map<String, String> map = new HashMap<>();//获取纬度map.put("longitude", String.valueOf(aMapLocation.getLongitude()));map.put("latitude", String.valueOf(aMapLocation.getLatitude()));ToastUtil.showShort(MainBuildingActivity.this,"___"+aMapLocation.getCity());Log.i("feng",aMapLocation.getCity());}
}
    private void initOption() {// 设置是否需要显示地址信息locationOption.setNeedAddress(true);/*** 设置是否优先返回GPS定位结果,如果30秒内GPS没有返回定位结果则进行网络定位* 注意:只有在高精度模式下的单次定位有效,其他方式无效*/
//        locationOption.setGpsFirst(true);// 设置是否开启缓存locationOption.setLocationCacheEnable(true);// 设置发送定位请求的时间间隔,最小值为1000,如果小于1000,按照1000算locationOption.setInterval(5000);locationOption.setOnceLocation(true);}

 

5、根据经纬度在地图上显示的功能Activity

 

public class BuildingPostionActivity extends BaseActivity implements OnMapLoadedListener,AMap.OnMarkerClickListener {private AMap aMap;private MapView mapView;private List<LatLng> latLngList = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_location);mapView = findViewById(R.id.map);mapView.onCreate(savedInstanceState); // 此方法必须重写init();}/*** 初始化AMap对象*/private void init() {setTitle("楼盘位置",false,null);registerBack();if (aMap == null) {aMap = mapView.getMap();setUpMap();}}private void setUpMap() {aMap.setOnMapLoadedListener(BuildingPostionActivity.this);// 设置amap加载成功事件监听器aMap.setOnMarkerClickListener(this);// 往地图上添加位置标志markeraddMarkersToMap();}/*** 方法必须重写*/@Overrideprotected void onResume() {super.onResume();mapView.onResume();}/*** 方法必须重写*/@Overrideprotected void onPause() {super.onPause();mapView.onPause();}/*** 方法必须重写*/@Overrideprotected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);mapView.onSaveInstanceState(outState);}/*** 方法必须重写*/@Overrideprotected void onDestroy() {super.onDestroy();mapView.onDestroy();}/*** 在地图上添加marker*/private void addMarkersToMap() {//List<BuildingBean> positions = (List<BuildingBean>) getIntent().getSerializableExtra("positions");List<BuildingBean> positions=new ArrayList<>();BuildingBean bean=new BuildingBean();bean.setLatitude("123.623458");bean.setLongitude("41.780748");bean.setBuildingName("滑翔小区");positions.add(bean);for (BuildingBean position:positions) {LatLng latLng = new LatLng(Double.valueOf(position.getLongitude()),Double.valueOf(position.getLatitude()));Marker marker = aMap.addMarker(new MarkerOptions().position(latLng).icon(BitmapDescriptorFactory.fromResource(R.drawable.location)).title(position.getBuildingName()));marker.showInfoWindow();latLngList.add(latLng);}}/*** 对marker标注点点击响应事件*/@Overridepublic boolean onMarkerClick(final Marker marker) {return false;}/*** 监听amap地图加载成功事件回调*/@Overridepublic void onMapLoaded() {// 设置所有maker显示在当前可视区域地图中LatLngBounds.Builder builder = new LatLngBounds.Builder();for (LatLng latLng:latLngList) {builder.include(latLng);}LatLngBounds build = builder.build();aMap.moveCamera(CameraUpdateFactory.newLatLngBounds(build, 10));aMap.moveCamera(CameraUpdateFactory.zoomBy(4));aMap.setOnMapLoadedListener(this);//设置地图显示监听器}
}

(2)xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/white"android:orientation="vertical" ><com.amap.api.maps2d.MapViewandroid:id="@+id/map"android:layout_width="match_parent"android:layout_height="match_parent" />
</LinearLayout>

 

 

 

 


http://chatgpt.dhexx.cn/article/I3cb6CkR.shtml

相关文章

高德地图定位

高德地图的使用&#xff08;二&#xff09;定位 定位 显示地图过后&#xff0c;就是进行定位&#xff0c;这里我将介绍如何实现定位功能&#xff0c;以及如何改变定位的小图标 实现定位功能 定位功能基本有两种展现形式&#xff0c;一种是在地图上展示定位图标&#xff0c;…

vue简单使用高德地图定位

1、获取key 我们需要到高德开放平台生成key 我这里选的是web端&#xff0c;提交后会生成一个key值 2、安装vue-amap npm install vue-amap --save 3、在项目main.js引入vue-amap 1 import AMap from vue-amap; 2 Vue.use(AMap); 3 4 // 初始化vue-amap 5 AMap.i…

uniapp使用高德地图定位

公司用的是百度地图&#xff0c;过听同事说&#xff0c;市场上用高德地图的比较多&#xff0c;于是又按捺不住自己那 好奇万物的心&#xff0c;专门出研究了一下高德地图&#xff0c;发现内容基本一直&#xff0c;不过就是在方法的名字变了而已&#xff0c;废话不多说我们开始研…

高德地图初步使用-定位

iOS系统不允许使用第三方定位&#xff0c;定位功能是对iOS系统定位的二次封装。通过封装&#xff0c;可将原始的定位点无偏差的显示在高德地图上。 注意&#xff1a; 1)2.3.0(含)之前版本的SDK&#xff0c;在iOS8中无法定位&#xff0c;请参考&#xff1a;iOS8无法定位的解决方…

高德地图使用——定位功能

在上一次中我们说到了如何申请key值&#xff0c;和在Application中如何配置&#xff0c;以及将地图显示出来。如果没看过的朋友们可以看一下笔者上一篇文章&#xff1a;最新高德地图使用&#xff08;SDK6.3.0版本&#xff09;——申请key、显示地图。在这一篇中&#xff0c;我们…

高德地图之定位篇-----定位、预测天气、围栏、搜索周边、行踪轨迹

跟集成百度地图一样&#xff0c;首先获取KEY,获取方式&#xff08;官方的截图&#xff09; 这篇主要是讲解高德地图定位篇&#xff0c;高德地图定位篇跟高德地图篇是不同的sdk&#xff0c;分离开了。。。 来看下配置流程吧&#xff0c;配置是第一位的 1.从网站下载并解压得到定…

解决电脑自动修复蓝屏问题(你的电脑未正确启动)

一.问题描述 电脑长时间未开机&#xff0c;开机蓝屏&#xff0c;显示自动修复&#xff0c;你的电脑未正确启动&#xff0c;如下图所示&#xff1a; 二。解决问题 1.点击高级选项-》疑难解答-》命令提示符&#xff1a; 2.在命令行中输入cd c:\windows\system32\drivers 3.再输…

如何完美解决解决win10系统--无法自动修复此计算机问题

前言 今天遇到一个糟心的问题就是开机时电脑无法正常开启&#xff0c;如图片所示。然后网上搜集了各种解决的办法都不管用&#xff0c;特别是百度给出的方法&#xff0c;根本就是坑人。如果你不想重装系统&#xff0c;而且想保留本电脑已有的程序和文件&#xff0c;可以参考本…

台式电脑怎么进入修复计算机,电脑为什么提示自动修复?电脑开机提示自动修复的解决办法...

小编朋友的电脑总是会出现一些奇奇怪怪的问题&#xff0c;这不电脑开机后就莫名其妙的提示需要启动修复&#xff0c;电脑无法正常启动导致无法使用&#xff0c;这问题该如何解决呢&#xff1f;可以参考小编下面的教程&#xff0c;看看对你有没有帮助。 电脑开机提示自动修复 ●…

当电脑开不了机出现自动修复时

当电脑开不了机出现自动修复时 电脑突然间开不了机&#xff0c;一直出现自动修复&#xff0c;然后修复失败。如下图 让人头疼&#xff0c;找了一下&#xff0c;有点担心时硬盘坏了&#xff0c;点了高级选项&#xff0c;选择疑难解答&#xff0c;再点高级选项&#xff0c;里面…

服务器开机提示修复,电脑开机提示自动修复怎么办?win10电脑开机提示自动修复教程...

我们在使用电脑的时候&#xff0c;开机后一般都会进入桌面。但有时候打开电脑后提示自动修复&#xff0c;显示电脑未能正确启动。电脑开机提示自动修复怎么办&#xff1f;下面就让小编为大家带来win10电脑开机提示自动修复教程。 首先大家一定会和我一样想这个问题&#xff0c;…

电脑开机显示自动修复失败无法进入系统的解决方法

案例场景 前几天由于电脑突然蓝屏&#xff0c;重启后&#xff0c;结果开机进不了系统&#xff0c;蓝屏显示自动修复失败&#xff0c;立马选了启动修复&#xff0c;但可想而知不起作用&#xff0c;如此重复多次后还是于事无补。经过两个小时的折腾&#xff0c;终于成功进入系统。…

电脑自动修复重启无法进入系统问题解决方案

电脑管家提示电脑需要修复漏洞&#xff0c;在修复之后使电脑睡眠了&#xff0c;可能定时重启的原因&#xff0c;导致了电脑不正常关机&#xff0c;打开电脑后就出现了蓝屏的情况&#xff0c;反复重启都无法进入系统&#xff0c;电脑里很多重要的东西&#xff0c;又不想重装系统…

windows10自动修复无法开机

Windows10操作系统于2015年7月29日正式发布&#xff0c;此后&#xff0c;win10也就成了新上市的笔记本电脑或者台式机电脑的预装操作系统&#xff01;win10系统给我们带了全新的体验&#xff0c;当然也带来了一定的烦恼&#xff01;就拿win10自动修复这个功能来说&#xff0c;玩…

电脑自动修复失败无限重启解决办法win10

1.写在前面的话 1.首先希望大家都有一个备份的意识&#xff0c;当电脑第一次出现问题时&#xff0c;你查了各种方法费尽九牛二虎之力修好&#xff0c;一定要设置一个系统还原点&#xff0c;这样以后电脑坏掉还有的救。 2.非必要情况&#xff0c;不要强制关机。 3.不要自己拆…

win10系统开机自动修复失败的解决方法

事情是这样的&#xff0c;在某一天的傍晚帮对象装了一个arcgis软件&#xff0c;学学科地理的同学应该都要用的&#xff0c;当然作为一个没有正版资源的人&#xff0c;首选了荡来的安装包&#xff0c;并试图安装&#xff0c;经过一顿操作&#xff0c;确认各项功能都可以正常使用…

win10自动修复电脑无法正常启动

问题描述&#xff1a; 昨天遇到的这个问题&#xff0c;起因是电脑卡&#xff0c;反复重启后还是觉得卡&#xff0c;于是强制关机&#xff0c;结果出现蓝屏&#xff0c;自动修复&#xff0c;电脑无法正常启动。参考了网上的相关解决方法&#xff0c;尝试在高级选项里面选择“禁用…

台式电脑怎么进入修复计算机,电脑开机提示自动修复怎么办?电脑开机自动修复处理方法...

对于很多电脑用户来说&#xff0c;偶尔会遇到电脑开机提示自动修复的情况&#xff0c;由于电脑无法正常开机&#xff0c;导致无法使用&#xff0c;问题显得就比较棘手了。首先大家一定会和小编一样想这个问题为什么我的电脑会出现这个提示&#xff1f; 电脑开机提示自动修复 ●…

计算机自动进入自动修复界面,电脑提示自动修复?戳这里几招解决,方法简单实用!...

原标题&#xff1a;电脑提示自动修复&#xff1f;戳这里几招解决&#xff0c;方法简单实用&#xff01; 很多用户遇到一个这样的问题&#xff0c;也不知道是什么原因&#xff0c;电脑有时候一开机就出现“启动修复”的界面。是不是没有正常将系统关闭呢&#xff1f;好像之前删过…

Win10自动修复无法开机【完美解决】

Windows10操作系统于2015年7月29日正式发布&#xff0c;此后&#xff0c;win10也就成了新上市的笔记本电脑或者台式机电脑的预装操作系统&#xff01;win10系统给我们带了全新的体验&#xff0c;当然也带来了一定的烦恼&#xff01;就拿win10自动修复这个功能来说&#xff0c;玩…