I currently have an app which displays a map fragment and can display navigation to a given point. The indoor maps is enabled and the building I'm trying to use does have indoor maps, but it only navigates to outside the building even when the transport mode is set to walking.
Is there currently any way to do this?
It seems that the Google Maps Android API does not support this feature for now.
Even if you select the correct travel mode, which should be walking, the route is traced on the nearest road and not on the indoor path.
I'm also waiting for this option to be released, since it is currently possible to get this outcome using Google's own Maps web app.
My graduate project is about indoor positioning when GPS is not available in android. The answer is yes, but there is not easy way. Hard way to do this but accuracy not good as good the GPS. There are two main approach to get location.
Approaches
1. Sensor-Fusion: This method for the get relative location. Using built-in sensors (gyroscope, accelerometer, compass) calculate the distance & direction over time. So you get the new location adding this value to old location. It also called dead-reckoning.
2. Wi-fi Signal Strength: If there are two or more a.p. which locations are known before, use the signal strengths to estimate your location. This idea a bit similar to how GPS works.
Weak Sides
1. Sensor-Fusion: Calculating new location error(e0) occur. When calculating next new location new error(e1) occurs again. So you get new location with e0+e1. I mean error groves exponentially over time.
2. Wi-fi Signal Strength: Some items can block the a.p. So you get weak signal strength and calculate wrong location.
Finally
I use first approach for short time(10sec). Second approach to correct location(every 10sec). So you get the best results for long & short time.
Source
Deeper explaination at this pdf.
open source android app using first approach.
Related
i'm looking for the best way to implement a road navigator that gets the velocity, distance between 2 points using the smartphones techniques.
through my searches i found 2 different tech. using either the accelerometer or android API (android.Location).
some opinions said that using accelerometer wont give me an accurate results because there will be so much noises as a bumpy roads, buildings...etc and calculations will be so complex.
on the other hand using the Android API (android.Location) means i should always be connected to the GPS, doesn't that affect on the battery?!! and as i found i can't open the GPS by myself i used always ask the user for a permission(so boring). and is there an limitation
So kindly help to take a decision, is it useful to be connected 24 hours on GPS in order to update the device location.. or to use the accelerometer??
You definitely should use GPS. The battery will be strained but you get much more accurate result. Sensor should be used only when GPS is not available and for a short distance.
Using GPS you can call location.hasSpeed() and if positive call location.getSpeed() together with getBearing() will give you the velocity.
I want to develop an application in which I need to know the position of my device within a building (the room in which the device currently is). GPS is not working in the building. Is there any way to find the position of the device in building? If yes how? Can i use position or motion sensors or combination of these for this purpose?
There is no general solution. In case you can place WiFi hotspots/repeaters in the building (preferably in every room), you can triangulate the position from the WiFi signal strengths. But that's also not straightforward, because of different signal losses through the walls and floors. You'll need to survey the building and make a signal strength map in advance and then, based on the signals you receive, look up your location on the map.
Motion sensors are also not precise enough and compass, if you are inside a steel construction, is inaccurate, too.
You can try using the Network to locate the user. If the signal is strong enough, it should return a decent location fix, though not as accurate as GPS
Unfortunately there is no easy solution. Network location is out of the question, since it is not precise enough to show buildings, not even mentioning rooms.
The only way I could think of for this to work is to use external sensors in building and somehow connect them with the device.
How to get the distance of our mobile device from a wifi hotspot kept inside a building? This is basically for navigational purposes inside the building.. Any help would be appreciated.
If you want to use WiFi for indoor location (step 1 before navigation), then distance to the WiFi Access Points is not the correct approach. Instead use RSSI.
With Android you would need to take WiFi fingerprint of a building by moving around every few meters and sample the RSSI strength. You need to provide a user interface that lets the user manually specify on an image of the building (e.g. a CAD drawing). Doing this will build up a database of what the RSSI is for different locations in the building. When you come to use this data for locating a user indoors, then you need an app to take the RSSI strength measurement and compare it against the database you've prepared to find the appropriate match.
Notes:
- If anyone adds/removes access points, you'll need to resample the building
- The measurements can be affected by density of people
- Some access points are variable strength access points, so the RSSI fingerprint is not consistent.
- This won't work with iPhone because there is no API to get the RSSI strength.
So, it is a useful, but not perfect way to get indoor location. There are a lot of more detailed articles on RSSI fingerprinting available.
Of course, navigation has to be built on to of that then.
Hi Kris
I understood what you are asking, The distance between Wifi access point and the Receiver, correct ? If yes, then it seem to be not possible after watching the discussion below.
Click here to see
After doing some asking around and reading, it sounds like you're lucky to get even within 10 meters of accuracy with a GPS on a mobile device (specifically Android).
I've seen a video that shows a home-made device reading out to several decimals. Is this only because of the data format from the chip? (aka, not really precise either?)
Is there any real working way that I can use an Android device to track real static positions within rooms in a building?
Ideally, I'd be able to mark a point in a room and come back to it later with virtually no drift.
The LocationProvider is different from each Android Device you are using. The SDK does not handle the calculation of your exact location but the phone does. But each device can have one or mare LocationProvider, thats why you need to set some Criterias when your picking a LocationProvider.
To get your exact position on the earth the GPS needs 3 points from 3 different satellites. Thats why the GPS works best in the open space. Regarding making a precise calculation on a static persion inside a building, this conflict with the whole scenario of the GPS-System. I'm not saying it's impossible to get a location inside a building but as with any other signals, obstacles that blocks the signal makes is weaker.
If you are inside a barn with thin walls this might work, but inside a 10 storage building your scenario seems quite impossible.
You can though force your phone to get the best LocationProvider and hopefully that will give you the most precise location. And yes, you can get inside 1-2m in precision outside.
I hope this helps a little. Enjoy your project.
Is it possible to get the location of the building shown in the Camera view using Augmented Reality in Android??
I have the GPS coordinates of the mobile but now i want to get the GPS coordinates of the building shown in the Camera view???
Please suggest me some ideas?????
If you have the GPS coordinate of your mobile phone and the direction (using the compass of the mobile phone) in which it is hold, you could use some trigonometry to approximate the location of the building. The remaining problem is that you have to somewhere estimate how far the building is away from your phone.
But if you assume for example that you're always walking in streets and the point to a building, it should be easier to find the building.
I would not depend on the compass output, it's always in question.
What I did was use Gogle maps, get a location fix, draw the point on the map (if you want to draw a line use bearing that would be a better hint I guess) then let the user draw or adjust the line using sattelite view to pinpoint the target. You can then get the new geo-coord and get a fairly accurate bearing ( if that's required )
I would also suggest using both the network and gps provider, in cities sometimes the network provider is more accurate than the GPS if the glass/metal canyon is preventing it, even a couple of hundred yards can get you close to your position.
Anyway it's a somewhat manual process but it's more reliable then trying to guess distance and hoping the azimuth is reliable (rarely is)