|
|
@ -36,6 +36,7 @@ public class TaskRabbitMapActivity extends MapActivity implements LocationListen
|
|
|
|
private MapView mapView;
|
|
|
|
private MapView mapView;
|
|
|
|
private MapController mapController;
|
|
|
|
private MapController mapController;
|
|
|
|
public Location currentLocation;
|
|
|
|
public Location currentLocation;
|
|
|
|
|
|
|
|
private LocationManager locationManager;
|
|
|
|
private EditText searchText;
|
|
|
|
private EditText searchText;
|
|
|
|
private TaskRabbitMapOverlayItem currentOverlayItem;
|
|
|
|
private TaskRabbitMapOverlayItem currentOverlayItem;
|
|
|
|
private String locationAddress;
|
|
|
|
private String locationAddress;
|
|
|
@ -53,30 +54,22 @@ public class TaskRabbitMapActivity extends MapActivity implements LocationListen
|
|
|
|
mapView.setBuiltInZoomControls(true);
|
|
|
|
mapView.setBuiltInZoomControls(true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
|
|
|
|
locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
|
|
|
|
Location lastKnownLocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
|
|
|
|
currentLocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
|
|
|
|
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<Overlay> mapOverlays = mapView.getOverlays();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Drawable drawable = this.getResources().getDrawable(android.R.drawable.star_big_on);
|
|
|
|
|
|
|
|
currentOverlayItem = new TaskRabbitMapOverlayItem(drawable, this);
|
|
|
|
|
|
|
|
GeoPoint point = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mapController = mapView.getController();
|
|
|
|
mapController = mapView.getController();
|
|
|
|
if(lastKnownLocation != null) {
|
|
|
|
if(currentLocation != null) {
|
|
|
|
|
|
|
|
|
|
|
|
point = locationToGeoPoint(lastKnownLocation);
|
|
|
|
updateLocationOverlay();
|
|
|
|
OverlayItem overlayitem = createOverlayItem(point);
|
|
|
|
|
|
|
|
currentOverlayItem.addOverlay(overlayitem);
|
|
|
|
|
|
|
|
mapOverlays.add(currentOverlayItem);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
locationAddress = getAddressFromLocation(lastKnownLocation);
|
|
|
|
locationAddress = getAddressFromLocation(currentLocation);
|
|
|
|
mapController.animateTo(point);
|
|
|
|
|
|
|
|
mapController.setZoom(17);
|
|
|
|
mapController.setZoom(17);
|
|
|
|
mapView.invalidate();
|
|
|
|
mapView.invalidate();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
searchText=(EditText)findViewById(R.id.search_text);
|
|
|
|
searchText=(EditText)findViewById(R.id.search_text);
|
|
|
@ -145,23 +138,12 @@ public class TaskRabbitMapActivity extends MapActivity implements LocationListen
|
|
|
|
|
|
|
|
|
|
|
|
if (addresses != null && addresses.size() > 0) {
|
|
|
|
if (addresses != null && addresses.size() > 0) {
|
|
|
|
updateAddress(addresses.get(0));
|
|
|
|
updateAddress(addresses.get(0));
|
|
|
|
GeoPoint q = new GeoPoint(
|
|
|
|
currentLocation = new Location("");
|
|
|
|
(int) (addresses.get(0).getLatitude() * 1E6),
|
|
|
|
currentLocation.setLatitude(addresses.get(0).getLatitude());
|
|
|
|
(int) (addresses.get(0).getLongitude() * 1E6));
|
|
|
|
currentLocation.setLongitude(addresses.get(0).getLongitude());
|
|
|
|
|
|
|
|
|
|
|
|
Drawable drawable = TaskRabbitMapActivity.this.getResources().getDrawable(
|
|
|
|
|
|
|
|
android.R.drawable.star_big_on);
|
|
|
|
|
|
|
|
currentOverlayItem = new TaskRabbitMapOverlayItem(drawable,
|
|
|
|
|
|
|
|
TaskRabbitMapActivity.this);
|
|
|
|
|
|
|
|
mapController.animateTo(q);
|
|
|
|
|
|
|
|
mapController.setZoom(12);
|
|
|
|
mapController.setZoom(12);
|
|
|
|
|
|
|
|
updateLocationOverlay();
|
|
|
|
|
|
|
|
|
|
|
|
OverlayItem overlayitem = createOverlayItem(q);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
currentOverlayItem.addOverlay(overlayitem);
|
|
|
|
|
|
|
|
List<Overlay> mapOverlays = mapView.getOverlays();
|
|
|
|
|
|
|
|
mapOverlays.clear();
|
|
|
|
|
|
|
|
mapOverlays.add(currentOverlayItem);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Message successMessage = new Message();
|
|
|
|
Message successMessage = new Message();
|
|
|
|
successMessage.what = LOCATION_SEARCH_SUCCESS;
|
|
|
|
successMessage.what = LOCATION_SEARCH_SUCCESS;
|
|
|
@ -223,12 +205,13 @@ public class TaskRabbitMapActivity extends MapActivity implements LocationListen
|
|
|
|
if (currentLocation == null) { return; };
|
|
|
|
if (currentLocation == null) { return; };
|
|
|
|
List<Overlay> mapOverlays = mapView.getOverlays();
|
|
|
|
List<Overlay> mapOverlays = mapView.getOverlays();
|
|
|
|
Drawable drawable = this.getResources().getDrawable(android.R.drawable.star_big_on);
|
|
|
|
Drawable drawable = this.getResources().getDrawable(android.R.drawable.star_big_on);
|
|
|
|
TaskRabbitMapOverlayItem myItemizedOverlay = new TaskRabbitMapOverlayItem(drawable);
|
|
|
|
currentOverlayItem = new TaskRabbitMapOverlayItem(drawable, this);
|
|
|
|
GeoPoint point = new GeoPoint((int)(currentLocation.getLatitude() * 1E6), (int)(currentLocation.getLongitude() * 1E6));
|
|
|
|
GeoPoint point = locationToGeoPoint(currentLocation);
|
|
|
|
|
|
|
|
|
|
|
|
OverlayItem overlayitem = createOverlayItem(point);
|
|
|
|
OverlayItem overlayitem = createOverlayItem(point);
|
|
|
|
myItemizedOverlay.addOverlay(overlayitem);
|
|
|
|
currentOverlayItem.addOverlay(overlayitem);
|
|
|
|
mapOverlays.add(myItemizedOverlay);
|
|
|
|
mapOverlays.clear();
|
|
|
|
|
|
|
|
mapOverlays.add(currentOverlayItem);
|
|
|
|
|
|
|
|
mapController.animateTo(point);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void didSelectItem (final OverlayItem selectedItem) {
|
|
|
|
public void didSelectItem (final OverlayItem selectedItem) {
|
|
|
@ -270,12 +253,9 @@ public class TaskRabbitMapActivity extends MapActivity implements LocationListen
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onLocationChanged(Location location) {
|
|
|
|
public void onLocationChanged(Location location) {
|
|
|
|
if (location != null) {
|
|
|
|
if (location != null) {
|
|
|
|
double lat = location.getLatitude();
|
|
|
|
locationManager.removeUpdates(this);
|
|
|
|
double lng = location.getLongitude();
|
|
|
|
|
|
|
|
this.currentLocation = location;
|
|
|
|
this.currentLocation = location;
|
|
|
|
GeoPoint p = new GeoPoint((int) lat * 1000000, (int) lng * 1000000);
|
|
|
|
|
|
|
|
updateLocationOverlay();
|
|
|
|
updateLocationOverlay();
|
|
|
|
mapController.animateTo(p);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|