use of com.mapbox.services.commons.geojson.Feature in project androidApp by InspectorIncognito.
the class BusStopPlugin method addBusRoutePolyline.
@NonNull
private Polyline addBusRoutePolyline(ArrayList<LatLng> points, int colorId) {
Feature startPoint = Feature.fromGeometry(Point.fromCoordinates(Position.fromCoordinates(points.get(0).getLongitude(), points.get(0).getLatitude())));
Feature endPoint = Feature.fromGeometry(Point.fromCoordinates(Position.fromCoordinates(points.get(points.size() - 1).getLongitude(), points.get(points.size() - 1).getLatitude())));
busRouteStartFeature = FeatureCollection.fromFeatures(new Feature[] { startPoint });
busRouteEndFeature = FeatureCollection.fromFeatures(new Feature[] { endPoint });
refreshSourceWithFeatures(busRouteStartSource, busRouteStartFeature);
refreshSourceWithFeatures(busRouteEndSource, busRouteEndFeature);
return mapboxMap.addPolyline(new PolylineOptions().addAll(points).color(ContextCompat.getColor(getContext(), colorId)).width(4));
}
use of com.mapbox.services.commons.geojson.Feature in project androidApp by InspectorIncognito.
the class BusStopPlugin method updateBusStopSource.
private void updateBusStopSource(List<BusStop> busStops) {
List<Feature> markerCoordinates = new ArrayList<>();
boolean added = false;
for (BusStop busStop : busStops) {
if (selectedBusStop != null && selectedBusStop.getStringProperty(BusStopMarker.PROPERTY_ID).equals(busStop.getId())) {
markerCoordinates.add(selectedBusStop);
added = true;
} else {
markerCoordinates.add(new BusStopMarker(busStop));
}
}
if (selectedBusStop != null && !added)
markerCoordinates.add(selectedBusStop);
busStopFeatures = FeatureCollection.fromFeatures(markerCoordinates);
refreshBusStopSource();
}
use of com.mapbox.services.commons.geojson.Feature in project androidApp by InspectorIncognito.
the class BusStopPlugin method updateSelectedBusStopIcons.
private void updateSelectedBusStopIcons() {
ArrayList<IconBuilder> buildingList = new ArrayList<>();
buildingList.add(new BusStopIconsBuilder(FeatureCollection.fromFeatures(new Feature[] { selectedBusStop })).toBuilder());
final GenerateViewIconTask task = new GenerateViewIconTask(new GenerateViewIconTask.ImageLoaderListener() {
@Override
public void onImageGenResult(HashMap<String, View> viewMap, HashMap<String, Bitmap> bitmapHashMap) {
if (mapboxMap != null) {
mapboxMap.addImages(bitmapHashMap);
}
refreshBusStopSource();
}
}, viewMap, buildingList);
task.execute();
}
use of com.mapbox.services.commons.geojson.Feature in project androidApp by InspectorIncognito.
the class BusStopPlugin method deselectSelectedBusStop.
private void deselectSelectedBusStop(Feature newSelectedFeature) {
if (newSelectedFeature != null && selectedBusStop != null && !newSelectedFeature.getId().equals(selectedBusStop.getId())) {
Log.d(BusStopPlugin.class.getSimpleName(), "deselect previous selected bus stop");
return;
}
listener.onFocusCleared();
if (selectedBus != null) {
deselectSelectedBusFeature();
}
if (selectedBusStop != null) {
selectedBusStop.addBooleanProperty(BusStopMarker.PROPERTY_LOADING, false);
selectedBusStop.addBooleanProperty(BusStopMarker.PROPERTY_SELECTED, false);
mapboxMap.removeImage(selectedBusStop.getStringProperty(BusStopMarker.PROPERTY_ID) + "-max");
mapboxMap.removeImage(selectedBusStop.getStringProperty(BusStopMarker.PROPERTY_ID) + "-min");
}
for (Feature busFeature : busesFeatures.getFeatures()) {
mapboxMap.removeImage(busFeature.getStringProperty(BusMarker.PROPERTY_ID) + "-max");
mapboxMap.removeImage(busFeature.getStringProperty(BusMarker.PROPERTY_ID) + "-min");
mapboxMap.removeImage(busFeature.getStringProperty(BusMarker.PROPERTY_ID) + "-left");
mapboxMap.removeImage(busFeature.getStringProperty(BusMarker.PROPERTY_ID) + "-right");
}
busesFeatures = FeatureCollection.fromFeatures(new Feature[] {});
if (periodicRequestHandler != null) {
periodicRequestHandler.stopPeriodicRequest();
periodicRequestHandler = null;
}
Log.d(BusStopPlugin.class.getSimpleName(), "selectedBusStop unassign");
selectedBusStop = null;
refreshBusStopSource();
refreshBusSource();
}
use of com.mapbox.services.commons.geojson.Feature in project androidApp by InspectorIncognito.
the class BusStopIconsBuilder method setIconsAndViews.
public void setIconsAndViews(LayoutInflater inflater, HashMap<String, Bitmap> imagesMap, HashMap<String, View> viewMap) {
for (Feature feature : featureCollection.getFeatures()) {
String id = feature.getStringProperty(Marker.PROPERTY_ID);
BusStopMarker marker = (BusStopMarker) feature;
BusStop busStop = marker.getBusStop();
View view = inflater.inflate(R.layout.bus_stop_bubble, null);
TextView code = view.findViewById(R.id.bubble_bus_stop_code);
TextView name = view.findViewById(R.id.bubble_bus_stop_name);
code.setText(id);
name.setText(busStop.getName());
AppCompatImageView favIcon = view.findViewById(R.id.fav_icon);
final FavoriteHelper helper = new FavoriteHelper(view.getContext());
boolean isFavorite = helper.isFavorite(busStop.getId());
if (isFavorite) {
favIcon.setColorFilter(ContextCompat.getColor(view.getContext(), R.color.yellow_fav));
}
List<ServerSentBus> buses = Bus.filterDummyPlates(busStop.getIncomingBuses());
buses = ServerSentBus.orderBusesByDistance(buses);
if (!buses.isEmpty()) {
view.findViewById(R.id.bus_layout).setVisibility(View.VISIBLE);
view.findViewById(R.id.bus_empty_layout).setVisibility(View.GONE);
setupNearBusLayout(view, getNearestVisibleBus(buses, busStop));
} else {
view.findViewById(R.id.bus_layout).setVisibility(View.GONE);
view.findViewById(R.id.bus_empty_layout).setVisibility(View.VISIBLE);
}
setEventLayout(view, marker.getEvents());
Bitmap bitmap = GenerateViewIconTask.SymbolGenerator.generate(view);
imagesMap.put(id + "-max", bitmap);
viewMap.put("busStop-max", view);
View viewMin = inflater.inflate(R.layout.bus_stop_minimize_bubble, null);
TextView nameMin = viewMin.findViewById(R.id.bubble_bus_stop_code);
nameMin.setText(id);
((ImageView) viewMin.findViewById(R.id.maximize)).setImageDrawable(new GreenButtonUp(viewMin.getContext()));
imagesMap.put(id + "-min", GenerateViewIconTask.SymbolGenerator.generate(viewMin));
viewMap.put("busStop-min", viewMin);
}
}
Aggregations