This is a application on top of the IndoorWPSLib and IndoorWPSPc projects, which allows the user to manage Fingerprints and Geomaps. It consists of a large mapcanvas and some Taskpanes. The design is simalar to GoogleEarth, because most users are already familiar with GoogleEarth. It offers some basic zooming and panning functionality to navigate on the map.

If you operate on windows, make sure you don't start the application on a network drive(i.e. \\server\share). This can cause problems when loading and saving images.

Here is a screenshot of the running application.

With the menuitem "View" in the menubar, you have the possibility to hide taskpanes, those collapsable things on the left, if you don not need them. At the moment, you can hide everything, except the Maps-taskpane.

On the following list, I will briefly explain to you the functionality that IndoorWPSPcLocator offers.

The main mapview

The main mapview is the big part of the application that displays the selected map. It shows the Fingerprints availibled on that map and the current location, if such a location is availible. The canvas also highlights the Fingerprints which are used to calculate the position, also known as candidates. This can somehow explain why the algorithm doesn't work. You can navigate on the map by paning it arrounf with the mouse and by using the control buttons at the top of the canvas.

The menu Controll

This menu allows you to start the scanning in order to calculate the position. On Systems without a Wi-Fi card, we can't calculate a position. In addition, you can clear your local database, which means all maps and all Fingerprints will be deleted. Sometimes you need this, for example if you want only the data from the webservice.

Getting data from the Webservice

The menu 'Webservice' allows you to communicate with a remote server, which defaults to our CommunityServer at But you can easily change that in the iwps_config.xml. Make sure that your URL ends with a '/', otherwise the program will throw errors.
If you want to download data from the webservice, simply click on "Load from WS" and you will see a list of availible maps on the CommunityServer. select the ones you want and click download. The program will now download the maps and their images. This process can take a while, because most images are rather high-resolution.
The upload-process as simple as the downloading. Just click on "Upload to Server" and select the maps and the Fingerprints you want to share with others. "Upload" will cause the application to send your information to the remote CommunityServer.

Creating or restoring a complete backup

Sometimes, you want to create a complete backup of your the state of your application. For example if you want to show your work to a co-worker. The Backup-Menu covers this functiontionality. The "Store to Disk" button will prompt you a dialog for a location and than create a zip-file, containing all your maps and Fingerprintss, even the unpositioned ones. With "Load from Disk" your current database and images will be replaced and you will end up with exactly the state of the application in which the backup was created. Notice that previously unsaved data will be lost when restoring a backup!

Selecting the map

This taskpane offers you the possibility to select the map you want to display in the mapcanvas(the biggest part of the application). Just select the map an hit "Display" or doubleclick a map.

The "Import"-button opens a filechooser where you can navigate to a .kml file. The application will then import the map and if all is okay, add it to the list of maps. See [wiki:HowToMap how to map] to learn how you can add a new map in more detail.

Positioning Fingerprints

The main list in this taskpane shows all unpositioned fingerprints. To position such a fingerprint, select one and doubleclick on the positions this Fingerprint was taken(In the mapcanvas). There is also a possibility to create a new Fingerprint with the current measured signals if you press "Create". A dialog will prompt you to enter a description and the new Fingerprint will then be added to the list of unpositioned Fingerprints. For more information how to capture Fingerprints, please read [wiki:HowToFingerprint]

Getting additional information about Fingerprints

If you click on a Fingerprint on the mapcanvas, this textarea shows additional information about the Fingerprint, such as the visible accesspoints and their signalStrenght. This can sometimes be helpful to find out how the algorithm works. If you don't find the information provided neccessary, you can hide this taskpane ,navigating to "View" -> "toggle Debug Window"

Adjusting and experimwnting with the parameters of the algorithm

In this taskpane, you can experiment with various pisition calculating algorithms and their parameters. You can select which Correlator the program should use or which !LocationCalculator should be used. You might consider reading [wiki:ArchitecturalOverview how we calculate a position] to get to know what is meant by !LocationCalculator and Correlator.

Here is what the parameters mean:
  1. The first combobox is to choose the Correlator to use.
  2. The second is the !LocationCalculator to use.
  3. This is the minimal percentage of same mac addresses a Fingerprint must have with the current measurement to be even considered as a possible candidate.
  4. This is the maximal Fingerprintcount, which is actually wraped in an instance !MaximalFingerprintLocationCalculator.
  5. This is the factor for the !PenaltyAddingCorrelator, which the penalty is multiplied with. Zero means that the penalties do not influence the resulting-correlation
    There is no perfect setting for these parameters, they behave different in deffieren environements. One way to find good values is to play around with these parameters.

Another way is to use the TestAlgorithmPerformanceGUI-Tool, where you can set the fingerprints to use, specify a few testpoints and than run automatically a set of defined inputvalues for the algorithm. For more information, see [wiki:AccuracyTests how our algorithm performs].

Visualizing the signal strengths

Sometimes, you want to know where a given accesspoint can be seen and where not. Maybe you want to improove your algorithm or your just curious. For that matter, we created a tool that lets you display this information as an overlay to the map. This functionality in bundled in the Taskpane "Visualize Signals".

Use the checkbox "Enable Visualization" to draw the overlay. to get some nice image, you need to select a Mac-Address(which is basically an accesspoint) from the list at the bottom of the taskpane. The Transparency lets you specify how transparent the overlay should be painted.

The "Relative Signals" is somemore complex. If it is not enabled, the algorithm for drawing the overlay will assign each color to a fixed signal-Strength(for exaple Blue : -70)
However sometimes the result might not be that helpful, because all signals are more or less in the same region. to help you see where the signal is stronger, enable the "Relative signals". The algorithm will now determine the range of the signal-strengths and adjust the colors to that, so the color will be streched from the lowest measured signal to the highest measured signal. Keep in mind that if this option is enabled, Blue does not always mean the same signalstrength(It does that for the current selected accesspoint, but if you select another accesspoint, the color Blue will be reassigned to another signal-strength)!

Because interpolating the signals is a heavy-operation, you can change the size of the grid of the points for which a value is interpolated(It won't look good with lower resolution though;-)

I hope you find the feautures helpful. Do not hesitate to contact us if you find a bug or maby have an idea for an enhancement.

indoorwpspclocatorsh2.JPG (65.2 KB) Anonymous, 01/19/2011 09:45 AM

theAlgorithmTaskpane.JPG (12.2 KB) Anonymous, 01/19/2011 09:45 AM

theDebugTaskpane.JPG (15.2 KB) Anonymous, 01/19/2011 09:45 AM

theMapsTaskpane.JPG (9.71 KB) Anonymous, 01/19/2011 09:45 AM

theUnpositionedFingerprintsTaskpane.JPG (6.51 KB) Anonymous, 01/19/2011 09:45 AM

signalVisualization.JPG (53.4 KB) Anonymous, 01/19/2011 09:47 AM