02 Sep 2014

GSoC
So, GSoC finished a week ago, and my project had been very interesting and a great learning experience
for me. There were a lot of ups and downs during the project, a lot of code had to be changed.
The main and exciting thing was I got to try many solutions to the problems I faced and my mentors
supported me a lot.
Regarding the project, Initially I was using libchmaplain to overlay, cache and render POIs, but
the solution that I reached was very hacky and their were a lot of dependencies on libchamplain.
(The way I was using caching module of libchamplain wasn't the way it was
meant to be used.
)
So, I implemented my own memory and DB caching of tiles in Maps and used it, which is somewhat neat now.
The patches are under review and hopefully will be merged with the next release of Maps.
GUADEC
I am thankful to GNOME Foundation for providing me travel sponsorship and accommodation for GUADEC.
This was my first visit to a place outside India and it felt really amazing. I met my mentor Mattias and
Dario (another GSoC student in Maps) and we hacked for 3 days on Maps, which was also a very nice experience for me.

12 Jul 2014
Hi all!!

This is my third report on my work with GNOME-Maps on POIs.
Its almost a month now from my previous post.
What Was Done !!
Previously, I used ChamplainTileSource to render and place the POI icons. So, the location of the POI was limited to the Tile. So, the issue of cutting of POI icons came up when the POIs were close to the tile boundaries. So, instead of placing the Markers seperately on each Tile, a ChamplainMarker Layer was used which covers the MapView and the issue was solved. ChamplainTileSource is still used for caching and POI rendering purposes. This work will further be modified and be based on Damians work on Popover.
Added Icons from the Maki POI icon library and used them in GNOME Maps. Still unsure and in disussion whether we should use icons provided by Geocode-Glib or remove the dependency from it.
Splitted up the work done into Patches and submitted it for reviews. (Support for POIs)
Whats Next !!
Clean up and base all my patches submitted so far on Damians work on Popover.Use GtkPopover instead of ChamplainMarker
Implement Popover Design for POIs
Get POI info from Wikipedia if available
Plugin Routing (i.e, Select this as a start, destination or VIA point)
Plugin Damians CheckIn Patches in the POI Popovers (i.e, let users checkin on this place)
GUADEC 
11 Jun 2014
Hi all!!

This is my second report on my work with GNOME-Maps on POIs.
For the past week I have been working on Supporting different POI icon types in Maps.
Geocode-glib provides a few pois (around 11) but the subset of POIs we will be selecting to display will be larger than that. So somehow we needed to add support for these extra icons also.
The icons used in the Maps application for displaying specific place types like railway stations, schools, bars and a few others are taken from geocode-glib place-type.
So, there is a dependency for these icons on geocode-glib.
So, My mentor(Mattias) and me had a little chat with Bastien (hadess) and he suggested to include the icons in the Maps application itself rather than I providing patches for each of those, and later if a place type becomes necessary for other application it might be good option to move it to geocode-glib later.
So, I extended the GeocodePlace and made a Place class for the maps itself which can be used to fit our needs. Thus, removing the dependency on icons from the geocode-glib library.
This class will have its own function for getting and loading the icons for the specified type and it can be extended to support any other function that needs to be associated with a Place, say for example, information about a place from wikipedia or any other source, chekins, or some images of a place etc (A Map application can really have a lot of features!!).
The icon set I am using is Maki Icons which is also used by geocode-glib.
Whats Next
I will be rebasing my code to the latest Maps commit and will be submitting the first batch of patches for review on bugzilla.
And a bit of work on UI Popover for the POIs.
GUADEC
I am thankful to GNOME for providing me travel sponsorship and accomodation for GUADEC.
This will the first time I will be taking part and I am really excited about it.

22 May 2014
Hi all!!
This is my first report on working on GNOME Maps.
I have worked on a few features which I will be describing below.
Querying of POIs
I wrote a gjs overpass query manager (a wrapper perhaps) that fetches the POIs provided by OSM using the Overpass Query Language.
Basically, it can be configured to add types of POIs(tags) that needs to be fetched from the overpass, takes as input a Bounding Box and it will generate the corresponding URL containing the query that can be understood by Overpass.
The code can be found here.
A simple usage demo
let QM = new Overpass({
'timeout' : 600,
'outputCount' : 1000,
'outputFormat' : 'json'
});
QM.addSearchTag('amenity', 'pub');
QM.addSearchTag('amenity', 'hospital');
QM.addSearchTag('amenity', 'fast_food');
QM.addSearchTag('amenity', 'restaurant');
QM.addSearchTag('amenity', 'library');
let bbox = {
'bottom': 41.7,
'left': -0.4,
'top': 41.8,
'right': -88.3
};
let queryUrl = QM.getQueryUrl(bbox);
log(queryUrl);
This URL can then be queried to the server that will return the POIs as a JSON.
Selection of POIs
I wrote a couple of scripts to get the tags available in OSM and getting the count information relating to that tag.
Taginfo provided a wealth of information regarding the tags.
The selection of POIs is an ongoing process. Mattias, Jonas, Andreas and myself are working on selecting the best set of POIs that will be shown to the user.
Overlaying of POIs
POIs are shown on a separate layer, i.e., a layer on top of the map-tiles layer (the layer which displays the map images). This layer contains only the clickable location markers corresponding to a POI, clicking on them provides information regarding the POI.
Caching of POIs
The caching of POIs is done so that when the user pans away from a place, and then returns the overpass is not queried.
It is done in a similar fashion like the tiles image caching in maps.
Libchamplain provides apis for caching, so that you can write your own virtual functions on what to cache, and it will do the rest, both in memory and file system.
Rendering of POIs
Since I was caching POIs, that are nothing but a place marker in the form of JSON data, a POI renderer was required by libchamplain so that it knows how to render the data that it has cached.
One of my tasks will be to make this renderer as generalised as possible, so that it can be used for User Checkins (another Maps project by Damian) also, and possibly other things that have place information encoded as JSON.
Meanwhile, my next task would be to write a function that selects an icon for a given poi type. This function would exist in geocode-glib library, and will be using Maki POI Icons.
I will be writing another blog soon depicting more functionality I add.
01 May 2014
I have been selected for GSoC this year with GNOME.
My submitted Proposal is here and a very brief description for GNOME is here.
I will be working this summer on GNOME Maps.

My project will aim at displaying relevant Points of Interest (POI) near an area at the innermost zoom levels according to these mockups.
I will be mentored by Mattias Bengtsson and co-mentored by Jonas Danielsson.
Mattias was the one to start the GNOME Maps application and was also a GSoC'13 student who worked on Routing for Maps and Jonas is currently the co-maintainer for the Maps.
I will be publishing my changes at Code Repo and specifically the POI Branch.
I will also be working with two other students Dario Di Nucci and Damian Nohales who have also been selected for GSoC this year to work on GNOME Maps.
Dario will be working on Adding Routing support for via points and Damian on Foursquare and Facebook Check-In integration.
So, a lot of good stuff is coming up for GNOME Maps 3.14.
Jonas has depicted the same with examples through his blogpost.
I am really excited to be a part of the GNOME community.
