Predix – CityIQ / Google.Maps PoC App

Asset Details

This Topcoder challenge was focused on developing a simple proof-of-concept application that combines together services provided by CityIQ, Predix, and Google. Check out the original challenge and dive into the winning Asset details below.

Congratulations to maxceem for taking first place in the challenge and providing us with his “winner’s asset details and description”.

Winner's Asset Details & Description

This a simple proof of concept application that combines services provided by CityIQ (pedestrian and traffic data), Predix (assets and cloud), and Google (Maps and Places) to help a user to choose the best location for their new business.

How the application works

A user chooses a location in the Google Map by searching for a location using free-text query — processed by Google Places API or by simply clicking on the map. Also, the user chooses the type of place they’re interested in, in order to see possible competitors in the selected niche. The area around the location that will then be used to analyze data is determined using several methods. If the user used free-text search, then Google Places API returns some advised viewport to display search results. In that case, the area is determined based on that recommendation, but we make it square for further use. If the user simply clicked on the map, the area is chosen based on the current zoom level.

The back end receives requests with the location, area, and business type, and retrieves data about pedestrians and traffic level in the area from the CityIQ service, as well as information about competitors from the Google Places API.

CityIQ provides data from many sensors; each has around 3,400 types of traffic events and around 500 types of pedestrian events per day. To analyze an area, we can retrieve data from around 120 sensors, which forces us to restrict the duration of events that we can analyze to just 5-10 minutes, as we can get only 1,000 events per request. This way, we can still compare the level of traffic and pedestrian activities in various places in the analyzed area by displaying this data in the Google Map using heat maps.

The Google Places API gives us 20 nearby places of the defined type. We display these places as points and use clusterization to handle situations where there are several places close to one another.

How we can further improve

There are still a lot of improvements that can be made to this app. In CityIQ, there is still a lot of data that can be used to analyze traffic and pedestrian levels, depending on the time of day and day of the week. Also, we can get up to 60 places from Google Places with some delay and add the ability to filter places based on the place’s price level.

Topcoder Winner



Angular 2+ Google API JavaScript node.js Predix Reactjs


Google Node.js Predix

Are you ready for Predix?