超详细解析定位
坐标—LatLng
定位中用得最多的是坐标(也就是经纬度),那么我们首先搞清楚什么是坐标:
LatLng 类:地理坐标基本数据结构。
描述 方法名 构造函数 LatLng(double latitude, double longitude) 字段详细资料
描述 字段名 定义 纬度 latitude public final double latitude 经度 longitude public final double longitude 提醒:经纬度我经常搞错,不知道为什么,大家特别在操作坐标的时候要格外注意。经纬度的数据类型是
double
类型的。坐标拾取系统
每次大家想知道一个地方的坐标或者想拿几个示例坐标,那么就可以用这个。鼠标点击地图上任意一处地方就会得到该地点的坐标(显示在右上角方框里);效果图(重点看一下红框里的内容):
地理范围数据结构—LatLngBounds
地理范围数据结构,由西南以及东北坐标点确认。虽然说用的不多,但它和坐标有点亲属关系,所以使不使用我们都介绍。
一般有
XXX.Builder
的希望大家多多使用,尽量不要new
,当然了,有的类是有构造方法的有的没有;嵌套类概要:限定符和类型 类 说明 static class LatLngBounds.Builder 地理范围构造器 字段概要:
限定符和类型 字段 说明 LatLng northeast 该地理范围东北坐标 LatLng southwest 该地理范围西南坐标 方法概要:
限定符和类型 方法 说明 boolean contains(LatLng point) 判断该地理范围是否包含一个地理位置 LatLng getCenter() 获取该地理范围的中心地理坐标 方法详细资料:
public boolean contains(LatLng point) 判断该地理范围是否包含一个地理位置 参数: point - 被判断的地理位置 返回: 该地理范围是否包含一个地理位置
public LatLng getCenter() 获取该地理范围的中心地理坐标 返回: 该地理范围的中心地理坐标
地理范围构造器—LatLngBounds.Builder
构造器概要 :
构造器 说明 LatLngBounds.Builder() 构造函数 方法概要:
限定符和类型 方法 说明 LatLngBounds build() 创建地理范围对象 LatLngBounds.Builder include(LatLng point) 让该地理范围包含一个地理位置坐标 方法详细资料:
public LatLngBounds build() 创建地理范围对象 返回: 创建出的地理范围对象
public LatLngBounds.Builder include(LatLng point) 让该地理范围包含一个地理位置坐标 参数: point - 地理位置坐标 返回: 该构造器对象
使用范例:
mBDMap.setOnMapLoadedCallback(new BaiduMap.OnMapLoadedCallback() { @Override public void onMapLoaded() { //坐标范围 LatLng northeast = new LatLng(121.445541, 31.192286); LatLng southwest = new LatLng(121.441624, 31.189922); LatLngBounds llb = new LatLngBounds.Builder().include(northeast).include(southwest).build(); boolean isHas = llb.contains(new LatLng(121.443564, 31.190795)); Log.v("此功能地图加载完毕的时候调用", "有还是没有" + isHas + ",东北:" + llb.northeast + "西南:" + llb.southwest); } });
简单定位
创建
activity_location.xml
:<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.baidu.mapapi.map.MapView android:id<