0
GPS
공급자의 현재 위치를 기반으로 MapView
에 경로를 표시하는 프로젝트를 진행 중입니다. 두 점 사이의 경로를 그릴 수 있지만 위치가 새 점으로 바뀌면 그리기 경로가 지워집니다.GPS 공급자를 사용하여지도에서 장치의 현재 위치를 사용하여 경로를 그립니다.
기본적으로 내 위치 수신기는 현재 GeoPoint
을 저장하고 새로운 GeoPoint
위치를 설정 한 다음이 두 점을 기반으로 경로를 그리기 위해 오버레이를 시작합니다. 옵션을 사용하면 좌표를 데이터베이스에 저장 한 다음 당길 수 있습니다 거기에서 정보가 경로를 그립니다. 당신이 말했듯이, 당신이 어딘가에 저장이 좌표가 필요
private class MyLocationListener implements LocationListener {
public void onLocationChanged(Location location) {
Toast.makeText(getBaseContext(), "Tracking device..",
Toast.LENGTH_SHORT).show();
gp2 = new GeoPoint(
gp1.getLatitudeE6(),
gp1.getLongitudeE6());
gp1 = new GeoPoint(
(int) (location.getLatitude() * 1000000),
(int) (location.getLongitude() * 1000000));
myOverlay = new MapOverlay();
mapOverlays_route.add(myOverlay);
myMapView.invalidate();
}
}
class MapOverlay extends com.google.android.maps.Overlay{
public MapOverlay(){
}
public void draw(Canvas canvas, MapView mapv, boolean shadow){
super.draw(canvas, mapv, shadow);
//Configuring the paint brush
Paint mPaint = new Paint();
mPaint.setDither(true);
mPaint.setColor(Color.RED);
mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(4);
Point p1 = new Point();
Point p2 = new Point();
Path path1 = new Path();
Path path2 = new Path();
projection.toPixels(gp1, p1);
projection.toPixels(gp2, p2);
path1.moveTo(p2.x, p2.y);//current location
path1.lineTo(p1.x,p1.y);//new location
canvas.drawPath(path1, mPaint);//drawing the path
}
}
데이터베이스에서 정보를 저장하고 가져 오는 것이 가장 효율적인 방법입니까? –
임시 경로로는 목록에 저장합니다. 나중에 값을 저장하거나 여러 경로가 그려 지길 원하면 sqlite 데이터베이스로 이동하십시오. –