Geo @ ObjectGraph

Earth and Environmental Science Blog

Hey there! Thanks for dropping by my blog! Take a look around
and grab the RSS feed to stay updated. See you around!

Introduction

The goal of this project is to visualize a specific WiFi SSID strength on a map. WiFi signal’s strength is affected by the distance from the antena or obstructions between the receiver and the antena. In this article, I collected data in a small shopping mall in Long Island. WiFi strength was measured on iPhone and the value will be directly sent along with coordinate information to Google Fusion Tables. After collecting data, analysts are able to create map on the fusion table itself or download it as csv to import in other GIS software, such as ArcGIS.

How it works

I build a simple model to collect WiFi signals and here is what I prepared.

  1. An iPhone App to measure the strength of WiFi
  2. One Google Fusion Table to receive the data
  3. ArcGIS Desktop Version (Optional)

The important thing in this model is to upload data into Fusion Tables from iPhone. Because user(s) directly upload data into cloud, you do not have to worry to extract data from the iPhone and there is no need for sync process. At the same time, your partner or team member can constantly check where you already covered and he is able to suggest next area to proceed. After taking data as much as you want, we just visualize it in a powerful environment (e.g. ArcGIS Desktop) to generate a practical map.

Network Diagram

To begin this mapping project, we need to create one table on the Google Fusion table. Here is the table schema. I also explained details in the lab manual below.

  • Name – Text
  • Value – Number
  • Latitude – Location (*)
  • Longitude – Text
  • Date – Date/Time


* After adding those fields, click Latitude and check “Two Column Location”, then select Latitude for the first dropdown and select Longitude for the second dropdown. It should be look like below.



Click here to view the actual Table

I’m demonstrating the actual usage of the iPhone app. Configurations are straight forward. First, you need to enter the target WiFi name (e.g. lynksys). Second, enter the Fusion Table’s ID which appear in the url.

Finally, login to google and you are ready to take data.

1 Minute WiFi Mapper App Instructions Movie (Please turn on HD option)

After taking enough data, Google Fusion Table immediately visualize the map for you. After this visualization, we will download the data as CSV format and import into ArcGIS (see the network diagram above).


Interactive Google Map

Post Processing in ArcGIS

The visualization on Google Fusion Tables is ok but it’s not enough for practical usage. The “Heat Map” check box is actually density map (clusters of points get more heat) which does not really represent WiFi signal strength. We are looking for a solution which is often called “Interpolation Map”. Interpolation map takes z-value for each point and it represent values as multiple classes of different colors. Fusion Table’s “Intensity Map” could be used in Country / States level; however, it is not suitable for our resolution (5m – 10m range).

Final WiFi Signal Strength Map

Lab Manual

Link to this Lab Exercise Manual

About WiFi Mapper App Project

Since this project is using iPhone’s private API (WiFi signal measurement), I am not able to upload it on their App Store. Alternatively, I’m uploading the entire project files on this website. If you have developer’s license, feel free to download, compile and install it.

Download XCode Project (2.8 MB, Apache License)

Conclusion and Possibility

I’m building an iPhone App without the WiFi signal portion in order to handle more generic input data. This easy-to-use app will turn your phone to a powerful GPS based data collection tool. For example, contour map, biological / ecological mapping, hydraulic head reading of monitoring wells, pollution reporting, etc…

 

You can leave a response, or trackback from your own site.

14 Responses to “iPhone to Google Fusion Tables – WiFi Mapping Project”

  1. Drandy says:

    I’d love to try the app, but the link seems to be broken.
    :-(

  2. bob says:

    Is the app avaible now?

    • kiichi says:

      This app will not be uploaded since we are tapping into private API; they will reject if I do too much trick like this app. I’m attaching source code in this article. So if you have a developer license, feel free to try out. If you are in NY area, I’m happy to travel to your place to show demo on your device.

  3. Mat says:

    I would definitely buy this app, if it would be available – even if I need to jailbreak for this purpose only!

    Maybe you should think about putting it on cydia? But I guess, it would need some “out of the box” heatmap visualisation, maybe done by some web service…

    Thanks a lot for sharing the source – maybe that will get me started my iOS development ;-)

    • kiichi says:

      actually, I saw a few methods to generate PNG on the server with some open source library. If I pay a license for some products, I can run batch via webservice without writing any programs. I’ll take a look at Cydia too. Thank you for your suggestions.

  4. Alex says:

    This would be awesome as an app. Speaking as an IT Professional, i am looking for something like this to do wireless coverage surveys for clients. Not being a developer/programmer, i am unable to do anything with the source. But perhaps you could look at making this available on Cydia instead.

    Have a good day!

  5. james says:

    Great project, I am looking into using fusion tables with a similar mapping app for mobile devices such as the iPhone. Curious, does your iPhone app authenticate to a private table? One of our requirements is our data remain private and I’m trying to find out how we might be able to authenticate to the fusion table without needing end users to enter their google open ID which would limit it’s use and be an extra inconvenient step. Any thoughts would be greatly appreciated.

    • kiichi says:

      Hi James,

      I did not try out the private table but my next blog post will introduce a simple version of this WiFi app. I used local storage instead of fusion table and I let user email the csv file as an attachment.

      • kiichi says:

        I also agree to put ID is useless step. There is a way to query to get all tables that you own (Just like SHOW TABLE query). Sorry about my laziness.

  6. Asher says:

    Hi,
    This is not working on iOS 5. Are you going to work on that?
    This blog shows how to make the SOStumbler class work in iOS 5. Maybe it helps.
    http://blog.guvenergokce.com/iphone-wireless-scanner-ios5/170/

    • kiichi says:

      Hi Asher,

      Thanks for the link. I tried that fix but I noticed jailbreak is required to run the new version. If you have a jailbroken phone, I can upload the new version but since Apple changed the iOS itself in order to kill the WiFi scanner, I would suspend to develop WiFi scan app too. I’m nothing against jailbreaking a phone but as far as I hear my friend’s jailbreaking story, it takes too much time to struggle with it.

      Best,

      Kiichi

  7. Gil says:

    Hi Kiichi,
    I am building an app in parallel with someone who will build an app for Android which will use Google Fusion Tables.
    Your app is very interesting but still quite difficult to understand for me.
    Do you plan to write a tutorial which will explain connexion, query to the Fusion Tables?
    Thanks a lot.

Leave a Reply