百度地图获取手机屏幕坐标

百度地图sdk获取手机屏幕左上右下的坐标经纬度


前段时间开发项目中,使用了baiduSdk,有一个是需求是获取手机屏幕的左上右下的经纬度,当时候正也是醉了,没怎么用过baidu地图SDK,然后就自己摸索咯,在此记录一下:
先说点小东西,百度地图去掉logo,以及缩放按钮:

  View child = mBaiduMap.getChildAt(1);
        if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) {
            child.setVisibility(View.INVISIBLE);
        }
        mBaiduMap.showZoomControls(false);
        mBaiduMap.showScaleControl(false);

好了,咱们言归正传,接下来就来说如何去实现获取到手机屏幕的左上右下的经纬度,代码挺简单的,前提我们得获取到手机屏幕的宽高:

我这边是Fragment页面:

 private LatLng getSite(int type) {
        DisplayMetrics dm = new DisplayMetrics();


        Point pt = new Point();
        if (type == 1) {
            //左上角
            pt.x = 0;
            pt.y = 0;
        }
        if (type == 2) {
            //左下角
            pt.x = 0;
            pt.y = dm.heightPixels;
        }
        if (type == 3) {
            //右上角
            pt.x = dm.widthPixels;
            pt.y = 0;
        }
        if (type == 4) {
            //右下角
            pt.x = dm.widthPixels;
            pt.y = dm.heightPixels;
        }

        ll = mBaiduMap.getMap().getProjection().fromScreenLocation(pt);

        return ll;

    }

而且我们需要在mBaiduMap.getMap().setOnMapStatusChangeListener(this)中才能够获取到相对应的经纬度

longitude/latitude 经度/纬度

  @Override
    public void onMapStatusChangeStart(MapStatus mapStatus) {



    }

    @Override
    public void onMapStatusChange(MapStatus mapStatus) {


    }

    @Override
    public void onMapStatusChangeFinish(MapStatus mapStatus) {
        getSite(1);
        LogUtil.e("左上角经纬度为", "左上角经度 x:" + ll.latitude + " 左上角纬度 y:" + ll.longitude);

        getSite(2);
        LogUtil.e("左下角经纬度为", "左下角经纬度 x:" + ll.latitude + " y:" + ll.longitude);

        getSite(3);
        LogUtil.e("右上角经纬度为", "右上角经纬度 x:" + ll.latitude + " y:" + ll.longitude);

        getSite(4);
        LogUtil.e("右下角经纬度为", "右下角经度 x:" + ll.latitude + "右下角纬度 y:" + ll.longitude);

Tips

百度地图sdk的经纬度api,举个例子GeoPoint(int latitudeE6, int longitudeE6),这个api用给定的经纬度构造一个GeoPoint,我们会发现跟常规的经纬度是相反的,这个一定得小心!!!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值