我们在用地图软件搜索的时候,搜索结果会在地图上以红点显示,现在我们来实现一个在地图上显示指定位置的程序,先看效果图。

要实现这么个功能,首先要能将地图视图中心移动到以指定位置;还有在指定位置绘制一个点(图标),上图一个是系统自带图标,一个是自定义图标;因为这里的位置是经纬度坐标,如果是根据坐标来显示倒是可以直接显示,如果是根据地址来显示,就得从地址获取坐标了。我的代码只写了从坐标获取地址,至于从地址获取坐标,也就改两行代码就行了,如不了解参考官方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高德显示指定位置,高德地图开发(二)地图上显示指定位置相关推荐

  1. 高德地图开发(二)地图上显示指定位置

    我们在用地图软件搜索的时候,搜索结果会在地图上以红点显示,现在我们来实现一个在地图上显示指定位置的程序,先看效果图. 要实现这么个功能,首先要能将地图视图中心移动到以指定位置:还有在指定位置绘制一个点 ...

  2. android 经纬度 转换,andorid将经纬度转换到手机屏幕上显示

    这是效果图,屏幕中的位置是兴东地铁站,左下方是洪浪北地铁站 主要的算法公式为: 以A为中心点,已知其经纬度为 lonA, latA 已知其他位置坐标的经度为纬度  lon, lat 其座标在手机屏幕位 ...

  3. 高德地图开发之地图配置及vue上初始化创建地图

     开门见山地说,现如今地图相关的开发业务在工作中越来越常见,目前市面上主流的地图开发还是以百度和高德为主,今天就来讲一下高德地图的配置和在vue上的初始化创建,帮助大家更好更快的了解高德地图开发相关的 ...

  4. [android] 百度地图开发 (二).定位城市位置和城市POI搜索

    一. 百度地图城市定位和POI搜索知识       上一篇文章"百度地图开发(一)"中讲述了如何申请百度APIKey及解决显示空白网格的问题.该篇文章主要讲述如何定位城市位置.定位 ...

  5. [android] 百度地图开发 (一).申请AK显示地图及解决显示空白网格问题

        最近做android百度地图,但是使用baidumapapi_v2_3_1.jar和libBaiduMapSDK_v2_3_1.so显示百度地图时总是遇到问题--只显示网格而没有显示地图,网络 ...

  6. 高德地图开发自定义地图样式

    1.首先打开高都地图api自定义地图界面(自定义地图) 2.点进去,进行自定义地图配置 自定义样式 3.定义结束,点击发布 4.接下来点击使用自定义地图,会生成一串码 5.点击复制,在地图初始化调用这 ...

  7. QT5百度地图开发学习——qt调用输入位置坐标位置进行百度地图定位

    系列文章目录 上一章: QT5百度地图开发学习--JavaScript调用qt函数并传参给qt 文章目录 系列文章目录 前言 一.界面设计 二.槽函数 总结 前言 本文实现输入坐标然后在地图上显示位置 ...

  8. 百度地图开发自定义图标无法显示的问题

    直接上解决方案 引入图标需要使用require关键字,不能只写资源路径: 你的图标的大小必须与百度地图设置的图标size一致,比如下图在icon font中下载了一个图标(200 * 200),在引入 ...

  9. android TV端如何读取微信网页版二维码显示生成一张图片

    今天讲下TV端接二维码遇到的一些问题,由于是在微信平台申请的是以网站那种形式申请的,而不是服务号申请的,所以客户端显示的二维码是以网页的形式展现的,网页是用WebView加载实现的,但是我们的界面是这 ...

最新文章

  1. 英特尔宣布全新自动驾驶平台整合处理器和视觉芯片
  2. python3 域名转ip
  3. 总结20121016
  4. 使用 utmpdump 监控 CentOS 用户登录历史
  5. 激光slam-- .pgm格式地图分析及修改方法
  6. Springboot 2.x上传文件大小限制
  7. 手把手教用XNA开发winphone7游戏(五)大结局
  8. (2)vue.js介绍
  9. ES6新特性_ES6生成器函数声明与调用---JavaScript_ECMAScript_ES6-ES11新特性工作笔记020
  10. 基础 - 字符读取函数scanf、getchar、gets、cin(清空缓存区解决单字符回车问题)
  11. ssrs 数据分页_如何在SSRS中使用JSON数据
  12. 安卓10侧边返回_Android 之路 (10) - 集成滑动返回(SwipeBackLayout)
  13. paip.hibernate list 返回位null的解决
  14. 微信小程序实现使用百度云 人脸录入人脸识别功能
  15. webpack源码解析系列(一)
  16. C# 读取Word文本框中的文本、图片和表格(附VB.NET代码)
  17. 【uniapp小程序】uploadFile文件上传
  18. flink程序:Exceeded checkpoint tolerable failure threshould
  19. win7 安装SQL Server2008R2 提示文件格式错误的处理
  20. 手把手教你把网上下载视频刻录成VCD、DVD

热门文章

  1. 小学第三册上计算机wps教案,小学三年级上册信息技术教案【三篇】
  2. 最简单的Excel导出(EasyPOI) 支持简单合并单元格,多Sheet
  3. sql server 2000 torn_page_detection error (error 823)
  4. 智能车浅谈——图像篇
  5. 为什么从 P6 晋升到 P7 那么难?!
  6. QT+opencv调用海康工业相机
  7. 毕业生基本要素之计算机水平,2017年非上海生源应届高校毕业生进沪就业评分办法...
  8. 【数据压缩】实验五——JPEG原理分析及JPEG解码器的调试
  9. qpython官网是多少_qpython是什么
  10. 装修验收自备“精明眼”居住半年就后悔