我正在创建一个使用GPS和Google地图的应用程序。我想在位置更改(onLocationChanged)时在位置之间画一条线。它可以工作,但是地图(谷歌地图)上的蓝点并不总是与我使用location.getLattitude和.getLongtitude发现的坐标相同(线在最后位置和新位置之间画线)。新位置/ =蓝点。为什么它并不总是相同的位置?我想在最后一个蓝点位置和新的蓝点位置之间画线。我有许可等 (位置从下到上):https://tinypic.pl/hu8p4zyhhz7f
onMapReady(GoogleMap地图)上的public void {
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");
}
};