Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/katzrkool/maps
Browse files Browse the repository at this point in the history
  • Loading branch information
lkellar committed Jan 22, 2020
2 parents 5d01943 + 3fea763 commit f125ff9
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 10 deletions.
2 changes: 1 addition & 1 deletion maps/scraper/geocoder/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,4 @@ def geocode_lookup(addresses: [str]) -> dict:
# Fetch job results
job_manager.fetch_results()

return job_manager.address_to_coord
return job_manager.address_to_geocode
11 changes: 6 additions & 5 deletions maps/scraper/geocoder/jobmanager.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,15 @@ def __init__(self, row):
values = list(filter(None, values))

# Set properties in order (result follows heading schema)
self.id, self.address, self.city, self.state, self.country, self.lat, self.lon = values
# Zipcode will be inaccurate most likely, pls ignore it
self.id, self.address, self.zipcode, self.state, self.country, self.lat, self.lon, self.city = values

self.coord = (self.lat, self.lon)


def format_address(id_, address, city='Springdale', state='AR', country='US'):
def format_address(id_, address, zipcode=72764, state='AR', country='US'):
""" Format geocode request body according to our Geocode Dataflow heading """
return f'{id_}|{address}|{city}|{state}|{country}'
return f'{id_}|{address}|{zipcode}|{state}|{country}'


# ------------------------------ JOB MANAGER ------------------------------
Expand All @@ -60,7 +61,7 @@ def __init__(self):
self.completed_url = None

self.results: [Result] = []
self.address_to_coord = {}
self.address_to_geocode = {}

def create(self, addresses):
"""
Expand Down Expand Up @@ -129,5 +130,5 @@ def fetch_results(self):
for row in rows:
result = Result(row)
self.results.append(result)
self.address_to_coord[result.address] = result.coord
self.address_to_geocode[result.address] = {'coord': result.coord, 'city': result.city}

5 changes: 3 additions & 2 deletions maps/scraper/geocoder/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,14 @@ class GeocodeDataflow:
# Define input fields for our geo-coding request
'Id',
'GeocodeRequest/Address/AddressLine', # address
'GeocodeRequest/Address/Locality', # city
'GeocodeRequest/Address/PostalCode', # Zip Code
'GeocodeRequest/Address/AdminDistrict', # state
'GeocodeRequest/Address/CountryRegion', # country

# Define Response fields latitude and longitude
'GeocodeResponse/Point/Latitude',
'GeocodeResponse/Point/Longitude'
'GeocodeResponse/Point/Longitude',
'GeocodeResponse/Address/Locality' # City
)
# Generate our schema for geo-coding requests and responses to the Dataflow API
HEADING = 'Bing Spatial Data Services, 2.0\n' + '|'.join(FIELDS)
Expand Down
6 changes: 4 additions & 2 deletions maps/scraper/springdale.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,16 @@

def geocode_calls(calls):
addresses = [call.address for call in calls]
address_to_coord = geocode_lookup(addresses)
address_to_geocode = geocode_lookup(addresses)

for call in calls:
# Lookup the coordinates for the address from our response
lat, lon = address_to_coord[call.address]
result = address_to_geocode[call.address]
lat, lon = result['coord']

call.lat = lat
call.lon = lon
call.city = result['city']

return calls

Expand Down

0 comments on commit f125ff9

Please sign in to comment.