IKEA – store locator app

Written on 19 February 2012, 12:19am

Tagged with: , , , ,

I put together a small app using the following technologies:

I spent some time adding addresses of IKEA stores from some European countries into a Google Fusion table. Then I used the Google API to display the stores on map, as an overlay, with a country filter. I also used the HTML5 geolocation capabilities to show the nearest IKEA store. Additionally, I provided the user the option to search for the nearest IKEA store from any given location.
As I said before, I used the Bootstrap user interface, along with jQuery.

At this moment, the current version is 0.8. I will make the roadmap public shortly, but the idea is to include all the European stores in the version 1.0. Also, the version 2.0 will include a separate data source (in addition to the Fusion table) and, depending on the application popularity, a public web service + API to retrieve the data. Of course, I planned to make this app scalable enough to be used with any set of geographical points – not necessarily IKEA stores 🙂

So, here it is:


A little bit about Fusion Tables

Written on 22 May 2011, 10:49pm

Tagged with: , , ,

Google Fusion Tables is a modern data management and publishing web application that makes it easy to host, manage, collaborate on, visualize, and publish data tables online.

So as far as an user is concerned, a Fusion Table is a virtual table stored in the cloud, on which he can perform the regular CRUD operations. Here comes the nice part: the language on which you can perform these operations is SQL-like. The API is designed so that you can use URLs like
http://www.google.com/fusiontables/api/query?sql=select+*+from+1234567
The output of this request is a CSV text, with the contents of the selected table.

Let’s assume that you have a Fusion table where you store some physical addresses for some items. Below is a very simple PHP script which reads the contents of the fusion table, parses it, extracts the address, then performs a geocoding request using the geocoding API, parses the JSON object and outputs the latitude and longitude of the given address.

<?php
//run sql query to get data from fusion table
$url = 'http://www.google.com/fusiontables/api/query?sql=select+*+from+822057';
$lines = file($url);

$i = 0;
foreach ($lines as $line_num => $line) 
{
	//parse csv line
	$csv = str_getcsv($line);

	//extract the address
	$address	= $csv[7];
	
	if($address)
	{
		//we need to geocode the address to get the latitude and longitude
		$url_address = urlencode ($address);
		$geocode_url = "http://maps.google.com/maps/api/geocode/json?address=$url_address&sensor=false";
		$geocode = file_get_contents($geocode_url);
		$output = json_decode($geocode);

		$latitude = $output->results[0]->geometry->location->lat;
		$longitude = $output->results[0]->geometry->location->lng;

		//sleep for a second
		sleep(1);

		//do something nice with all this data

	}
}

?>