Android application for department navigation

Overview

DepNav – Department Navigator

Codacy Badge Known Vulnerabilities

App icon

DepNav is an Android application for viewing indoor maps of departments and searching for specific rooms on them.

The following maps are available:

  • Mathematics and Mechanics Faculty, St. Petersburg State University

Features

With DepNav you can do the following:

  • View the available maps by floors
  • Search for specific rooms and other objects on the selected map with built-in search
  • Enjoy the graphic interface in light and dark themes
  • Two languages available: English and Russian
Map Search Info

Download and install

Go to Releases section, download the latest available APK, and install it on your device. Android 5.0 or newer is supported.

Google Play release is planned in the future.

Comments
  • Fix OutOfMemoryError

    Fix OutOfMemoryError

    On my old android device (Redmi Note 5A, Android 7.1.2) I faced the problem that the application crashes immediately after entering it. I got this exception in Android Studio:

    E/AndroidRuntime: FATAL EXCEPTION: pool-3-thread-1
        Process: ru.spbu.depnav, PID: 3665
        java.lang.OutOfMemoryError: Failed to allocate a 4194316 byte allocation with 1130336 free bytes and 1103KB until OOM
            at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
            at android.graphics.Bitmap.nativeCreate(Native Method)
            at android.graphics.Bitmap.createBitmap(Bitmap.java:890)
            at android.graphics.Bitmap.createBitmap(Bitmap.java:867)
            at android.graphics.Bitmap.createBitmap(Bitmap.java:834)
            at ovh.plrapps.mapcompose.ui.state.TileCanvasState$special$$inlined$map$1$2.emit(Emitters.kt:224)
            at kotlinx.coroutines.flow.FlowKt__ChannelsKt.emitAllImpl$FlowKt__ChannelsKt(Channels.kt:62)
            at kotlinx.coroutines.flow.FlowKt__ChannelsKt.emitAll(Channels.kt:30)
            at kotlinx.coroutines.flow.FlowKt.emitAll(Unknown Source)
            at kotlinx.coroutines.flow.internal.ChannelFlow$collect$2.invokeSuspend(ChannelFlow.kt:123)
            at kotlinx.coroutines.flow.internal.ChannelFlow$collect$2.invoke(ChannelFlow.kt)
            at kotlinx.coroutines.flow.internal.ChannelFlow$collect$2.invoke(ChannelFlow.kt)
            at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
            at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
            at kotlinx.coroutines.flow.internal.ChannelFlow.collect$suspendImpl(ChannelFlow.kt:122)
            at kotlinx.coroutines.flow.internal.ChannelFlow.collect(ChannelFlow.kt)
            at kotlinx.coroutines.flow.internal.ChannelFlowOperator.collect$suspendImpl(ChannelFlow.kt:173)
            at kotlinx.coroutines.flow.internal.ChannelFlowOperator.collect(ChannelFlow.kt)
            at ovh.plrapps.mapcompose.ui.state.TileCanvasState$special$$inlined$map$1.collect(SafeCollector.common.kt:113)
            at kotlinx.coroutines.flow.FlowKt__ReduceKt.single(Reduce.kt:179)
            at kotlinx.coroutines.flow.FlowKt.single(Unknown Source)
            at ovh.plrapps.mapcompose.core.TileCollector$worker$1$bitmapForLayers$1$1.invokeSuspend(TileCollector.kt:135)
            at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
            at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
            at java.lang.Thread.run(Thread.java:760)
        	Suppressed: java.lang.OutOfMemoryError: Failed to allocate a 4194316 byte allocation with 1130952 free bytes and 1104KB until OOM
            at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
            at android.graphics.Bitmap.nativeCreate(Native Method)
            at android.graphics.Bitmap.createBitmap(Bitmap.java:890)
            at android.graphics.Bitmap.createBitmap(Bitmap.java:867)
            at android.graphics.Bitmap.createBitmap(Bitmap.java:834)
            at ovh.plrapps.mapcompose.ui.state.TileCanvasState$special$$inlined$map$1$2.emit(Emitters.kt:224)
            at kotlinx.coroutines.flow.FlowKt__ChannelsKt.emitAllImpl$FlowKt__ChannelsKt(Channels.kt:62)
            at kotlinx.coroutines.flow.FlowKt__ChannelsKt.access$emitAllImpl$FlowKt__ChannelsKt(Channels.kt:1)
            at kotlinx.coroutines.flow.FlowKt__ChannelsKt$emitAllImpl$1.invokeSuspend(Channels.kt)
            		... 5 more
    

    Troubleshooting was taken from here.

    opened by IAmFunkyFrog 5
  • Hide room markers on low scale

    Hide room markers on low scale

    When a user scales out and more map area becomes visible, room markers become very distracting covering most of the screen area.

    • [ ] Hide all unhighlighted markers when not zoomed in
    • [ ] Keep only highlighted marker when one is present
    enhancement 
    opened by TimPushkin 2
  • Mathematics and Mechanics Faculty, SPbU, map enchancement

    Mathematics and Mechanics Faculty, SPbU, map enchancement

    Current Mathematics and Mechanics Faculty, SPbU map has several issues:

    • Wrong building shape in a few places
    • Missing elevators
    • Missing scheme of the first floor of computational center
    enhancement 
    opened by TimPushkin 1
  • Double tap + slide zoom gesture

    Double tap + slide zoom gesture

    Google and other popular map apps have this double tap + slide zooming gesture: "One finger zooming by double tapping but not releasing on the second tap, and then sliding the finger up to zoom out, or down to zoom in" -- would be nice to also have this here.

    enhancement 
    opened by TimPushkin 1
  • Make spbu-mm map more precise and update database structure

    Make spbu-mm map more precise and update database structure

    Firstly, spbu-mm map now contains more objects, its structure is also more accurate. On the tiles, the rooms now look darker than the main passages.

    Secondly, the database now has table constraints (foreign keys and uniqueness). For that marker_text table has been divided into a usual table and a separate virtual FTS table.

    Thirdly, database queries have been modified to account for several maps. Adding new maps into the database should not break anything now.

    opened by TimPushkin 0
  • Update MapCompose to support more zooming gestures

    Update MapCompose to support more zooming gestures

    Applies new MapCompose versions so that now gestures like zooming by double tapping and sliding and zooming out by tapping with two fingers are supported. Closes #31.

    The new zoom fling feature is disabled for now as it is currently available only for zooming with two fingers (which feels inconsistent) and requires some tuning (speed needs to be reduced, it can be configured with MapState.configureGestures()).

    opened by TimPushkin 0
  • Use a single activity

    Use a single activity

    • Adds repositories for abstracting database's DAOs
    • Creates a single MainActivity with two screens instead of two activities
    • Temporarily removes instrumentation tests from CI as the action used to run it stopped working for some reason (created a corresponding issue here)
    opened by TimPushkin 0
  • Use marker clustering instead of lazy-loading

    Use marker clustering instead of lazy-loading

    Currently markers are lazy-loaded, but clustering seems to perform better.

    • It can be optional (a switch setting between the current behavior and clustering can be provided)
    • Clustering may be applied only to rooms, while other types of markers can use fade animation
    • If a cluster only includes rooms from a single block (which have the same prefix) it can display this prefix (for example, if a cluster consist of rooms 2212, 2213, 2209 it may look like 22xx) -- this would require encoding marker blocks in their IDs
    enhancement 
    opened by TimPushkin 0
  • Mathematics and Mechanics Faculty, SPbU subdivisions

    Mathematics and Mechanics Faculty, SPbU subdivisions

    Mathematics and Mechanics Faculty at SPbU is divided into several parts, which is reflected in room names. It could be also reflected on the map somehow to help students get used to the internal organization of the faculty.

    enhancement 
    opened by TimPushkin 0
  • Let users pick markers to be displayed

    Let users pick markers to be displayed

    Add floating action button opening a menu of checkboxes using which a user would be able to pick only the markers they want to see. The categories to choose from are:

    • Entrances
    • Rooms
    • Stairs and elevators
    • Restrooms
    • Other
    • Closed
    enhancement 
    opened by TimPushkin 0
