Android中级篇之百度地图SDK v3.5.0-百度地图定位[超详细图解定位基础]

超详细解析定位

  • 坐标—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<
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

y1笑而过song

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值