Haris Usmani

11 Feb 2014


I chose TIleMill (by Mapbox) to accomplish this task- it’s the perfect tool to create beautiful interactive maps in a matter of minutes- turns out that’s not exactly the case. I feel TileMill, even though being the ideal map tool, is still in its development phase. Its application is not stable, and even the examples that came with TileMill tend to crash when the user interacts with it (simple zoom in/out).

Nevertheless, I set out to use TileMill and achieve at least the minimum of plotting these points on top of a world map example. True to the data set provided, I cleaned it up and stored it as a .csv file- kept hotel name, latitude, longitude; removed duplicates/blank values etc. I was able to all this in Excel, which also helped to verify the data although its encouraged to do this using Python or R etc which can handle even bigger data-sets. The problem began when I tried to import this in TileMill- the .csv import would bring it to its knees every time. I figured the next step should be to import the points in parts, so it gradually fills up its memory with those 499000 points. I broke the .csv into aprox. 14 parts, each file about with about 35k points. This way, TileMill accepted 2 sets of data of 70k points but then my RAM peaked and the software crashed. [I’m using Windows 8.1 x64]

crash1_up Next, I tried importing points as a SQLite database- downloaded some tools online, made a database but had a hard time importing it into TileMill- apparently TileMill requires a very specific db format to support SQLite. Later, I learned from Maya that the ideal way to get more points in TIleMill is to convert the CSV to a shapefile using QGIS.

Solution: For the scope of this assignment, I restricted myself to data points in South-Asian countries only. I used “Geography Class” as a base example from TileMill and plotted my points along with dynamically labeling each Hotel point with its Name, Location and URL.

– Zooming (by default in TileMill)
– Point Size determined by Hotel Stars
– Hover over Point to learn about Hotel Name, Location and URL