Releases(v1.3.0)
Owner
Timofey Pushkin
Timofey Pushkin
Maps application in Android Studio using the Maps SDK for android

Google-Maps-Application Maps application in Android Studio using the Maps SDK for android. This app was initially developed in Java, but then was conv

Kyle McInnis 0 Nov 30, 2021
Traccar Client is an Android GPS tracking application.

Traccar Client is an Android GPS tracking application. It can work with Traccar open source server software.

Akshay Kumar 1 May 24, 2022
Android Maps Extensions is a library extending capabilities of Google Maps Android API v2.

Android Maps Extensions Library extending capabilities of Google Maps Android API v2. While Google Maps Android API v2 is a huge leap forward comapare

Maciej Górski 408 Dec 15, 2022
Scale bar for Android Maps (Google Maps, OSM, MapBox, Yandex)

Map Scale View Scale view for any Android Maps SDK (not only Google Maps) Contributing I encourage you to participate in this project. Feel free to op

Stas Parshin 109 Nov 18, 2022
Android library project that lets you manage the location updates to be as painless as possible

Smart Location Library Android library project that intends to simplify the usage of location providers and activity recognition with a nice fluid API

Nacho Lopez 1.6k Dec 29, 2022
malik dawar 87 Sep 18, 2022
Curve-Fit is an Android library for drawing curves on Google Maps

