Android谷歌地图 - 使折线更直/更顺畅

时间:2013-08-13 08:42:33

标签: android location android-maps polyline

我正在创建应用程序以通过GPS绘制我的行走路径。一切都很好,走路时路径正在绘制,但我有一个问题 - 有可能以某种方式使路径线更直线地编程?

例如。首先,走路后我看到我的路径是这样的(它不是折线,在示例中是多边形,但我想你会得到这个想法): https://www.dropbox.com/s/763mq0wja6x7lpy/11.png

但是在保存之后,应用程序使路径更直/更顺畅: https://www.dropbox.com/s/npwkz9coqve7m4g/22.png

怎么做?因为我什么都不知道。

我正在使用LocationListener绘制路径:

  

LocationManager locationManager =   (的LocationManager)this.getSystemService(Context.LOCATION_SERVICE);

    Criteria criteria = new Criteria();
  //criteria.setPowerRequirement(Criteria.POWER_LOW); 
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    criteria.setAltitudeRequired(false);
    criteria.setBearingRequired(false);
    criteria.setCostAllowed(true);
    criteria.setSpeedRequired(false);       
    String bestProvider = locationManager.getBestProvider(criteria, true);
    locationManager.requestLocationUpdates(bestProvider, 500, 3, this );

onLocationChanged listener:

  

@覆盖
  public void onLocationChanged(位置位置){

          if(lastLocationloc == null) 
                          lastLocationloc = location;     
          LatLng lastLatLng= locationToLatLng(lastLocationloc);
          LatLng thisLatLng= locationToLatLng(location);
          mMap.addPolyline
                       (new PolylineOptions().add(lastLatLng).add(thisLatLng).width(4).color(Color.RED));
          lastLocationloc = location;             
  }

2 个答案:

答案 0 :(得分:1)

LocationManager永远不会为您提供确切的位置。因此,虽然您可能不会以不平滑的方式行走,但即使您在标准中设置了非常高的准确度,您获得的GPS坐标也总是会跳跃。

因此,当您绘制路径时,您可以考虑使用Android's Path API

对于某些代码,请看这个答案:

Android How to draw a smooth line following your finger

答案 1 :(得分:0)