Belen Chavez
  • Introduction
  • About
  • Teaching
  • Data Blog
  • Calligraphy

Data Blog

Stata & Google Maps

12/13/2015

3 Comments

 
Not long ago, I was introduced to Google Charts. Ever since, I've been obsessed.  I now love using Stata and combining it with Google Charts. Step 1:  Clean data using Stata, Step 2: present data using Google Charts. Result: Easy to read and aesthetically pleasing visualizations for my website. Perfect.
Picture
Last month, I scraped Hayek's instagram data and made a paw-some map from the extracted latitude/longitude pairs using Google Charts and an .ado file that I came across thanks to Will, written by a former coworker of his called gmapmark which writes an .html file that creates a Google map. See said map in my dog blog: ​http://www.belenchavez.com/hayek/dog-friendly-sd

I decided to improve that program by incorporating the ability to have different markers for the data points by using web addresses that point to .png, .gif or .jpg images (like I did for the paw prints above). I've also added the ability to name your data points, instead of simply showing the latitude/longitude information. I've called that program gcmap short for Google Charts map. 

 For more on making map visualizations check out Google Charts.
gcmap.ado
File Size: 4 kb
File Type: ado
Download File

gcmap.sthlp
File Size: 2 kb
File Type: sthlp
Download File

Example 1:
​Do you own an iPhone? Do you use Photos? While I do use the Photos app on my phone,  I don't like it on my computer, so I keep a separate folder of uploaded pictures that Photos doesn't touch. Back to the point, one of the features that Photos has is the ability to make a map of your pictures if your pictures have location information. Did you know that we can also make such a map using Stata and Google maps? You didn't? Well, now you know :) 

Let's say I want to make a Google map from several pictures I have in a folder called Hayek. How do I do that? Well first, I will extract the latitude and longitude information using exiflatlon that I have thanks to Will's post on exif information. 
clear
version 12.1
cd Hayek
exiflatlon, dir() clear
* Exclude files missing lat/long data 
drop in 1/14
This makes the following dataset with latitude and latitude information from exif data in the pictures contained in the following folder: 
Picture
Picture
I type the following into Stata after downloading gcmap and placing it in my personal ado folder. In the following example, I want the name() of the data points to be the file names from above contained in the variable "File". The option  nor() contains the web location of the icon to display for the data points, which is short for normark(). The sel() option contains the web location of the icon I want to use for once a data point is selected on the map, it's short for selmark().
gcmap using "hayek_paws.html", latitude(Lat) longitude(Lon) name(File) /// 
        zoom(11) ///
        nor(http://www.belenchavez.com/uploads/5/6/9/3/56930511/9243470_orig.png) ///
        sel(http://www.belenchavez.com/uploads/5/6/9/3/56930511/5261019_orig.png) ///
        replace
 
Which makes the following map:
Note: I could have left the nor() and the sel() options empty and this would have made a map with the usual red balloon marker points. See example below.

Example 2: 
I can also make a Google map from the Google location history data I have for a couple of days back in October and use the time stamp as the name for each point. Here, I don't specify nor() or sel(), so the default map markers show up.
gcmap using "trip.html", lat(latitudeE7) long(longitudeE7) name(tstamp)

And there you have it! Now you too can use gcmap to make cool Google maps using Stata. Easy, right? 
3 Comments
George Orwell
4/19/2016 10:13:39 pm

Hi there, I found your ado-file very interesting. Unfortunately, when I try to use it for the Dominican Republic, I only get map markers for very urban areas. I wonder if -gcmap- restricts marking to areas where Google Maps has sufficiently detailed geodata, despite the fact that only lat & long variables are needed to place markers in a map.

Reply
William Blackmon
10/26/2017 08:16:34 am

Hi -- this is awesome, really useful! One question, is there an easy way for a novice like myself to quickly modify your ado file so it displays satellite rather than the standard google map view? Thanks so much!!

Reply
Belen
10/29/2017 07:02:41 pm

Hi William,

Thanks! Yes, you can change this in line 86 of the ado file: notice the mapType is 'styledMap'. That can be changed to 'hybrid' or 'satellite' to get the satellite view you're looking for with or without city names, respectively. For more details on these options within Google check out: https://developers.google.com/chart/interactive/docs/gallery/map

Best,

Belen

Reply

Your comment will be posted after it is approved.


Leave a Reply.

    Author

    My name is Belen, I like to play with data using Stata during work hours and in my free time.  I like blogging about my Fitbit, Stata, and random musings.

    If you like the Stata posts you see here, I guarantee you'll also like what's over at
    wmatsuoka.com


    Archives

    March 2018
    January 2018
    September 2016
    July 2016
    June 2016
    May 2016
    April 2016
    March 2016
    February 2016
    January 2016
    December 2015
    November 2015
    October 2015
    September 2015
    August 2015
    July 2015


    Categories

    All
    API
    Beer
    BJJ
    BreweryDB
    CURL
    Education Research
    Excel
    Fitbit
    Fitbit API
    Google
    Google Charts API
    Google Maps
    LinkedIn
    Love
    Parsing
    PPIC
    Putexcel
    Rant
    San Diego
    Stata
    Tableau
    Twitter API
    Valentine's Day


Proudly powered by Weebly
  • Introduction
  • About
  • Teaching
  • Data Blog
  • Calligraphy