GithubHelp home page GithubHelp logo

timpushkin / depnav Goto Github PK

View Code? Open in Web Editor NEW
29.0 29.0 4.0 4.82 MB

Android application for department navigation

License: GNU General Public License v3.0

Kotlin 93.64% Python 4.29% Shell 2.07%
android android-compose indoor-maps

depnav's People

Contributors

timpushkin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

depnav's Issues

Show marker pin even when it is off screen

It would be nice to have the marker pin stay on screen even when the pinned marker itself gets scrolled off screen. It should float near the screen border pointing to where the marker is.

Something like the yellow arrow on the image below but inside the map:
The Witcher 3 mini map

Sort search results

Currently marker search results appear to be strangely ordered, so some sorting needs to be added

In-app theme picker

Currently GUI theme is determined solely on the system's theme. Add an option to pick GUI theme from the app itself.

Show marker info after search

After a user finds a marker via search activity, bottom sheet needs to be displayed along with centering on the marker.

Add zoom-in hint

When the map is zoom-out so that markers are invisible, show a small hint to help a user understand that he needs to zoom in to see the markers.

Problems related to border area

If padding of a map is too low, the following problems arise:

  1. Centering on some markers close to the border doesn't really place them in the center of the screen.
  2. Search button at the top of the screen may cover parts of the map close to the top border.

The first problem may be solved by playing some animation attracting attention to the marker that was centered.

The second one may be solved by adding functionality to hide the UI.

Легенда карты

Некоторые обозначения интуитивно непонятны, например звездочки и стрелочки вверх. Было бы удобнее иметь легенду карты.

I'm trying to implement a third map

Hi. This issue might be like a guide for other onlookers and especially programmer newbies, if you are wondering about using this project for your own purposes. Refer to the /tools inside the app, use WSL or VM Linux to execute the .sh file and tinker with the .py files, you might have to change the script to just manually write down the file instead of parsing it. You do have to make a JSON file yourself, but it's pretty easy in principle, you just write down the X and Y value of any point by checking them with any graphical software in the map image into a new object in JSON.

So far I'm stuck after this point. I might solve it by myself, maybe not, we will see. Now let's get to the problem.

I'm trying to implement a third map for the purposes getting used to understanding someone's code by myself, but this so far stumped me.

I added a new map into the same Database, a new tile pyramid into the app and it leads to the app crashing in Android Studio.
So, there are 3 maps, 3 tile sets now in the DepNav, nothing else.
I did not do any other actions to the Database or the tile sets after creating them and putting them into the app.

изображение
изображение

I also did not add any new UI elements to represent the third map at the moment of writing this, for I am currently trying to understand how to implement one in your code.
The third map is called "Third" or "Третий" currently, as in internalName (for others, check JSONs to understand what's that) and the actual name of the map.
Thanks for any help.

Originally posted by @HolySSSS in #79 (comment)

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

Search results ranking with weighted fields

Improve marker search results ranking to weight text fields differently: results whose title matches the query should be ranked higher than the ones whose location or description matches. E.g. use Okapi BM25F as a ranker instead of BM25F.

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

Improve map zooming

Zoom acts weird when map is zoomed out: it first centers the map and only then zooms into the desired point.

It is more of a MapCompose issue.

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.

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

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.