private void addBank(BranchListModel brankBranchListModel) { int la = (int) (brankBranchListModel.getLatitude() * 1e6); int lo = (int) (brankBranchListModel.getLongitude() * 1e6); GeoPoint geoPoint = new GeoPoint(la, lo); BankOverlayItem locaItem = new BankOverlayItem(geoPoint, "CURRENTLOCATION", "CurrentLocation"); locaItem.setBrankBranchListModel(brankBranchListModel); bankOverlay.addOverlay(locaItem); }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.googlemaps); ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); MapView mapView = (MapView) findViewById(R.id.mapview); mapView.setBuiltInZoomControls(true); MapController mapController = mapView.getController(); GeoPoint point = new GeoPoint(42295938, -71297368); mapController.setCenter(point); mapController.setZoom(15); List<Overlay> mapOverlays = mapView.getOverlays(); Drawable drawable = this.getResources().getDrawable(R.drawable.maparrow); MapItemizedOverlay itemizedoverlay = new MapItemizedOverlay(drawable, this); OverlayItem overlayitem = new OverlayItem(point, "Wellesley Books!", "82 Central St.\nWellesley, MA 02482"); itemizedoverlay.addOverlay(overlayitem); mapOverlays.add(itemizedoverlay); }
public void addCurrentLocationOverlay() { // GeoPoint point = null; if (overlays.contains(mCurrentLocationOverlay)) { overlays.remove(mCurrentLocationOverlay); } if (mCurrentLocation == null) { mCurrentLocationPoint = mDefaultCurrentLocation; System.out.println("null"); } else { mCurrentLocationPoint = new GeoPoint( (int) (mCurrentLocation.getLatitude() * 1e6), (int) (mCurrentLocation.getLongitude() * 1e6)); System.out.println("add current"); } mCurrentOverlayItem = new OverlayItem(mCurrentLocationPoint, "CURRENTLOCATION", "CurrentLocation"); mCurrentLocationOverlay.clearOverlay(); mCurrentLocationOverlay.addOverlay(mCurrentOverlayItem); overlays.add(mCurrentLocationOverlay); mapView.postInvalidate(); }
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); Drawable drawable = this.getResources().getDrawable(R.drawable.map_pin_24); final MapItemizedOverlay itemizedoverlay = new MapItemizedOverlay(drawable); mapView = (MapView) findViewById(R.id.mapviewMain); mapView.setBuiltInZoomControls(true); mController = mapView.getController(); mapOverlays = mapView.getOverlays(); myLocationOverlay = new MyLocationOverlay(this, mapView); mapView.getOverlays().add(myLocationOverlay); visitedPoints.clear(); /* * not sure if final should be there but it's required by another method */ final ArrayList<ParcelableGeoPoint> arrayOfParcebleGeoPoints = getIntent().getParcelableArrayListExtra("geoPoints"); Bundle extras = getIntent().getExtras(); mainPoint = extras.getParcelable("mainPoint"); for (ParcelableGeoPoint p : arrayOfParcebleGeoPoints) { points.add(p.getGeoPoint()); notYetReachedPoints.add(p.getGeoPoint()); } int numOfPoints = points.size(); for (int i = 0; i < numOfPoints; i++) { GeoPoint point = points.get(i); OverlayItem overlayitem = new OverlayItem(point, null, null); itemizedoverlay.addOverlay(overlayitem); } ; mapOverlays.add(itemizedoverlay); mapView.postInvalidate(); final Chronometer cm = (Chronometer) findViewById(R.id.chronometer); cm.setBase(SystemClock.elapsedRealtime()); cm.start(); icon = this.getResources().getDrawable(R.drawable.map_pin_24_green); icon.setBounds( 0 - icon.getIntrinsicWidth() / 2, 0 - icon.getIntrinsicHeight(), icon.getIntrinsicWidth() / 2, 0); /*Button checkPoint = (Button) findViewById(R.id.checkpoint); checkPoint.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub } });*/ /* Button summary = (Button) findViewById(R.id.summary); summary.setOnClickListener(new OnClickListener() { public void onClick(View v) { SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor editor = settings.edit(); editor.putInt("time", time); editor.putInt("averageSpeed", averageSpeed); // TODO Auto-generated method stub Intent myIntent = new Intent(v.getContext(), SummaryActivity.class); myIntent.putExtra("time", cm.getBase()); myIntent.putExtra("geoPoints", arrayOfParcebleGeoPoints); myIntent.putExtra("visitedPoints", visitedPoints); myIntent.putExtra("mainPoint",mainPoint); v.getContext().startActivity(myIntent); finish(); } });*/ lManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); locationListener = new LocationListener() { public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } public void onLocationChanged(Location location) { // TODO Auto-generated method stub double lat = location.getLatitude(); double lon = location.getLongitude(); GeoPoint point = new GeoPoint((int) (lat * 1e6), (int) (lon * 1e6)); visitedPoints.add(new ParcelableGeoPoint(point)); if (prevPoint != null) { mapOverlays.add(new RouteOverlay(prevPoint, point, 0xFF0000)); } if (totalDistance == -1) { totalDistance = 0; } else { totalDistance = totalDistance + location.distanceTo(prevLocation); } prevLocation = location; prevPoint = point; mController.animateTo(point); /* * This for-loop checks at every GPS update if any flag is * within reach. */ for (int i = 0; i < notYetReachedPoints.size(); i++) { destLocation.reset(); destLocation.setLatitude((float) (notYetReachedPoints.get(i).getLatitudeE6() / 1E6)); destLocation.setLongitude( (float) (notYetReachedPoints.get(i).getLongitudeE6() / 1E6)); distance = location.distanceTo(destLocation); if (distanceToNearestPoint > distance) { distanceToNearestPoint = distance; } /* * user catches a flag if current position is within 50m of * a flag */ if (distance < 10) { /* * checkpoint reached */ Context context = getApplicationContext(); CharSequence text = "Checkpoint reached!"; int duration = Toast.LENGTH_SHORT; Toast toast = Toast.makeText(context, text, duration); toast.show(); /* * remove the reached point from the list */ for (int a = 0; a < itemizedoverlay.size(); a++) { if (notYetReachedPoints.get(i).equals(itemizedoverlay.getItem(a).getPoint())) itemizedoverlay.getItem(a).setMarker(icon); } notYetReachedPoints.remove(i); /* * change color of flag (code not complete) */ } } /* * not really tested yet */ TextView distance_to_point = (TextView) findViewById(R.id.distance_to_point); distance_to_point.setText("Distance to nearest point: " + distanceToNearestPoint + "m"); speed = location.getSpeed(); TextView speed_text = (TextView) findViewById(R.id.speed); speed_text.setText("Speed: " + speed + "m/s"); TextView totalDistance_text = (TextView) findViewById(R.id.total_distance); totalDistance_text.setText("Total distance: " + totalDistance); if (notYetReachedPoints.isEmpty()) { /* * This is part of a strange bug-fix the location listener * does not shut off when the "finish()" method is called */ lManager.removeUpdates(locationListener); lManager = null; Intent myIntent = new Intent(MainActivity.this, SummaryActivity.class); myIntent.putExtra("time", cm.getBase()); myIntent.putExtra("totalDistance", totalDistance); myIntent.putExtra("geoPoints", arrayOfParcebleGeoPoints); myIntent.putExtra("visitedPoints", visitedPoints); myIntent.putExtra("mainPoint", mainPoint); MainActivity.this.startActivity(myIntent); finish(); } } }; lManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this.locationListener); }