高德地图七:根据地址定位
高德地图七:根据地址定位
实例效果图:
代码实现:
layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center_horizontal"><TextViewandroid:text="地址:"android:layout_width="wrap_content"android:layout_height="wrap_content"/><!-- 定义输入地址的文本框 --><EditTextandroid:id="@+id/address"android:inputType="text"android:text="沣宏大厦"android:textSize="14sp"android:layout_width="240dp"android:layout_height="wrap_content" /><Buttonandroid:id="@+id/loc"android:text="定位"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="4" /></LinearLayout><!-- 使用高德地图的提供的MapView --><com.amap.api.maps.MapViewandroid:id="@+id/map"android:layout_width="match_parent"android:layout_height="match_parent" />
</LinearLayout>
com/example/administrator/MainActivity.java
package com.example.administrator;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;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.BitmapDescriptorFactory;
import com.amap.api.maps.model.CircleOptions;
import com.amap.api.maps.model.GroundOverlayOptions;
import com.amap.api.maps.model.LatLng;
import com.amap.api.services.core.LatLonPoint;
import com.amap.api.services.geocoder.GeocodeAddress;
import com.amap.api.services.geocoder.GeocodeQuery;
import com.amap.api.services.geocoder.GeocodeResult;
import com.amap.api.services.geocoder.GeocodeSearch;
import com.amap.api.services.geocoder.RegeocodeResult;public class MainActivity extends Activity implements GeocodeSearch.OnGeocodeSearchListener {private MapView mapView;private AMap aMap;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mapView = (MapView) findViewById(R.id.map);// 必须回调MapView的onCreate()方法mapView.onCreate(savedInstanceState);init();Button bn = (Button) findViewById(R.id.loc);final TextView addrTv = (TextView) findViewById(R.id.address);bn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String addr = addrTv.getText().toString();if (addr.equals("")) {Toast.makeText(MainActivity.this, "请输入有效的地址", Toast.LENGTH_LONG).show();} else {GeocodeSearch search = new GeocodeSearch(MainActivity.this);search.setOnGeocodeSearchListener(MainActivity.this);GeocodeQuery query = new GeocodeQuery(addr, "");//空表示全国// 根据地址执行异步地址解析search.getFromLocationNameAsyn(query); // ①}}});}// 初始化AMap对象private void init() {if (aMap == null) {aMap = mapView.getMap();// 创建一个设置放大级别的CameraUpdateCameraUpdate cu = CameraUpdateFactory.zoomTo(16);// 设置地图的默认放大级别aMap.moveCamera(cu);}}@Overrideprotected void onResume() {super.onResume();// 必须回调MapView的onResume()方法mapView.onResume();}@Overrideprotected void onPause() {super.onPause();// 必须回调MapView的onPause()方法mapView.onPause();}@Overrideprotected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);// 必须回调MapView的onSaveInstanceState()方法mapView.onSaveInstanceState(outState);}@Overrideprotected void onDestroy() {super.onDestroy();// 必须回调MapView的onDestroy()方法mapView.onDestroy();}@Overridepublic void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {}@Overridepublic void onGeocodeSearched(GeocodeResult geocodeResult, int i) {// 获取解析得到的第一个地址GeocodeAddress geo = geocodeResult.getGeocodeAddressList().get(0);// 获取解析得到的经纬度LatLonPoint pos = geo.getLatLonPoint();LatLng targetPos = new LatLng(pos.getLatitude(), pos.getLongitude());// 创建一个设置经纬度的CameraUpdateCameraUpdate cu = CameraUpdateFactory.changeLatLng(targetPos);// 更新地图的显示区域aMap.moveCamera(cu);// 创建一个GroundOverlayOptions(用于向地图上添加图片)GroundOverlayOptions options = new GroundOverlayOptions()// 设置GroundOverlayOptions包装的图片.image(BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher)).position(targetPos, 64);// 添加图片aMap.addGroundOverlay(options);// 创建一个CircleOptions(用于向地图上添加圆形)CircleOptions cOptions = new CircleOptions().center(targetPos) // 设置圆心.fillColor(0x80ffff00) // 设置圆形的填充颜色.radius(80) // 设置圆形的半径.strokeWidth(1) // 设置圆形的线条宽度.strokeColor(0xff000000); // 设置圆形的线条颜色aMap.addCircle(cOptions);}private void GroundOverlayOptions() {}
}
高德地图七:根据地址定位相关推荐
- 高德地图地位获取地址
高德地图地位获取地址 高德地图开发平台地址:https://lbs.amap.com/ 1导入依赖库 implementation 'com.amap.api:location:4.4.0' 2权限 ...
- Android使用高德地图api实现基础定位
Android使用高德地图api实现基础定位(一) 关于 会获取SHA1的可自行跳过这一步 第二步引用高德sdk 第三步修改MainActivity.java 关于 这篇主要讲如何使用高德sdk(不是 ...
- 【应用】Python利用高德地图经纬度数据绘制定位
[应用]Python利用高德地图经纬度数据绘制定位 一. 背景 二. 获取API 1. 注册高德开放平台个人开发者 2. 获取key 三. 具体步骤 1. 库的导入 2. 根据地址获取经纬度 3. 绘 ...
- android开发之高德地图API篇:1、高德地图API之实时定位+轨迹可视化
TIME:2020年7月6日 高德地图API之实时定位+轨迹可视化 前言: step1.工程的配置 step2.显示地图 step2.实现静态定位: step3.实时定位 step4.实现轨迹可视化: ...
- java使用高德地图根据IP地址获取城市
话不多说!直奔主题 既然是根据IP,首先肯定是先要获取IP地址的,以下代码是获取IP地址,部署到服务器上去后会获取到公网的IP不是服务器的本机IP:是通过HttpServletRequest获取 注: ...
- 高德地图八:手机定位和GPS定位
高德地图八:手机定位和GPS定位 高德地图八:手机定位和GPS定位 代码实现: layout/activity_main.xml <?xml version="1.0" en ...
- android高德地图轨迹偏纠,GitHub - YangHaoyi/DrawTraceDemo: 高德地图轨迹回放带定位纠偏加彩虹渐变线...
DrawTraceDemo 高德地图轨迹回放带定位纠偏加彩虹渐变线 由于高德自身持续定位存在偏移状况,故摒弃了高德自身的定位点,改用自定义marker点作为定位点 加注轨迹纠偏函数,根据时间判定此次移 ...
- 高德地图API之IP定位
高德地图API之IP定位(替换你的KEY) IP定位API:http://lbs.amap.com/api/webservice/guide/api/ipconfig package com.gdma ...
- 利用高德地图和腾讯地图的详细地址定位
今天要说的基于浏览器的定位,是通过高德地图通过浏览器定位来获取经纬度,然后利用腾讯地图的逆地址解析,将经纬度解析为详细的地址,使用高德地图时,需要先去高德开发者平台申请key码. 代码如下: < ...
最新文章
- mysql 索引合并
- 图片验证码把我逼成了人工智障
- BZOJ 1460 Pku2114 Boatherds
- 机器学习-决策树(Decision Tree)
- 优化的交换排序(冒泡排序)_C程序实现优化的冒泡排序
- (原創) 如何将字符串前后的空白去除? (使用string.find_first_not_of, string.find_last_not_of) (C/C++)...
- C++管道通信类封装
- SD卡在SPI模式下的初始化和详细的代码分析
- LPC1758串口ISP下载程序
- HDU 5536 字典树
- 18. 避免使用vectorbool
- toast弹窗_弹窗功能解析amp;设计指南 | 为弹窗正名
- 1302数码管c语言程序,基于AVR单片机的DS1302数码管时间显示C语言程序设计
- IP错误引起MongoDB副本集初始化失败
- AndroidFTP客户端-FTP管家源码
- 前端几种语言和技术的概述
- 冒泡排序和插入排序傻傻分不清
- Docker基本操作五 (挂载数据卷)
- 《Unity Shader入门精要》 第五章 开始学习Unity Shader之旅 笔记
- 网易云音乐用户微观洞察精细化运营