def geocode_address_dotus(street, city, zip_code=''): address = "%s %s, %s" % (street, city, zip_code) try: us = geocoders.GeocoderDotUS() return list(us.geocode(address, exactly_one=False)) except Exception: return None
def parse_pdf_header(page_data): sc_data_agg = [] nums = range(5, 16) for num in nums: sc_data = page_data.cssselect('text')[num].text_content() match = re.search(r':', sc_data) if match: sc_data = sc_data.split(':', 1)[1].strip() sc_data_agg += [sc_data] data = dict(zip(variables, sc_data_agg)) if data['address'] != '': us = geocoders.GeocoderDotUS() place, (lat, lng) = us.geocode(data['address']) print "%s: %.5f, %.5f" % (place, lat, lng) data['lat'] = lat data['lng'] = lng save([], data) print data
def __init__(self): #initialize geocoders once: self.google = geocoders.GoogleV3() #doesn't look like yahoo supports free api any longer: #http://developer.yahoo.com/forum/General-Discussion-at-YDN/Yahoo-GeoCode-404-Not-Found/1362061375511-7faa66ba-191d-4593-ba63-0bb8f5d43c06 #yahoo = geocoders.Yahoo('PCqXY9bV34G8P7jzm_9JeuOfIviv37mvfyTvA62Ro_pBrwDtoIaiNLT_bqRVtETpb79.avb0LFV4U1fvgyz0bQlX_GoBA0s-') self.usgeo = geocoders.GeocoderDotUS() self.geonames = geocoders.GeoNames() self.bing = geocoders.Bing('AnFGlcOgRppf5ZSLF8wxXXN2_E29P-W9CMssWafE1RC9K9eXhcAL7nqzTmjwzMQD') self.openmq = geocoders.OpenMapQuest() self.mq = geocoders.MapQuest('Fmjtd%7Cluub2hu7nl%2C20%3Do5-9uzg14')
def get_address(start_index, count): g = geocoders.GeocoderDotUS() num = Restaurant.select().count() x = start_index while x < start_index + count and x <= num: r = Restaurant.selectBy(id = x).getOne() try: print "Geocoding %s located at %s" % (r.id, r.original) place, (lat, lng) = g.geocode(r.original + ', Chicago, IL') r.address = place r.lat = lat r.lng = lng except Exception, e: print "Error: %s" % e x = x + 1
def geocodeHS(geocoder, hs_id, lookup_hs_name): if geocoder == 'arcgis': geolocator = geocoders.ArcGIS() elif geocoder == 'baidu': geolocator = geocoders.baidu() elif geocoder == 'geocodefarm': print("Troubleshooting AttributeError: 'NoneType' object has no attribute 'replace'") exit(0) # geolocator = GeocodeFarm() elif geocoder == 'geocoderdotus': geolocator = geocoders.GeocoderDotUS() elif geocoder == 'geonames': geolocator = geocoders.geonames() elif geocoder == 'googlev3': geolocator = geocoders.GoogleV3() elif geocoder == 'nominatim': geolocator = geocoders.Nominatim() elif geocoder == 'openmapquest': geolocator = geocoders.OpenMapQuest() elif geocoder == 'yandex': print('Do not use. Russian site') exit(1) else: print('invalid geodocder specified') exit(1) try: return geolocator.geocode(lookup_hs_name, exactly_one=True, timeout=10) except exc.GeocoderQuotaExceeded: print(geocoder, ':\tGeocoderQuotaExceeded') exit(1) except exc.ConfigurationError: print(geocoder, ':\tConfigurationError') exit(1) except exc.GeocoderAuthenticationFailure: print(geocoder, ':\tGeocoderAuthenticationFailure') exit(1) except exc.GeocoderTimedOut: print(geocoder, ':\tGeocoderTimedOut') exit(1) except exc.GeocoderUnavailable: print(geocoder, ':\tGeocoderUnavailable') exit(1) except exc.GeocoderInsufficientPrivileges: print(geocoder, ':\tGeocderInsufficientPrivileges') except: return None
def setGeoCoders(gCoderStrings, configFilePtr): gCoders = {} config = ConfigParser.RawConfigParser() config.readfp(configFilePtr) for gCoderKey in gCoderStrings: if gCoderKey == "google": gCoders[gCoderKey] = geocoders.GoogleV3() elif gCoderKey == "geocoder.us": gCoders[gCoderKey] = geocoders.GeocoderDotUS() elif gCoderKey == "GeoNames": gCoders[gCoderKey] = geocoders.GeoNames() elif gCoderKey == "MediaWiki": gCoders[gCoderKey] = geocoders.MediaWiki() elif gCoderKey == "yahoo": gCoders[gCoderKey] = geocoders.Yahoo(config.get('API KEYS', gCoderKey)) elif gCoderKey == 'bing': gCoders[gCoderKey] = geocoders.Bing(config.get('API KEYS', gCoderKey)) return gCoders
# Pinball Machines in Seattle! import scraperwiki import lxml.html import lxml.etree import urllib import geopy from geopy import geocoders import string us = geocoders.GeocoderDotUS() gn = geocoders.GeoNames() html = scraperwiki.scrape("http://list.skill-shot.com/") root = lxml.html.fromstring(html) print len(root.cssselect("div [class='location']")) locations = root.cssselect("div [class='location']") for pinball in root.cssselect("div [class='location']"): venue = pinball.cssselect("a")[0].text address = pinball.cssselect("h4")[0].text table = pinball.cssselect("li")[0].text tables = [] for tables in pinball.cssselect("li"): tables.append(table.rstrip().split(',')) returned = us.geocode(address + ", Seattle, WA") if returned != None: place, (lat, lng) = returned
parse_errors += 1 continue try: shape = row[3] except: shape = '' try: duration = row[4] except: duration = '' # Geocoders y = geocoders.Yahoo(YAHOO_API_KEY) g = geocoders.Google(GOOGLE_API_KEY) us = geocoders.GeocoderDotUS() # Free, but didn't seem to work well when I tried it # Geocode locations try: # Try Google first place, (latitude, longitude) = list(g.geocode(location, exactly_one=False))[0] except: try: # Then Yahoo place, (latitude, longitude) = list(y.geocode(location, exactly_one=False))[0] except: # Can't find it latitude = '' longitude = '' # Build SQL INSERT statement
import scraperwiki html = scraperwiki.scrape( "http://www.urbanspoon.com/s/1?q=capitol+hill+coffee") import geopy from geopy import geocoders import lxml.html root = lxml.html.fromstring(html) oid = 0 for details in root.cssselect("div.restaurants li.restaurant"): name = details.cssselect("a.resto_name")[0].text.strip() address = details.cssselect("span.address")[0].text.strip() price = details.cssselect("span.price")[0].text.strip() returned = geocoders.GeocoderDotUS().geocode(address + ", Seattle, WA") if returned != None: place, (lat, lng) = returned else: (lat, lng) = ("0", "0") print lat print lng data = { 'oid': oid, 'name': name, 'address': address, 'price': price, 'lat': lat, 'long': lng, 'address': address,