private void sortResult(StopsForRouteBean result) { Collections.sort(result.getStops(), new StopBeanIdComparator()); Collections.sort(result.getStopGroupings(), new Comparator<StopGroupingBean>() { public int compare(StopGroupingBean o1, StopGroupingBean o2) { return o1.getType().compareTo(o2.getType()); } }); for (StopGroupingBean grouping : result.getStopGroupings()) { Collections.sort(grouping.getStopGroups(), new Comparator<StopGroupBean>() { public int compare(StopGroupBean o1, StopGroupBean o2) { return getName(o1).compareTo(getName(o2)); } private String getName(StopGroupBean bean) { StringBuilder b = new StringBuilder(); for (String name : bean.getName().getNames()) b.append(name); return b.toString(); } }); } }
public StopsForRouteV2Bean getStopsForRoute(StopsForRouteBean stopsForRoute, boolean includePolylines) { StopsForRouteV2Bean bean = new StopsForRouteV2Bean(); RouteBean route = stopsForRoute.getRoute(); if (route != null) { addToReferences(route); bean.setRouteId(route.getId()); } List<String> stopIds = new ArrayList<String>(); for (StopBean stop : stopsForRoute.getStops()) { stopIds.add(stop.getId()); addToReferences(stop); } bean.setStopIds(stopIds); bean.setStopGroupings(stopsForRoute.getStopGroupings()); if (!includePolylines) { for (StopGroupingBean grouping : stopsForRoute.getStopGroupings()) { for (StopGroupBean group : grouping.getStopGroups()) group.setPolylines(null); } } if (includePolylines) bean.setPolylines(stopsForRoute.getPolylines()); return bean; }
private Map<String, StopBean> getStopsById(StopsForRouteBean stopsForRoute) { Map<String, StopBean> stopsById = new HashMap<String, StopBean>(); for (StopBean stop : stopsForRoute.getStops()) stopsById.put(stop.getId(), stop); return stopsById; }
private StopGroupingBean getGroupingByType(StopsForRouteBean stopsForRoute, String type) { List<StopGroupingBean> groupings = stopsForRoute.getStopGroupings(); for (StopGroupingBean grouping : groupings) { if (grouping.getType().equals(type)) return grouping; } return null; }
private StopsForRouteBean getStopsForRouteCollectionAndNarrative( RouteCollectionEntry routeCollection, RouteCollectionNarrative narrative) { StopsForRouteBean result = new StopsForRouteBean(); result.setRoute(getRouteBeanForRouteCollection(routeCollectionId, narrative)); result.setStops(getStopBeansForRoute(routeCollectionId)); result.setPolylines(getEncodedPolylinesForRoute(routeCollection)); directionGrouping.setStopGroups(directionGroups); directionGrouping.setOrdered(true); result.addGrouping(directionGrouping);
public StopsForRouteV2Bean getStopsForRoute(StopsForRouteBean stopsForRoute, boolean includePolylines) { StopsForRouteV2Bean bean = new StopsForRouteV2Bean(); RouteBean route = stopsForRoute.getRoute(); if (route != null) { addToReferences(route); bean.setRouteId(route.getId()); } List<String> stopIds = new ArrayList<String>(); for (StopBean stop : stopsForRoute.getStops()) { stopIds.add(stop.getId()); addToReferences(stop); } bean.setStopIds(stopIds); bean.setStopGroupings(stopsForRoute.getStopGroupings()); if (!includePolylines) { for (StopGroupingBean grouping : stopsForRoute.getStopGroupings()) { for (StopGroupBean group : grouping.getStopGroups()) group.setPolylines(null); } } if (includePolylines) bean.setPolylines(stopsForRoute.getPolylines()); return bean; }
private Map<String, StopBean> getStopsById(StopsForRouteBean stopsForRoute) { Map<String, StopBean> stopsById = new HashMap<String, StopBean>(); for (StopBean stop : stopsForRoute.getStops()) stopsById.put(stop.getId(), stop); return stopsById; }
private StopGroupingBean getGroupingByType(StopsForRouteBean stopsForRoute, String type) { List<StopGroupingBean> groupings = stopsForRoute.getStopGroupings(); for (StopGroupingBean grouping : groupings) { if (grouping.getType().equals(type)) return grouping; } return null; }
private StopsForRouteBean go(RouteCollection routeCollection) { StopsForRouteBean result = new StopsForRouteBean(); result.setStops(getStopBeansForRoute(routeCollectionId)); result.setPolylines(getEncodedPolylinesForRoute(routeCollection)); directionGrouping.setStopGroups(directionGroups); directionGrouping.setOrdered(true); result.addGrouping(directionGrouping);
private void sortResult(StopsForRouteBean result) { Collections.sort(result.getStops(), new StopBeanIdComparator()); Collections.sort(result.getStopGroupings(), new Comparator<StopGroupingBean>() { public int compare(StopGroupingBean o1, StopGroupingBean o2) { return o1.getType().compareTo(o2.getType()); } }); for (StopGroupingBean grouping : result.getStopGroupings()) { Collections.sort(grouping.getStopGroups(), new Comparator<StopGroupBean>() { public int compare(StopGroupBean o1, StopGroupBean o2) { return getName(o1).compareTo(getName(o2)); } private String getName(StopGroupBean bean) { StringBuilder b = new StringBuilder(); for (String name : bean.getName().getNames()) b.append(name); return b.toString(); } }); } }
private void groupByDirection(StopSelectionTreeBean tree, StopsForRouteBean stopsForRoute, StopGroupingBean byDirection, Map<String, StopBean> stopsById) { List<StopGroupBean> groups = byDirection.getStopGroups(); if (groups.isEmpty()) { groupByStop(tree, stopsForRoute.getStops()); return; } for (StopGroupBean group : groups) { StopSelectionTreeBean subTree = tree.getSubTree(group.getName()); List<StopBean> stops = new ArrayList<StopBean>(); for (String stopId : group.getStopIds()) stops.add(stopsById.get(stopId)); groupByStop(subTree, stops); } }
.getStopGroupings()) { for (StopGroupBean stopGroup : stopGrouping.getStopGroups()) {
private Map<String, List<StopBean>> createDirectionToStopBeansMap(String routeId) { Map<String, List<StopBean>> directionIdToStopBeans = new HashMap<String, List<StopBean>>(); StopsForRouteBean stopsForRoute = transitService.getStopsForRoute(routeId); List<StopBean> stopBeansList = stopsForRoute.getStops(); List<StopGroupingBean> stopGroupings = stopsForRoute.getStopGroupings(); for (StopGroupingBean stopGroupingBean : stopGroupings) { List<StopGroupBean> stopGroups = stopGroupingBean.getStopGroups(); for (StopGroupBean stopGroupBean : stopGroups) { NameBean name = stopGroupBean.getName(); String type = name.getType(); if (!type.equals("destination")) continue; List<StopBean> stopsForDirection = new ArrayList<StopBean>(); String directionId = stopGroupBean.getId(); Set<String> stopIds = new HashSet<String>(stopGroupBean.getStopIds()); for (StopBean stopBean : stopBeansList) { String stopBeanId = stopBean.getId(); if (stopIds.contains(stopBeanId)) stopsForDirection.add(stopBean); } directionIdToStopBeans.put(directionId, stopsForDirection); } } return directionIdToStopBeans; }
private void groupByDirection(StopSelectionTreeBean tree, StopsForRouteBean stopsForRoute, StopGroupingBean byDirection, Map<String, StopBean> stopsById) { List<StopGroupBean> groups = byDirection.getStopGroups(); if (groups.isEmpty()) { groupByStop(tree, stopsForRoute.getStops()); return; } for (StopGroupBean group : groups) { StopSelectionTreeBean subTree = tree.getSubTree(group.getName()); List<StopBean> stops = new ArrayList<StopBean>(); for (String stopId : group.getStopIds()) stops.add(stopsById.get(stopId)); groupByStop(subTree, stops); } }
for (RouteBean route : routes) { StopsForRouteBean stopsForRoute = transitDataService.getStopsForRoute(route.getId()); List<StopGroupingBean> stopGroupings = stopsForRoute.getStopGroupings(); for (StopGroupingBean stopGrouping : stopGroupings) { if (!stopGrouping.getType().equalsIgnoreCase("direction"))
/**** * Private Methods ****/ private StopSelectionTreeBean getStopsForRouteAsStopSelectionTree( StopsForRouteBean stopsForRoute) { StopSelectionTreeBean tree = new StopSelectionTreeBean(); StopGroupingBean byDirection = getGroupingByType(stopsForRoute, TransitDataConstants.STOP_GROUPING_TYPE_DIRECTION); Map<String, StopBean> stopsById = getStopsById(stopsForRoute); if (byDirection != null) { groupByDirection(tree, stopsForRoute, byDirection, stopsById); } else { groupByStop(tree, stopsForRoute.getStops()); } return tree; }
/**** * Private Methods ****/ private StopSelectionTreeBean getStopsForRouteAsStopSelectionTree( StopsForRouteBean stopsForRoute) { StopSelectionTreeBean tree = new StopSelectionTreeBean(); StopGroupingBean byDirection = getGroupingByType(stopsForRoute, TransitDataConstants.STOP_GROUPING_TYPE_DIRECTION); Map<String, StopBean> stopsById = getStopsById(stopsForRoute); if (byDirection != null) { groupByDirection(tree, stopsForRoute, byDirection, stopsById); } else { groupByStop(tree, stopsForRoute.getStops()); } return tree; }
private Double getDistanceToNearestStopOnRoute(RouteBean route) { StopsForRouteBean stopsBean = _transitDataService .getStopsForRoute(route.getId()); Double minDistanceToRoute = null; for (StopBean stop : stopsBean.getStops()) { Double distance = SphericalGeometryLibrary.distanceFaster( stop.getLat(), stop.getLon(), lat, lon); if (minDistanceToRoute == null) { minDistanceToRoute = distance; continue; } if (distance < minDistanceToRoute) minDistanceToRoute = distance; } return minDistanceToRoute; } }