Curve-Fit Android library for drawing curves on Google Maps. This library uses Bezier cubic equation in order to compute all intermediate points of a

Sarweshkumar C R 63 Mar 7, 2021
Maps SDK for Android Utility Library

Maps SDK for Android Utility Library Description This open-source library contains utilities that are useful for a wide range of applications using th

Google Maps 3.4k Dec 30, 2022
Interactive, thoroughly customizable maps in native Android powered by vector tiles and OpenGL.

Interactive, thoroughly customizable maps in native Android powered by vector tiles and OpenGL.

Mapbox 247 Dec 27, 2022
Positional is a location information app for Android with Compass, Clock, Level, Sun and Moon and many other features.

Positional is a location based app that utilizes the device's GPS and fetches various details of the current latitude and longitude data like Altitude, Speed, Address and similar other information and show it in easily understandable format to the user. Alongside this main functionality of being a location app, Positional also provides a separate panel for Compass and Clock, and they serve their own purpose as their name suggests.

Hamza Rizwan 85 Dec 28, 2022
This is a repo for implementing Map pan or drag (up, down, right ,left) to load more places on the Google Map for Android

Challenge Display restaurants around the user’s current location on a map ○ Use the FourSquare Search API to query for restaurants: https://developer.

Mahmoud Ramadan 7 Jul 30, 2022
Membuat Aplikasi Pencarian Bengkel dan Tambal Ban dengan Android Studio

Tambal-Ban Membuat Aplikasi Pencarian Bengkel dan Tambal Ban dengan Android Studio Tutorial Build with Android Studio https://youtu.be/82L7az6hdVI Tut

Azhar Rivaldi 15 Dec 28, 2022
🍃 Organic Maps is an Android & iOS offline maps app for travelers, tourists, hikers, and cyclists based on top of crowd-sourced OpenStreetMap data and curated with love by MapsWithMe founders.

?? Organic Maps is an Android & iOS offline maps app for travelers, tourists, hikers, and cyclists based on top of crowd-sourced OpenStreetMap data and curated with love by MapsWithMe founders. No ads, no tracking, no data collection, no crapware.

Organic Maps 4.3k Dec 31, 2022
Dual Camera, IMU, and GPS data recorder for Android

Dual Camera, IMU, and GPS data recorder for Android

AUT 3D Vision 17 Oct 24, 2022
Demo de uso de google maps en Android, charla para el GDG Chimbote

mapasbasico Demo de uso de google maps en Android, charla para el GDG Chimbote Puedes usar este proyecto como base para trabajar con mapas en Android.

Whiston Kendrick Borja Reyna 4 Sep 17, 2021
An android app that uses Google Maps API and SDK to track a user's location and calculate the total distance travelled

Bike Rush is an android app that uses Google Maps API and SDK to track a user's location and calculate the total distance travelled by him or her along with time and average speed.

Ishant Chauhan 21 Nov 14, 2022
Android library that allows you to determine your location in a few of lines

locsimple Android library that allows you to determine your location in some lines! Benefits: automatic processing of permissions processing of enabli

Dmitry 7 Aug 31, 2022
A library for reverse geocoding coordinates in Android

?? AndroidReverseGeocoder A library for reverse geocoding coordinates in Android. The library is built on top of android's Geocoder library. AndroidRe

ShimShim27 1 Jun 24, 2022
Android application with the announcements board of the Information and Electronic Engineering department of International Hellenic University.

Android application with the announcements board of the Information and Electronic Engineering department of International Hellenic University.

Raf 6 Jul 29, 2022
Simple bottom navigation with side navigation drawer using Jetpack navigation UI made in Kotlin

BottomNavWithSideNavApp simple bottom navigation with side navigation drawer usi

Arvind Meshram 6 Oct 31, 2022