Detailed documentation of all features in the Life in Between XR application.
- Search with Autocomplete
- Line Selection
- 3D Map Visualization
- Bookmarks & Offline Suggestions
- Transit Stop Management
- UI Management
The search feature provides intelligent, context-aware search functionality focused on public transportation. It uses Google Maps API to gather results and filters them by proximity to subway/bus stops.
- Autocomplete Suggestions: Real-time suggestions as you type
- Location Filtering: Results filtered by proximity to transit stops
- Route-Aware Search: Only shows locations along your selected route
- Fast Performance: Optimized search with caching
- User selects a transit line
- User types in search field
- System queries Google Maps API
- Results filtered by:
- Proximity to selected line's stops
- Relevance to search query
- Results displayed with autocomplete suggestions
Component: Rotary Heart AutoCompletePopup
Location: Assets/Rotary Heart/AutoCompletePopup/
Integration:
- Connected to Google Maps API
- Integrated with
LineSelectorfor route filtering - Managed by
UIManagerfor UI coordination
// Search is handled by AutoCompleteTextField component
// Configured via Unity Inspector
// Results automatically filtered by selected line- Community Support: Helps smaller businesses get discovered
- Convenience: Ensures detours are always along your route
- Efficiency: Saves time by showing only relevant results
The line selection system allows users to choose and filter by specific transit lines (subway/bus lines).
- Visual Selection: Color-coded line buttons
- Single Selection: Only one line selected at a time
- State Management: Tracks selected state across the app
- UI Integration: Automatically updates UI based on selection
- User sees list of available transit lines
- Each line has:
- Name (e.g., "Red Line", "Blue Line")
- Color representation
- Associated button
- User clicks a line button
LineSelector.SelectLine()is called- Selected line's
selectedproperty set totrue - All other lines'
selectedproperty set tofalse - UI updates to reflect selection
Components:
Line.cs: Data structureLineSelector.cs: Selection logic
Location: Assets/Scripts/
// In Unity Inspector, assign lines to LineSelector
LineSelector selector = GetComponent<LineSelector>();
// Programmatically select a line
selector.SelectLine("Red Line");
// Check which line is selected
foreach (Line line in selector.LinesList) {
if (line.selected) {
Debug.Log($"Selected: {line.name}");
}
}- Clear Organization: Easy to see and select lines
- Consistent State: Single source of truth for selection
- User-Friendly: Intuitive visual interface
The 3D map feature provides real-time 3D visualization of urban environments using ArcGIS and local 3D models.
- 3D Building Rendering: Realistic 3D representation of buildings
- Spatial Context: Shows buildings relative to transit routes
- Interactive Exploration: Explore areas above your subway line
- Offline Support: Local 3D models for offline viewing
- System loads 3D map data (ArcGIS or local models)
- Buildings rendered in 3D space
- Transit routes overlaid on map
- User can explore 3D environment
- Buildings positioned relative to transit stops
Data Sources:
- ArcGIS SDK for live data
- Local OBJ files for offline support
Models:
Assets/3D Map/Boston.obj: Main 3D map modelAssets/3D Map/Boston.mtl: Material definitions
Building Data:
Assets/Map Info/MITBuildings.csv: Building information
The 3D map is displayed in the main AR view, showing buildings and transit routes in real-time as the user moves through the city.
- Spatial Understanding: Better understanding of city layout
- Context: See what's above your subway line
- Exploration: Discover new areas visually
The bookmarks feature allows users to save favorite locations and receive offline suggestions for places along their route.
- Bookmark Management: Save favorite places
- Offline Suggestions: Pre-loaded suggestions for your route
- 3D Representation: See bookmarked places in 3D
- Route Integration: Suggestions filtered by current line
- System loads offline suggestions for selected line
- Suggestions include:
- Cafes near stops
- Gyms near stops
- Other amenities
- User can bookmark locations
- Bookmarks saved locally
- Bookmarked places shown in 3D view
- Limited to cafes and gyms near subway stops
- Suggestions are pre-loaded (not dynamic)
- More location types
- Dynamic suggestions based on time/weather
- Social sharing of bookmarks
The stop management system tracks and manages transit stops with color coding and categorization.
- Stop Data Structure:
Stopclass with name and color - Color Classification: Stops categorized by color (red, blue, green, yellow)
- Integration: Works with line selection system
Component: Stop.cs
Location: Assets/Scripts/Stop.cs
public class Stop {
public string name;
public enum color {
red, blue, green, yellow
}
}Stops are associated with transit lines and used for:
- Location filtering in search
- Route visualization
- Proximity calculations
The UI management system coordinates UI elements to ensure proper visibility and user experience.
- Smart Visibility: Automatically shows/hides UI elements
- Context Awareness: UI adapts to user actions
- No Overlap: Ensures only relevant UI is visible
UIManagermonitors UI element states- When search dropdown is active:
- Selector bar is hidden
- When search dropdown is inactive:
- Selector bar is shown
- Updates every frame for responsiveness
Component: UIManager.cs
Location: Assets/Scripts/UIManager.cs
// Assign UI elements via Inspector
UIManager uiManager = GetComponent<UIManager>();
uiManager.searchDropdown = searchDropdownGameObject;
uiManager.selectorBar = selectorBarGameObject;
// UIManager automatically manages visibility- Clean Interface: No UI clutter
- User-Friendly: Intuitive UI behavior
- Maintainable: Centralized UI logic
- User selects a line →
LineSelectorupdates - User searches → Results filtered by selected line
- 3D map displays → Shows buildings along selected route
- Bookmarks shown → Filtered by current line
- UI adapts →
UIManagercoordinates visibility
User Input
↓
Line Selection → Filter Search Results
↓
Search Results → Filter by Proximity to Stops
↓
3D Map Display → Show Buildings Along Route
↓
UI Updates → UIManager Coordinates Visibility
Potential enhancements:
- Real-Time Updates: Live transit information
- Social Features: Share locations with friends
- Accessibility: Enhanced accessibility options
- Multi-Platform: iOS support
- Advanced Filtering: More search filters
- AR Navigation: AR-guided navigation to locations
Last Updated: 2024