#!/usr/bin/env python
import geopy
import sys
from getopt import getopt

def print_result(tuple):
    (location, point) = tuple
    print "%s: %.6f, %.6f\n".encode("utf-8") % (location, point[0],point[1])

def print_result_as_geotag(tuple):
    (location, point) = tuple
    print "%s: geo:lat=%.6f geo:lon=%.6f\n".encode("utf-8") % (location, point[0],point[1])

def print_result_as_wkt(tuple):
    (location, point) = tuple
    print "%s: 'POINT(%.6f %.6f)'\n".encode("utf-8") % (location,point[1],point[0])

def process_command_line(argv):
    if argv is None: argv = sys.argv[1:]
    opts, args = getopt(argv,"tw",longopts=["tag",'wkt'])
    return dict(opts),args

def main(argv=None):
    opts, args = process_command_line(argv)

    g = geopy.geocoders.Google()
    results = g.geocode(args[0], exactly_one = False)
    
    if "--tag" in opts or "-t" in opts:
        for r in results: print_result_as_geotag(r)
    elif "--wkt" in opts or "-w" in opts:
        for r in results: print_result_as_wkt(r)
    else:
        for r in results: print_result(r)

    return 0        # success

if __name__ == '__main__':
    sys.exit(main())