def _geocode(self, pq): query = { 'q': pq.query, 'countrycodes': pq.country, # only takes ISO-2 'format': 'json' } if pq.viewbox is not None: query = dict( query, **{ 'viewbox': pq.viewbox.to_mapquest_str(), 'bounded': pq.bounded }) response_obj = self._get_json_obj(self._endpoint, query) returned_candidates = [] # this will be the list returned for r in response_obj: c = Candidate() c.locator = 'parcel' # we don't have one but this is the closest match c.entity = '%s.%s' % (r['class'], r['type']) # ex.: "place.house" c.match_addr = r[ 'display_name'] # ex. "Wolf Building, 340, N 12th St, Philadelphia, Philadelphia County, Pennsylvania, 19107, United States of America" #TODO: shorten w/ pieces c.x = float(r['lon']) # long, ex. -122.13 # cast to float in 1.3.4 c.y = float(r['lat']) # lat, ex. 47.64 # cast to float in 1.3.4 c.wkid = self._wkid c.geoservice = self.__class__.__name__ returned_candidates.append(c) return returned_candidates
def _geocode(self, pq): if pq.query.strip() == '': # No single line query string; use address elements: query = {'addressLine':pq.address, 'locality':pq.city, 'adminDistrict':pq.state, 'postalCode':pq.postal, 'countryRegion':pq.country} else: query = {'query':pq.query} if pq.viewbox is not None: query = dict(query, **{'umv':pq.viewbox.to_bing_str()}) if hasattr(pq, 'culture'): query = dict(query, c=pq.culture) if hasattr(pq, 'user_ip'): query = dict(query, uip=pq.user_ip) if hasattr(pq, 'user_lat') and hasattr(pq, 'user_lon'): query = dict(query, **{'ul':'%f,%f' % (pq.user_lat, pq.user_lon)}) addl_settings = {'key':self._settings['api_key']} query = dict(query, **addl_settings) response_obj = self._get_json_obj(self._endpoint, query) returned_candidates = [] # this will be the list returned for r in response_obj['resourceSets'][0]['resources']: c = Candidate() c.entity = r['entityType'] c.locator = r['geocodePoints'][0]['calculationMethod'] # ex. "Parcel" c.confidence = r['confidence'] # High|Medium|Low c.match_addr = r['name'] # ex. "1 Microsoft Way, Redmond, WA 98052" c.x = r['geocodePoints'][0]['coordinates'][1] # long, ex. -122.13 c.y = r['geocodePoints'][0]['coordinates'][0] # lat, ex. 47.64 c.wkid = 4326 c.geoservice = self.__class__.__name__ returned_candidates.append(c) return returned_candidates
def _geocode(self, pq): if pq.query.strip() == '': # No single line query string; use address elements: query = { 'addressLine': pq.address, 'locality': pq.city, 'adminDistrict': pq.state, 'postalCode': pq.postal, 'countryRegion': pq.country } else: query = {'query': pq.query} if pq.viewbox is not None: query = dict(query, **{'umv': pq.viewbox.to_bing_str()}) if hasattr(pq, 'culture'): query = dict(query, c=pq.culture) if hasattr(pq, 'user_ip'): query = dict(query, uip=pq.user_ip) if hasattr(pq, 'user_lat') and hasattr(pq, 'user_lon'): query = dict(query, **{'ul': '%f,%f' % (pq.user_lat, pq.user_lon)}) addl_settings = {'key': self._settings['api_key']} query = dict(query, **addl_settings) response_obj = self._get_json_obj(self._endpoint, query) returned_candidates = [] # this will be the list returned for r in response_obj['resourceSets'][0]['resources']: c = Candidate() c.entity = r['entityType'] c.locator = r['geocodePoints'][0][ 'calculationMethod'] # ex. "Parcel" c.confidence = r['confidence'] # High|Medium|Low c.match_addr = r[ 'name'] # ex. "1 Microsoft Way, Redmond, WA 98052" c.x = r['geocodePoints'][0]['coordinates'][1] # long, ex. -122.13 c.y = r['geocodePoints'][0]['coordinates'][0] # lat, ex. 47.64 c.wkid = 4326 c.geoservice = self.__class__.__name__ returned_candidates.append(c) return returned_candidates
def _geocode(self, pq): query = {'q':pq.query, 'countrycodes':pq.country, # only takes ISO-2 'format':'json'} if pq.viewbox is not None: query = dict(query, **{'viewbox':pq.viewbox.to_mapquest_str(), 'bounded':pq.bounded}) response_obj = self._get_json_obj(self._endpoint, query) returned_candidates = [] # this will be the list returned for r in response_obj: c = Candidate() c.locator = 'parcel' # we don't have one but this is the closest match c.entity = '%s.%s' % (r['class'], r['type']) # ex.: "place.house" c.match_addr = r['display_name'] # ex. "Wolf Building, 340, N 12th St, Philadelphia, Philadelphia County, Pennsylvania, 19107, United States of America" #TODO: shorten w/ pieces c.x = float(r['lon']) # long, ex. -122.13 # cast to float in 1.3.4 c.y = float(r['lat']) # lat, ex. 47.64 # cast to float in 1.3.4 c.wkid = self._wkid c.geoservice = self.__class__.__name__ returned_candidates.append(c) return returned_candidates