Note that there are some explanatory texts on larger screens.

plurals
  1. PODraw Pins/MapOverlays on Google Maps with latitude and longitude from an Object Class
    primarykey
    data
    text
    <p>I have this <code>MapActivity</code> class below showing a map and putting a pin of the user's current location. In the other hand I have an Object class VideoLocation which has latitude and longitude of some places which are extracted from a JSON file from the server. I also wanna have the locations are drawn with pins on the map.</p> <p>How am I able to do that? What do I need to add on my Class below?</p> <p>FYI this is how I call the object's latitude and longitude on my ListActivity:</p> <pre><code>VideoLocation vidLocation = videoLocations[position]; double lat2 = vidLocation.latitude; double lng2 = vidLocation.longitude; </code></pre> <p>This the class:</p> <pre><code>public class MyMapActivity extends MapActivity implements OnClickListener { public static final String TAG = "GoogleMapsActivity"; private MapView mapView; private LocationManager locationManager; Geocoder geocoder; Location location; LocationListener locationListener; CountDownTimer locationtimer; MapController mapController; MapOverlay mapOverlay = new MapOverlay(); private VideoLocation[] videoLocations = null; @Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.my_map_activity); initComponents(); JsonDB dbhelper = new JsonDB(MyMapActivity.this); SQLiteDatabase db = dbhelper.getWritableDatabase(); db.beginTransaction(); videoLocations = dbhelper.getVideoLocations(db); db.setTransactionSuccessful();//end transaction db.endTransaction(); db.close(); final ImageButton refresh = (ImageButton) findViewById(R.id.btn_nav_impressum); refresh.setOnClickListener(this); final ImageButton search =(ImageButton) findViewById(R.id.btn_nav_locater); search.setOnClickListener(this); locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); if (locationManager == null) { Toast.makeText(MyMapActivity.this, "Location Manager Not Available", Toast.LENGTH_SHORT) .show(); return; } location = locationManager .getLastKnownLocation(LocationManager.GPS_PROVIDER); if (location == null) location = locationManager .getLastKnownLocation(LocationManager.NETWORK_PROVIDER); if (location != null) { animateMap(location); List&lt;Overlay&gt; listOfOverlays = mapView.getOverlays(); listOfOverlays.clear(); listOfOverlays.add(mapOverlay); } locationListener = new LocationListener() { @Override public void onStatusChanged(String arg0, int arg1, Bundle arg2) { } @Override public void onProviderEnabled(String arg0) { } @Override public void onProviderDisabled(String arg0) { } @Override public void onLocationChanged(Location l) { location = l; locationManager.removeUpdates(this); if (l.getLatitude() == 0 || l.getLongitude() == 0) { } else { double lat = l.getLatitude(); double lng = l.getLongitude(); showAddress(lat,lng); } } }; if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 1000, 10f, locationListener); locationManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, 1000, 10f, locationListener); locationtimer = new CountDownTimer(30000, 5000) { @Override public void onTick(long millisUntilFinished) { if (location != null) locationtimer.cancel(); } @Override public void onFinish() { if (location == null) { } } }; locationtimer.start(); } public void animateMap(Location location){ double lat = location.getLatitude(); double lng = location.getLongitude(); GeoPoint point = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6)); GeoPoint point2 = new GeoPoint((int) (lat2 * 1E6), (int) (lng2 * 1E6)); mapController.animateTo(point, new Message()); mapOverlay.setPointToDraw(point); } public MapView getMapView() { return this.mapView; } private void initComponents() { mapView = (MapView) findViewById(R.id.mapView); mapView.setBuiltInZoomControls(true); mapController = mapView.getController(); mapController.setZoom(16); } @Override protected boolean isRouteDisplayed() { return false; } 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); Point screenPts = new Point(); mapView.getProjection().toPixels(pointToDraw, screenPts); Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pin_normal); canvas.drawBitmap(bmp, screenPts.x, screenPts.y - 24, null); return true; } </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.
 

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