zoukankan      html  css  js  c++  java
  • AndroidBDMap学习05:连续定位地图

    一、防抖动,平滑策略

    利用历史记录与当前定位信息,来确定图层标记的位置,以防止抖动

    评分方案:

    //权重分配
    public static float[] EARTH_WEIGHT = {0.1f,0.2f,0.4f,0.6f,0.8f}; 

    历史位置与当前定位结合:

    //评分
    for (int i = 0; i < locationList.size(); ++i) {//获得一个历史积累评分
        //历史lastPoint与当前curPoint的比对
        LatLng lastPoint = new LatLng(locationList.get(i).location.getLatitude(),
                locationList.get(i).location.getLongitude());
        LatLng curPoint = new LatLng(location.getLatitude(), location.getLongitude());
        double distance = DistanceUtil.getDistance(lastPoint, curPoint);//距离计算
        curSpeed = distance / (System.currentTimeMillis() - locationList.get(i).time) / 1000;
        score += curSpeed * Utils.EARTH_WEIGHT[i];
    }
    if (score > 0.00000999 && score < 0.00005) { // 经验值,开发者可根据业务自行调整,也可以不使用这种算法
        //调整,取上一次与当前的平均位置
        location.setLongitude(
                (locationList.get(locationList.size() - 1).location.getLongitude() + location.getLongitude())
                        / 2);
        location.setLatitude(
                (locationList.get(locationList.size() - 1).location.getLatitude() + location.getLatitude())
                        / 2);
        locData.putInt("iscalculate", 1);
    } else {
        locData.putInt("iscalculate", 0);
    }

    二、添加图层标签

    //1.设定标签
    bitmap = BitmapDescriptorFactory.fromResource(R.drawbla....)
    //2.设置图层变化
    OverlayOption option=new MarkerOption().position(point).icon(bitmap)
    //3.添加并显示
    mBaiduMap.addOverlay(option)
    //4.更新状态
    mBaiduMap.setMapStatus(MapStatusFactory.newLocation(point))

    三、生命周期管理

    onDestroy:
        unrigestorListener(...)
        locationService.stop()
        mMapView.onDestroy()
    onResume:
        mMapView.onResume()
        reset Button deal with...
        mMapView.clear()
    onPause:
        mMapView.onPause()
  • 相关阅读:
    js模态框实现原理
    静态库、动态库------深入理解计算机系统
    链接器如何解析多重定义的全局符号(强弱符号)------深入理解计算机系统
    linux------深入理解linux内核
    libcurl坑
    《将博客搬至CSDN》
    openssl 编译
    vs2015+opencv3.3.1+ c++实现 静态背景下多运动目标提取,检测
    QT 相关书籍
    qml 知识积累
  • 原文地址:https://www.cnblogs.com/lzw265/p/12255783.html
Copyright © 2011-2022 走看看