android高德显示指定位置,高德地图开发(二)地图上显示指定位置
我们在用地图软件搜索的时候,搜索结果会在地图上以红点显示,现在我们来实现一个在地图上显示指定位置的程序,先看效果图。
要实现这么个功能,首先要能将地图视图中心移动到以指定位置;还有在指定位置绘制一个点(图标),上图一个是系统自带图标,一个是自定义图标;因为这里的位置是经纬度坐标,如果是根据坐标来显示倒是可以直接显示,如果是根据地址来显示,就得从地址获取坐标了。我的代码只写了从坐标获取地址,至于从地址获取坐标,也就改两行代码就行了,如不了解参考官方API:http://lbs.amap.com/api/android-sdk/guide/map-data/geo
下面是代码以及解析,有一点需要注意,在解析坐标地址的时候,查询结果的监听一定写在异步请求的前面,不然可能获取不到地址解析数据。切记!
package com.example.gdmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
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.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.services.core.LatLonPoint;
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;
public class MainActivity extends AppCompatActivity{
MapView mapView=null;//地图视图
AMap aMap;//地图对象
CameraUpdate cameraUpdate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView= (MapView) findViewById(R.id.map);
mapView.onCreate(savedInstanceState);//创建地图
aMap=mapView.getMap();//获取地图对象
getadress();
}
//根据地址绘制需要显示的点
public void makepoint(String s){
Log.e("Shunxu","开始绘图");
//北纬39.22,东经116.39,为负则表示相反方向
LatLng latLng=new LatLng(39.22,116.39);
Log.e("地址",s);
//使用默认点标记
Marker maker=aMap.addMarker(new MarkerOptions().position(latLng).title("地点:").snippet(s));
//自定义点标记
MarkerOptions markerOptions=new MarkerOptions();
markerOptions.position(new LatLng(34,115)).title("标题").snippet("内容");
markerOptions.icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory
.decodeResource(getResources(),R.mipmap.ic_launcher)));//设置图标
aMap.addMarker(markerOptions);
//改变可视区域为指定位置
//CameraPosition4个参数分别为位置,缩放级别,目标可视区域倾斜度,可视区域指向方向(正北逆时针算起,0-360)
cameraUpdate= CameraUpdateFactory.newCameraPosition(new CameraPosition(latLng,8,0,30));
aMap.moveCamera(cameraUpdate);//地图移向指定区域
//位置坐标的点击事件
aMap.setOnMarkerClickListener(new AMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
//Toast.makeText(MainActivity.this,"点击指定位置",Toast.LENGTH_SHORT).show();
return false;
}
});
//位置上面信息窗口的点击事件
aMap.setOnInfoWindowClickListener(new AMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Toast.makeText(MainActivity.this,"点击了我的地点",Toast.LENGTH_SHORT).show();
}
});
}
//解析指定坐标的地址
public void getadress(){
Log.e("Shunxu","调用getadress");
GeocodeSearch geocodeSearch=new GeocodeSearch(this);//地址查询器
//设置查询参数,
//三个参数依次为坐标,范围多少米,坐标系
RegeocodeQuery regeocodeQuery=new RegeocodeQuery(new LatLonPoint(39.22,116.39),200,GeocodeSearch.AMAP);
//设置查询结果监听
geocodeSearch.setOnGeocodeSearchListener(new GeocodeSearch.OnGeocodeSearchListener() {
//根据坐标获取地址信息调用
@Override
public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {
String s =regeocodeResult.getRegeocodeAddress().getFormatAddress();
Log.e("Shunxu","获得请求结果");
makepoint(s);
}
//根据地址获取坐标信息是调用
@Override
public void onGeocodeSearched(GeocodeResult geocodeResult, int i) {
}
});
geocodeSearch.getFromLocationAsyn(regeocodeQuery);//发起异步查询请求
}
//将地图生命周期跟活动绑定,减少某些不必要的bug
@Override
protected void onPostResume() {
super.onPostResume();
mapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
}
android高德显示指定位置,高德地图开发(二)地图上显示指定位置相关推荐
- 高德地图开发(二)地图上显示指定位置
我们在用地图软件搜索的时候,搜索结果会在地图上以红点显示,现在我们来实现一个在地图上显示指定位置的程序,先看效果图. 要实现这么个功能,首先要能将地图视图中心移动到以指定位置:还有在指定位置绘制一个点 ...
- android 经纬度 转换,andorid将经纬度转换到手机屏幕上显示
这是效果图,屏幕中的位置是兴东地铁站,左下方是洪浪北地铁站 主要的算法公式为: 以A为中心点,已知其经纬度为 lonA, latA 已知其他位置坐标的经度为纬度 lon, lat 其座标在手机屏幕位 ...
- 高德地图开发之地图配置及vue上初始化创建地图
开门见山地说,现如今地图相关的开发业务在工作中越来越常见,目前市面上主流的地图开发还是以百度和高德为主,今天就来讲一下高德地图的配置和在vue上的初始化创建,帮助大家更好更快的了解高德地图开发相关的 ...
- [android] 百度地图开发 (二).定位城市位置和城市POI搜索
一. 百度地图城市定位和POI搜索知识 上一篇文章"百度地图开发(一)"中讲述了如何申请百度APIKey及解决显示空白网格的问题.该篇文章主要讲述如何定位城市位置.定位 ...
- [android] 百度地图开发 (一).申请AK显示地图及解决显示空白网格问题
最近做android百度地图,但是使用baidumapapi_v2_3_1.jar和libBaiduMapSDK_v2_3_1.so显示百度地图时总是遇到问题--只显示网格而没有显示地图,网络 ...
- 高德地图开发自定义地图样式
1.首先打开高都地图api自定义地图界面(自定义地图) 2.点进去,进行自定义地图配置 自定义样式 3.定义结束,点击发布 4.接下来点击使用自定义地图,会生成一串码 5.点击复制,在地图初始化调用这 ...
- QT5百度地图开发学习——qt调用输入位置坐标位置进行百度地图定位
系列文章目录 上一章: QT5百度地图开发学习--JavaScript调用qt函数并传参给qt 文章目录 系列文章目录 前言 一.界面设计 二.槽函数 总结 前言 本文实现输入坐标然后在地图上显示位置 ...
- 百度地图开发自定义图标无法显示的问题
直接上解决方案 引入图标需要使用require关键字,不能只写资源路径: 你的图标的大小必须与百度地图设置的图标size一致,比如下图在icon font中下载了一个图标(200 * 200),在引入 ...
- android TV端如何读取微信网页版二维码显示生成一张图片
今天讲下TV端接二维码遇到的一些问题,由于是在微信平台申请的是以网站那种形式申请的,而不是服务号申请的,所以客户端显示的二维码是以网页的形式展现的,网页是用WebView加载实现的,但是我们的界面是这 ...
最新文章
- 英特尔宣布全新自动驾驶平台整合处理器和视觉芯片
- python3 域名转ip
- 总结20121016
- 使用 utmpdump 监控 CentOS 用户登录历史
- 激光slam-- .pgm格式地图分析及修改方法
- Springboot 2.x上传文件大小限制
- 手把手教用XNA开发winphone7游戏(五)大结局
- (2)vue.js介绍
- ES6新特性_ES6生成器函数声明与调用---JavaScript_ECMAScript_ES6-ES11新特性工作笔记020
- 基础 - 字符读取函数scanf、getchar、gets、cin(清空缓存区解决单字符回车问题)
- ssrs 数据分页_如何在SSRS中使用JSON数据
- 安卓10侧边返回_Android 之路 (10) - 集成滑动返回(SwipeBackLayout)
- paip.hibernate list 返回位null的解决
- 微信小程序实现使用百度云 人脸录入人脸识别功能
- webpack源码解析系列(一)
- C# 读取Word文本框中的文本、图片和表格(附VB.NET代码)
- 【uniapp小程序】uploadFile文件上传
- flink程序:Exceeded checkpoint tolerable failure threshould
- win7 安装SQL Server2008R2 提示文件格式错误的处理
- 手把手教你把网上下载视频刻录成VCD、DVD
热门文章
- 小学第三册上计算机wps教案,小学三年级上册信息技术教案【三篇】
- 最简单的Excel导出(EasyPOI) 支持简单合并单元格,多Sheet
- sql server 2000 torn_page_detection error (error 823)
- 智能车浅谈——图像篇
- 为什么从 P6 晋升到 P7 那么难?!
- QT+opencv调用海康工业相机
- 毕业生基本要素之计算机水平,2017年非上海生源应届高校毕业生进沪就业评分办法...
- 【数据压缩】实验五——JPEG原理分析及JPEG解码器的调试
- qpython官网是多少_qpython是什么
- 装修验收自备“精明眼”居住半年就后悔