A1. Third party functions

lat-lng to distance

Reference: http://gis.stackexchange.com/questions/163785/using-python-to-compute-the-distance-between-coordinates-lat-long-using-havers

import math 

def distance_on_unit_sphere(lat1, long1, lat2, long2):
       # Convert latitude and longitude to 
       # spherical coordinates in radians.
       degrees_to_radians = math.pi/180.0
       
       # phi = 90 - latitude
       phi1 = (90.0 - lat1)*degrees_to_radians
       phi2 = (90.0 - lat2)*degrees_to_radians
       
       # theta = longitude
       theta1 = long1*degrees_to_radians
       theta2 = long2*degrees_to_radians
       
       # Compute spherical distance from spherical coordinates.
       
       # For two locations in spherical coordinates 
       # (1, theta, phi) and (1, theta, phi)
       # cosine( arc length ) = 
       #    sin phi sin phi' cos(theta-theta') + cos phi cos phi'
       # distance = rho * arc length
       
       cos = (math.sin(phi1)*math.sin(phi2)*math.cos(theta1 - theta2) + 
              math.cos(phi1)*math.cos(phi2))
       arc = math.acos( cos )
       # Remember to multiply arc by the radius of the earth 
       # in your favorite set of units to get length.
       return arc*6373
print distance_on_unit_sphere(22.9979057, 120.22208048, 22.99774354, 120.22210156)

IP and Location Lookup

Using py 2.7 (Deprecated)

import json
import urllib2

def location_lookup():
  try:
    return json.load(urllib2.urlopen('http://ipinfo.io/json'))
  except urllib2.HTTPError:
    return False

location = location_lookup()

# print city and latitude/longitude
print location['city'] + ' (' + location['loc'] + ')'

Last updated