import numpy as np import urllib2 as url import json as json import random_points_bbox import time def test(num): #first get some random points in the bbox aPoints = random_points_bbox.getPoints(num, -100.815, 46.789, -100.717, 46.84) #get the addresses sReverseUrl = "http://localhost/nominatim_old/reverse.php?format=json&lat=%f&lon=%f" aAddresses = [] for point in aPoints: response = url.urlopen(sReverseUrl % (point[1], point[0])) aAddresses.append(json.load(response)['address']) #print aAddresses # now we have all the addresses of the points in a list # lets forward geocode this list sOldUrl = "http://localhost/nominatim_old/search.php?format=json&city=%s&street=%s&addressdetails=1" sLineUrl = "http://localhost/nominatim/search.php?format=json&city=%s&street=%s&addressdetails=1" start_old = time.time() for address in aAddresses: if 'house_number' in address and 'road' in address: responseOld = url.urlopen(sOldUrl % (address['city'], address['house_number']+' '+address['road'])) #dataOld = json.load(responseOld) #print dataOld[0]['display_name'] elif 'road' in address: responseOld = url.urlopen(sOldUrl % (address['city'], address['road'])) #dataOld = json.load(responseOld) #print dataOld[0]['display_name'] end_old = time.time() for address in aAddresses: if 'house_number' in address and 'road' in address: responseLine = url.urlopen(sLineUrl % (address['city'], address['house_number']+' '+address['road'])) elif 'road' in address: responseLine = url.urlopen(sLineUrl % (address['city'], address['road'])) end_line = time.time() print "Seconds old search for %d elements: %f" % (num,end_old-start_old) print "Seconds line search for %d elements: %f" % (num,end_line-end_old) test(100) # 100 points: old: 7.11 sec, new: 7.47 sec # 1000 points: old: 65.69 sec, new: 66.96 sec