I would like to map a building (one from my University) and navigate through it using just the phone.
No wifi/gps/bluetooth. I will give the coordinates of my starting position by taping the screen or something similar (I can also use the user feedback for detecting the floor).
What should I use to create the actual map of the building (floor map)?
Could you give me some starting points/resources or describe how you would accomplish this task?
I've got suggestions that I should use openGL https://www3.ntu.edu.sg/home/ehchua/programming/android/Android_3D.html Or maybe JOSM but I don't know if it can be ported to Android and used for mobile navigation afterwards.
Is there a simpler way? What should I use instead?
What would be the next steps after creating the map? Should I consider developing the code for navigation by myself? Any starting points here as well or similar projects?
What should I use to create the actual map of the building (floor map)?
Does the map need to be dynamic? If not, you could simply draw the floor map and display on the screen the image with your position on top.
Is there a simpler way? What should I use instead?
Following your description I think the best solution would be using magnetic localization.
Basically you would read Earth's magnetic field with the corresponding sensor and navigate the place with said data.
There are third party services that provide this kind of computation, like IndoorAtlas. You can use their android SDK and set up the navigation system by uploading a map of the building and running an initial mapping of the magnetic readings with your phone.
Related
I am planning to build sort of a geography quiz app where you have to touch inside the borders of the searched country. So, I have to display a map (I want it to be offline) and be able to test the user click against the map in some way.
I've been searching a while now and found good OSM material from Natural Earth Data and TileMill for converting it to a MBTiles-file (sqlite-database containing all the png's and some meta-data too (using UTFGrid)).
On the Android-side, I would like to use OSMdroid for displaying the maps, mainly because it's open-source and highly maintained.
I've found some guides on how to use the MBTiles-database inside osmdroid but is there also an easy way to access the metadata or check otherwise if the user touched inside the right country area? I would like to avoid some sort of "boundary boxes"...
Any help is highly appreciated!
I'm pretty sure that bounding box calculation is best option.
Can you access metadata from the offline tile source? Yes, kind of. You can get a list of unique tile sources in the archive but that's it. There's an open issue regarding getting the bounds of a given offline archive. You can follow it here (or contribute)
https://github.com/osmdroid/osmdroid/issues/174
It's slightly complex because offline tiles are going to have a bounds per layer/source and per zoom level. There's also no guarantee that that bounds of that given zoom/layer is going to be contiguous. I.E. one zoom level can have both the US and western Europe in it.
I spent several hours looking for simple solution and still haven't found one.
MapBox style editor uses this simple feature. That you can hover and click over map, and it shows small popup stating all terrain classes you enabled in your map.
Question, how to do it in Android version of MapBox given I have installed my style. Now I want click on any place in the map and get the same popup stating, for example, that this is building, woods, background here. Or other place would satte, that this is major road.
This IS doable as MapBox studio itself shows. i can't believe it uses some API not available for anyone, as this is one API no map provider gives, while still able correctly draw terrain. What so complex to add this API?
And NO I am not interested in address. I am interested exactly on terrain, for simple task - distinguiosh water from non-water, road from non-road, building, from non-building, don't care where it is by address, so reverse geolocation does not work. Or simpler - I need SIMPLER geolocation, than address.
Your questions kind of confusing but I'll try and help. If I'm reading correctly, you are trying to create an Android app that uses an API similar to Mapbox Studio that allows the user to select/distinguish the difference between objects on the map such as buildings, water, forest, etc.
If this is the case, then first you must understand that Mapbox Studio is using OpenStreetMap data to distinguish between objects. These objects are stored in a database with tags. It's tough to explain so i'll just leave a brief reading wiki page that might help.
To my knowledge, there isn't any API's specific to Android that will give you the kind of information you're looking for. However, if I was in your dilemma I'd take a look at the Overpass API as it's a complex query tool that allows you to send coordinates to it and it will return all the tags (such as building or water) at that location within a JSON object. From there you can parse and use the data in your app. It is very powerful so I suggest reading up on how to use it and test using a website called Overpass Turbo, that's if you decide to use it.
Nevertheless, I hope this helps and I understood your question correctly.
I'm working on an android app for my final year project and I'm unsure how to solve this problem. I would like some advices to get me started in the right direction.
The project is to develop an android app to output a direction path from point a to point b on an image representing a two dimensional indoor map. The direction displayed will be depending on the user's input (destination). The starting point will always be the same location on the image. Once the user select a specific object, the app should find its location on the map using a database and then draw the direction's path from Point "a" to point "b".
I do not want to use any indoor navigation technology for this app. The location of each object on the map should be predefined and stored in a database.
The part which I am really unsure about is how to do the following for and android app. --> How to predefine points on an image and how to use these predefined data to display the path to take in the image representing the indoor map. I have been advised to use SVG (Scalable Vector Graphics), I have found androidVG to use SVG with android but I haven't found much information on it.
I am currently clueless regarding what language and techniques to use in order to perform the above feature on android.
Questions:
1) What general advice would you give me on how to effectively tackle this problem from the information I've provided?
2) Was I correctly advised when I have been given SVG as one of the language to use for the development of this app? If I was, would anybody have any more information on using SVG for android to provide me with?
3) IF there would be a better way to solve this problem which language should be used?
I really appreciate all the help provided in this community. Hopefully I have been clear enough, hoping to have my questions answered. Thank you!
For this use case I think it would be much simpler to just use the standard Canvas API to draw your lines rather than using an SVG renderer.
I would extend the Android ImageView class. In the onDraw() method call super.onDraw() to let it plot the image. Then add your lines using (for example) a set of canvas.drawLine() calls.
I'm trying to create an app that will tell a person what zone of a building they are in. I'm using bluetooth dongles to get an approximate location, as oppose to exact location, and show the user on a map whereabouts they are. I would like it just to highlight the zone they are in, instead of a specific location.
I can get my hands on a floor plan of the building I am using so I'm just wondering if there is an easy way to incorporate this into some kind of map with an existing API? I found a question here which states that they just use an overlay on the image to show a marker of where the person is. Would this be a bit easier?
This is for my final year project so I would like to have some sort of flashy map if possible but I'm not sure where to start looking or if it's possible.
I also found this question which gives a great variety of apps that implement and indoor map, but I don't think I can just take this small piece of functionality that I need out of them as they seem to be complete apps.
Any information would be a great help. Anyone with experience in this sort of thing please share your knowledge :)
It doesn't sound like it'd be too complicated to just write your own custom view for this. Draw the map image to the canvas. Then for the zone the user is in, draw another 'highlight' graphic on top of the map that you just drew.
If you're not sure how to do this, there's a rather basic guide on how to create your own drawable widgets which should point you in the right direction. There are plenty of examples on drawing images to the canvas, eg this one.
As far as I understood, Vuforia is a good starting point for developing AR-Applications on the Android Plattform.
The Docs for Simple Virtual Buttons are quite good, but how would one combine this with location based data?
For Example:
On the application level, both markers and location based data should be used; so one would need f.e. Vuforia and another component for integrating location based data.
To get a deeper insight of what should be possible, here is an example:
You go through a landscape were the phone can
1.) recognize its position and view location based points on the screen and
2.) recognize objects in your view and perform actions upon "touching" those (virtual buttons, I learned..)
So my final question is:
Do you know examples of frameworks or demo-apps, where such a task is being accomplished by tying Vuforia together with location based AR Product/Framework XYZ?
Please excuse me, If I am not as precise as needed-I searched SO, but (as far as I saw) there are no such questions already.
for location based AR like wikitude Layar etc who draw poi based on location on camera view you have to get poi from different Api like openstreet ,twitter,etc after parsing and put these data on cameraview. sensor values and gps values are used.
to start with you can go through Mixare code which is open source .
you can implement this code with Vuforia cameraview.
follow my ans here for details. Gud luck