Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to build a mall map for Android

Tags:

android

maps

I want to build an Android application for a mall, so the user can navigate in a map that represent each floor in the mall and compute the shortest path between his position and the selected place, the mall located in the middle east, I heard about Google indoor maps but I think I can't use it, what do I need to make a one for that mall, can I make it 3-D? Any suggestion, or articles about this can help.

like image 218
user4o01 Avatar asked Sep 10 '12 20:09

user4o01


2 Answers

This isn't a good answer to your question, but I think it will save you some work. There are going to be some issues with the app you describe. Mainly, if you want to show the user's location on the mall map and calculate shortest distance from it. If your mall is indoors, how are you going to get the user's location? GPS isn't very reliable indoors unless there are windows everywhere. Plus you'll need a 3-D fix in order to ascertain what floor the user is on.

As a spin-off of @hsander's ideas, you could have the user take a picture of a nearby store's sign/logo and use image processing (e.g. Google Goggles) to match it and figure out where the user is. You wouldn't be able to show the user's movement in real time, but it would be a "free" solution and you would be able to deal with the issue with multiple floors.

If you have a budget and ability to install things in the mall, you could put GPS antennas on the roof of the mall in different places and then use a repeater to broadcast the signal inside the mall. My company has a setup like this, and I get impeccable GPS while indoors. You would be able to know which repeater the user is closer to by their GPS coordinates and direct them accordingly.

In terms of display, you can use simple View or SurfaceView to display a map floorplan. Using a map-related API is probably going to be overkill and it will be even less useful without user's location. I suggest for calculating shortest path, you create a graph and use Dijkstra's shortest path algorithm. You could use Google maps to help you create a node graph with real distances.

like image 80
Samuel Avatar answered Nov 06 '22 04:11

Samuel


Like Samuel said, you won't be able to use GPS.

I see two options here:

  1. You'll need to install some sort of hardware to communicate a position to your software, which could mean possibly wifi access points at known locations. This will be expensive and assume that the user has wifi or whatever communication type you decide on.
  2. Use QR codes positioned through out the mall at frequent intervals (Every store?) and let the user scan them to find out where they are. It's not as cool as it knowing where you are in real time, but it's easy and it works.
like image 27
hsanders Avatar answered Nov 06 '22 06:11

hsanders