我有问题。我的应用程序使用坐标绘制后续位置之间的路径:第一个位置到第二个位置,第二个位置到第三个位置,等等。该应用程序在绘制路径时没有问题,但是我的位置存在噪音并且线条无处不在。我知道Google地图上的蓝点正在使用平滑算法,不同的位置提供程序和其他调整。我可以获取此默认蓝点的坐标吗?没有算法就不是普通坐标。
public void onMapReady(GoogleMap map) {
mMap = map;
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {
mMap.setMyLocationEnabled(true);
lokalizacja();
} else {
ActivityCompat.requestPermissions(WorkoutActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, MY_LOCATION_REQUEST_CODE);
}
routeOpts = new PolylineOptions()
.color(Color.BLUE)
.width(5 /* TODO: respect density! */)
.geodesic(true);
route = mMap.addPolyline(routeOpts);
route.setVisible(drawTrack);
mMap.setOnMyLocationButtonClickListener(this);
mMap.setOnMyLocationClickListener(this); }
public void lokalizacja() { //Context context = getApplicationContext();
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
if (routeOpts != null) {
lat = (float) location.getLatitude();
lng = (float) location.getLongitude();
LatLng myLatLng = new LatLng(lat, lng);
List<LatLng> points = route.getPoints();
points.add(myLatLng);
route.setPoints(points);
}
}
@Override public void onStatusChanged(String provider, int status, Bundle extras) {
Log.d("tocos","StatusChanged");
}
@Override
public void onProviderEnabled(String provider) {
Log.d("tocos","Enabled");
}
@Override
public void onProviderDisabled(String provider) {
Log.d("tocos","Disabled");
}
};
答案 0 :(得分:1)
我认为您想要使用的是Google Play服务中的FusedLocationProvider
,而不是操作系统随附的内置LocationManager
。看看这个answer对其进行了详细说明的