Build an Android GPS Tracking App

Recently, I started developing Android as a hobby and was looking for an application that could find and track users' positions using Google Maps.

After the application has a GPS lock, the application can track their movements by plotting a route using an overlay class.

I saw similar apps like Mytracks that are open source, but they are too complicated for me right now.

Ideally, I would like to create an application that looks like

D8aMp.jpg

He has my code below without import.

What I'm trying to do is create an array of geotomes. Each time you change the location, new geo-information is created. Then I try to use a for loop to iterate through each geo-information and find the path between them.

public class Tracking extends MapActivity implements LocationListener { LocationManager locman; LocationListener loclis; Location Location; private MapView map; List<GeoPoint> geoPointsArray = new ArrayList<GeoPoint>(); private MapController controller; String provider = LocationManager.GPS_PROVIDER; double lat; double lon; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.map); initMapView(); initMyLocation(); locman = (LocationManager) getSystemService(Context.LOCATION_SERVICE); // locman.requestLocationUpdates(provider,60000, 100,loclis); // Location = locman.getLastKnownLocation(provider); } /** Find and initialize the map view. */ private void initMapView() { map = (MapView) findViewById(R.id.map); controller = map.getController(); map.setSatellite(false); map.setBuiltInZoomControls(true); } /** Find Current Position on Map. */ private void initMyLocation() { final MyLocationOverlay overlay = new MyLocationOverlay(this, map); overlay.enableMyLocation(); overlay.enableCompass(); // does not work in emulator overlay.runOnFirstFix(new Runnable() { public void run() { // Zoom in to current location controller.setZoom(24); controller.animateTo(overlay.getMyLocation()); } }); map.getOverlays().add(overlay); } @Override public void onLocationChanged(Location location) { if (Location != null) { lat = Location.getLatitude(); lon = Location.getLongitude(); GeoPoint New_geopoint = new GeoPoint((int) (lat * 1e6), (int) (lon * 1e6)); controller.animateTo(New_geopoint); } } class MyOverlay extends Overlay { public MyOverlay() { } public void draw(Canvas canvas, MapView mapv, boolean shadow) { super.draw(canvas, mapv, shadow); Projection projection = map.getProjection(); Path p = new Path(); for (int i = 0; i < geoPointsArray.size(); i++) { if (i == geoPointsArray.size() - 1) { break; } Point from = new Point(); Point to = new Point(); projection.toPixels(geoPointsArray.get(i), from); projection.toPixels(geoPointsArray.get(i + 1), to); p.moveTo(from.x, from.y); p.lineTo(to.x, to.y); } Paint mPaint = new Paint(); mPaint.setStyle(Style.STROKE); mPaint.setColor(0xFFFF0000); mPaint.setAntiAlias(true); canvas.drawPath(p, mPaint); super.draw(canvas, map, shadow); } } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; } } 

The application works fine without errors, but there is no way, the point of the point simply moves as it moves.

Any help would be greatly appreciated Thank you.

+46
android dictionary gps tracking
Feb 23 2018-11-23T00:
source share
1 answer

The source code for the open-gpstracker Android mobile app you rate is available here .

You can verify the code using the SVN client application or through Git:

Debugging the source code will certainly help you.

+22
Feb 23 '11 at 19:57
source share
— -



All Articles