Page Menu
Home
GitPull.it
Search
Configure Global Search
Log In
Files
F13561604
D35.1783940665.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None
D35.1783940665.diff
View Options
diff --git a/src/it/reyboz/bustorino/ActivityMap.java b/src/it/reyboz/bustorino/ActivityMap.java
--- a/src/it/reyboz/bustorino/ActivityMap.java
+++ b/src/it/reyboz/bustorino/ActivityMap.java
@@ -18,8 +18,14 @@
import org.osmdroid.util.BoundingBox;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;
+import org.osmdroid.views.overlay.FolderOverlay;
import org.osmdroid.views.overlay.Marker;
+import org.osmdroid.views.overlay.Overlay;
import org.osmdroid.views.overlay.infowindow.InfoWindow;
+import org.osmdroid.views.overlay.mylocation.GpsMyLocationProvider;
+import org.osmdroid.views.overlay.mylocation.MyLocationNewOverlay;
+
+import java.util.List;
import it.reyboz.bustorino.backend.Stop;
import it.reyboz.bustorino.map.CustomInfoWindow;
@@ -27,8 +33,15 @@
public class ActivityMap extends AppCompatActivity {
+ private static final String TAG = "Busto-MapActivity";
+ private static final String MAP_CURRENT_ZOOM_KEY = "map-current-zoom";
+ private static final String MAP_CENTER_LAT_KEY = "map-center-lat";
+ private static final String MAP_CENTER_LON_KEY = "map-center-lon";
+
private static MapView map = null;
public Context ctx;
+ private MyLocationNewOverlay mLocationOverlay = null;
+ private FolderOverlay stopsFolderOverlay = null;
@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)
@Override public void onCreate(Bundle savedInstanceState) {
@@ -54,6 +67,9 @@
// add ability to zoom with 2 fingers
map.setMultiTouchControls(true);
+ //setup FolderOverlay
+ stopsFolderOverlay = new FolderOverlay();
+
// take the parameters if it's called from other Activities
Bundle b = getIntent().getExtras();
GeoPoint marker = null;
@@ -68,6 +84,8 @@
}
startMap(marker, name, ID);
+
+
// on drag and zoom reload the markers
map.addMapListener(new DelayedMapListener(new MapListener() {
@@ -103,6 +121,19 @@
map.setMinZoomLevel(15.5);
mapController.setCenter(startPoint);
+ // Location Overlay
+ // from OpenBikeSharing (THANK GOD)
+ GpsMyLocationProvider imlp = new GpsMyLocationProvider(this.getBaseContext());
+ imlp.setLocationUpdateMinDistance(200);
+ imlp.setLocationUpdateMinTime(30000);
+ this.mLocationOverlay = new MyLocationNewOverlay(imlp,map);
+ this.mLocationOverlay.enableMyLocation();
+ map.getOverlays().add(this.mLocationOverlay);
+
+ //add stops overlay
+ map.getOverlays().add(this.stopsFolderOverlay);
+
+
loadMarkers();
if (marker != null) {
// make a marker with the info window open for the searched marker
@@ -111,7 +142,7 @@
}
- public void makeMarker(GeoPoint geoPoint, String stopName, String ID, boolean isStartMarker) {
+ public Marker makeMarker(GeoPoint geoPoint, String stopName, String ID, boolean isStartMarker) {
// add a marker
Marker marker = new Marker(map);
@@ -152,8 +183,6 @@
// set its position
marker.setPosition(geoPoint);
marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
- // display the marker
- map.getOverlays().add(marker);
// add to it an icon
marker.setIcon(getResources().getDrawable(R.drawable.bus_marker));
// add to it a title
@@ -166,12 +195,18 @@
marker.showInfoWindow();
}
+ return marker;
}
public void loadMarkers() {
// get rid of the previous markers
- map.getOverlays().clear();
+ //map.getOverlays().clear();
+ //stopsFolderOverlay = new FolderOverlay();
+ List<Overlay> stopsOverlays = stopsFolderOverlay.getItems();
+ if (stopsOverlays != null){
+ stopsOverlays.clear();
+ }
// get the top, bottom, left and right screen's coordinate
BoundingBox bb = map.getBoundingBox();
@@ -189,7 +224,8 @@
// add new markers of those stops
for (Stop stop : stops) {
GeoPoint marker = new GeoPoint(stop.getLatitude(), stop.getLongitude());
- makeMarker(marker, stop.getStopDefaultName(), stop.ID, false);
+ Marker stopMarker = makeMarker(marker, stop.getStopDefaultName(), stop.ID, false);
+ stopsFolderOverlay.add(stopMarker);
}
}
@@ -201,6 +237,7 @@
//SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
//Configuration.getInstance().load(this, PreferenceManager.getDefaultSharedPreferences(this));
map.onResume(); //needed for compass, my location overlays, v6.0.0 and up
+ mLocationOverlay.enableMyLocation();
}
public void onPause(){
@@ -210,5 +247,7 @@
//SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
//Configuration.getInstance().save(this, prefs);
map.onPause(); //needed for compass, my location overlays, v6.0.0 and up
+ mLocationOverlay.disableMyLocation();
}
+
}
\ No newline at end of file
diff --git a/src/it/reyboz/bustorino/middleware/AppLocationManager.java b/src/it/reyboz/bustorino/middleware/AppLocationManager.java
--- a/src/it/reyboz/bustorino/middleware/AppLocationManager.java
+++ b/src/it/reyboz/bustorino/middleware/AppLocationManager.java
@@ -51,7 +51,7 @@
private AppLocationManager(Context con) {
- this.con = con;
+ this.con = con.getApplicationContext();
locMan = (LocationManager) con.getSystemService(Context.LOCATION_SERVICE);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Jul 13, 13:04 (5 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1999697
Default Alt Text
D35.1783940665.diff (5 KB)
Attached To
Mode
D35: Add user position to the map!
Attached
Detach File
Event Timeline