Note that there are some explanatory texts on larger screens.

plurals
  1. POandroid gps position accuracy circle
    primarykey
    data
    text
    <p>I have a simple activity that gives the GPS position of the user. what i want to do is to draw a circle around the gps position. The circle gives an idea about the accuracy of GPS positioning. For example, if the accuracy is 6 meters, then the radius of the circle will be covering 6 meters . following is the code.</p> <pre><code>import java.util.List; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Point; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapActivity; import com.google.android.maps.MapController; import com.google.android.maps.MapView; import com.google.android.maps.Overlay; public class ShowMap extends MapActivity { private MapController mapController; private MapView mapView; private LocationManager locationManager; private GeoUpdateHandler geoUpdateHandler; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gps); mapView = (MapView) findViewById(R.id.mapview); mapView.setBuiltInZoomControls(true); mapView.setSatellite(true); mapController = mapView.getController(); mapController.setZoom(14); // Zoom 1 is world view geoUpdateHandler = new GeoUpdateHandler(); locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { createGpsDisabledAlert(); } else { locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,geoUpdateHandler); } } private void createGpsDisabledAlert() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder .setMessage( "Your GPS is disabled! Would you like to enable it?") .setCancelable(false).setPositiveButton("Enable GPS", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { showGpsOptions(); } }); builder.setNegativeButton("Do nothing", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = builder.create(); alert.show(); } private void showGpsOptions() { Intent gpsOptionsIntent = new Intent( android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(gpsOptionsIntent); } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; } public class GeoUpdateHandler implements LocationListener { @Override public void onLocationChanged(Location location) { int lat = (int) (location.getLatitude() * 1E6); int lng = (int) (location.getLongitude() * 1E6); GeoPoint point = new GeoPoint(lat, lng); mapController.animateTo(point); // mapController.setCenter(point); MapOverlay mapOverlay = new MapOverlay(); mapOverlay.setPointToDraw(point); List&lt;Overlay&gt; listOfOverlays = mapView.getOverlays(); listOfOverlays.clear(); listOfOverlays.add(mapOverlay); } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } } class MapOverlay extends Overlay { private GeoPoint pointToDraw; public void setPointToDraw(GeoPoint point) { pointToDraw = point; } public GeoPoint getPointToDraw() { return pointToDraw; } @Override public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) { super.draw(canvas, mapView, shadow); // convert point to pixels Point screenPts = new Point(); mapView.getProjection().toPixels(pointToDraw, screenPts); // add marker Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pen); canvas.drawBitmap(bmp, screenPts.x, screenPts.y - 128, null); return true; } } @Override public void onPause() { super.onPause(); locationManager.removeUpdates(geoUpdateHandler); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload