use of org.osmdroid.views.overlay.Marker in project collect by opendatakit.
the class GeoPointOsmMapActivity method onCreate.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
if (savedInstanceState != null) {
locationCount = savedInstanceState.getInt(LOCATION_COUNT);
}
try {
setContentView(R.layout.geopoint_osm_layout);
} catch (NoClassDefFoundError e) {
ToastUtils.showShortToast(R.string.google_play_services_error_occured);
finish();
return;
}
map = findViewById(R.id.omap);
if (helper == null) {
// For testing:
helper = new MapHelper(this, map, this);
map.setMultiTouchControls(true);
map.setBuiltInZoomControls(true);
map.setTilesScaledToDpi(true);
}
marker = new Marker(map);
marker.setIcon(ContextCompat.getDrawable(getApplicationContext(), R.drawable.ic_place_black_36dp));
myLocationOverlay = new MyLocationNewOverlay(map);
handler.postDelayed(new Runnable() {
public void run() {
GeoPoint point = new GeoPoint(34.08145, -39.85007);
map.getController().setZoom(4);
map.getController().setCenter(point);
}
}, 100);
locationStatus = findViewById(R.id.location_status);
TextView locationInfo = findViewById(R.id.location_info);
locationClient = LocationClients.clientForContext(this);
locationClient.setListener(this);
ImageButton saveLocationButton = findViewById(R.id.accept_location);
saveLocationButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Collect.getInstance().getActivityLogger().logInstanceAction(this, "acceptLocation", "OK");
returnLocation();
}
});
reloadLocationButton = findViewById(R.id.reload_location);
reloadLocationButton.setEnabled(false);
reloadLocationButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
map.getOverlays().add(marker);
setClear = false;
latLng = new GeoPoint(location.getLatitude(), location.getLongitude());
marker.setPosition(latLng);
captureLocation = true;
isDragged = false;
zoomToPoint();
}
});
// Focuses on marked location
showLocationButton = findViewById(R.id.show_location);
showLocationButton.setVisibility(View.VISIBLE);
showLocationButton.setEnabled(false);
showLocationButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Collect.getInstance().getActivityLogger().logInstanceAction(this, "showLocation", "onClick");
showZoomDialog();
}
});
// not clickable until we have a marker set....
showLocationButton.setClickable(false);
// Menu Layer Toggle
ImageButton layersButton = findViewById(R.id.layer_menu);
layersButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
helper.showLayersDialog(GeoPointOsmMapActivity.this);
}
});
zoomDialogView = getLayoutInflater().inflate(R.layout.geopoint_zoom_dialog, null);
zoomLocationButton = zoomDialogView.findViewById(R.id.zoom_location);
zoomLocationButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
zoomToLocation();
map.invalidate();
zoomDialog.dismiss();
}
});
zoomPointButton = zoomDialogView.findViewById(R.id.zoom_point);
zoomPointButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
zoomToPoint();
map.invalidate();
zoomDialog.dismiss();
}
});
ImageButton clearPointButton = findViewById(R.id.clear);
clearPointButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
map.getOverlays().remove(marker);
marker.remove(map);
if (location != null) {
reloadLocationButton.setEnabled(true);
// locationStatus.setVisibility(View.VISIBLE);
}
locationStatus.setVisibility(View.VISIBLE);
map.getOverlays().remove(marker);
marker.remove(map);
setClear = true;
isDragged = false;
captureLocation = false;
draggable = intentDraggable;
locationFromIntent = false;
overlayMyLocationLayers();
map.invalidate();
}
});
Intent intent = getIntent();
if (intent != null && intent.getExtras() != null) {
if (intent.hasExtra(GeoPointWidget.DRAGGABLE_ONLY)) {
draggable = intent.getBooleanExtra(GeoPointWidget.DRAGGABLE_ONLY, false);
intentDraggable = draggable;
if (!intentDraggable) {
// Not Draggable, set text for Map else leave as placement-map text
locationInfo.setText(getString(R.string.geopoint_no_draggable_instruction));
}
}
if (intent.hasExtra(GeoPointWidget.READ_ONLY)) {
readOnly = intent.getBooleanExtra(GeoPointWidget.READ_ONLY, false);
if (readOnly) {
captureLocation = true;
clearPointButton.setEnabled(false);
}
}
if (intent.hasExtra(GeoPointWidget.LOCATION)) {
double[] location = intent.getDoubleArrayExtra(GeoPointWidget.LOCATION);
latLng = new GeoPoint(location[0], location[1]);
reloadLocationButton.setEnabled(false);
captureLocation = true;
isDragged = true;
// If data loaded, must clear first
draggable = false;
locationFromIntent = true;
}
}
if (latLng != null) {
marker.setPosition(latLng);
map.getOverlays().add(marker);
map.invalidate();
captureLocation = true;
foundFirstLocation = true;
zoomToPoint();
}
}
use of org.osmdroid.views.overlay.Marker in project collect by opendatakit.
the class GeoPointOsmMapActivity method longPressHelper.
@Override
public boolean longPressHelper(GeoPoint geoPoint) {
if (marker == null) {
marker = new Marker(map);
}
showLocationButton.setEnabled(true);
map.invalidate();
marker.setPosition(geoPoint);
marker.setIcon(ContextCompat.getDrawable(getApplicationContext(), R.drawable.ic_place_black_36dp));
marker.setDraggable(true);
latLng = geoPoint;
isDragged = true;
setClear = false;
captureLocation = true;
map.getOverlays().add(marker);
return false;
}
use of org.osmdroid.views.overlay.Marker in project collect by opendatakit.
the class GeoShapeOsmMapActivity method overlayIntentPolygon.
private void overlayIntentPolygon(String str) {
clearButton.setEnabled(true);
clearButtonTest = true;
String s = str.replace("; ", ";");
String[] sa = s.split(";");
for (int i = 0; i < (sa.length - 1); i++) {
String[] sp = sa[i].split(" ");
double[] gp = new double[4];
String lat = sp[0].replace(" ", "");
String lng = sp[1].replace(" ", "");
gp[0] = Double.parseDouble(lat);
gp[1] = Double.parseDouble(lng);
Marker marker = new Marker(map);
marker.setPosition(new GeoPoint(gp[0], gp[1]));
marker.setDraggable(true);
marker.setIcon(ContextCompat.getDrawable(getApplicationContext(), R.drawable.ic_place_black_36dp));
marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
marker.setOnMarkerClickListener(nullMarkerListener);
mapMarkers.add(marker);
// pathOverlay.addPoint(marker.getPosition());
marker.setDraggable(true);
marker.setOnMarkerDragListener(dragListener);
map.getOverlays().add(marker);
}
update_polygon();
map.getOverlays().remove(overlayEvents);
}
use of org.osmdroid.views.overlay.Marker in project collect by opendatakit.
the class GeoTraceOsmMapActivity method addLocationMarker.
private void addLocationMarker() {
if (myLocationOverlay.getMyLocation() != null) {
Marker marker = new Marker(mapView);
marker.setPosition(myLocationOverlay.getMyLocation());
Float lastKnownAccuracy = myLocationOverlay.getMyLocationProvider().getLastKnownLocation().getAccuracy();
myLocationOverlay.getMyLocationProvider().getLastKnownLocation().getAccuracy();
marker.setIcon(ContextCompat.getDrawable(getApplicationContext(), R.drawable.ic_place_black_36dp));
marker.setSubDescription(Float.toString(lastKnownAccuracy));
marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
marker.setDraggable(true);
marker.setOnMarkerDragListener(dragListener);
mapMarkers.add(marker);
marker.setOnMarkerClickListener(nullMarkerListener);
mapView.getOverlays().add(marker);
List<GeoPoint> points = polyline.getPoints();
points.add(marker.getPosition());
polyline.setPoints(points);
mapView.invalidate();
}
}
use of org.osmdroid.views.overlay.Marker in project OpenBikeSharing by bparmentier.
the class MapActivity method createStationMarker.
private Marker createStationMarker(Station station) {
GeoPoint stationLocation = new GeoPoint((int) (station.getLatitude() * 1000000), (int) (station.getLongitude() * 1000000));
Marker marker = new Marker(map);
marker.setRelatedObject(station);
marker.setInfoWindow(stationMarkerInfoWindow);
marker.setPosition(stationLocation);
marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_CENTER);
marker.setTitle(station.getName());
// free bikes
marker.setSnippet(String.valueOf(station.getFreeBikes()));
if (station.getEmptySlots() != -1) {
// empty slots
marker.setSubDescription(String.valueOf(station.getEmptySlots()));
}
/* Marker icon */
int emptySlots = station.getEmptySlots();
int freeBikes = station.getFreeBikes();
if ((emptySlots == 0 && freeBikes == 0) || station.getStatus() == StationStatus.CLOSED) {
marker.setIcon(getResources().getDrawable(R.drawable.ic_station_marker_unavailable));
} else {
double ratio = (double) freeBikes / (double) (freeBikes + emptySlots);
if (freeBikes == 0) {
marker.setIcon(getResources().getDrawable(R.drawable.ic_station_marker0));
} else if (freeBikes >= 1 && ratio <= 0.3) {
marker.setIcon(getResources().getDrawable(R.drawable.ic_station_marker25));
} else if (ratio > 0.3 && ratio < 0.7) {
marker.setIcon(getResources().getDrawable(R.drawable.ic_station_marker50));
} else if (ratio >= 0.7 && emptySlots >= 1) {
marker.setIcon(getResources().getDrawable(R.drawable.ic_station_marker75));
} else if (emptySlots == 0 || emptySlots == -1) {
marker.setIcon(getResources().getDrawable(R.drawable.ic_station_marker100));
}
}
return marker;
}
Aggregations