def _parse_result(self, place): location = util.get_first_text(place, ['address', 'name']) or None points = place.getElementsByTagName('Point') point = points and points[0] or None coords = util.get_first_text(point, 'coordinates') or None if coords: longitude, latitude = [float(f) for f in coords.split(',')[:2]] else: latitude = longitude = None return (location, (latitude, longitude))
def parse_place(place): location = util.get_first_text(place, ["address", "name"]) or None points = place.getElementsByTagName("Point") point = points and points[0] or None coords = util.get_first_text(point, "coordinates") or None if coords: longitude, latitude = [float(f) for f in coords.split(",")[:2]] else: latitude = longitude = None _, (latitude, longitude) = self.geocode(location) return (location, (latitude, longitude))
def parse_place(place): location = util.get_first_text(place, ['address', 'name']) or None points = place.getElementsByTagName('Point') point = points and points[0] or None coords = util.get_first_text(point, 'coordinates') or None if coords: longitude, latitude = [float(f) for f in coords.split(',')[:2]] else: latitude = longitude = None _, (latitude, longitude) = self.geocode(location) return (location, (latitude, longitude))
def parse_code(code): place_name = util.get_first_text(code, 'name') country_code = util.get_first_text(code, 'countryCode') postal_code = util.get_first_text(code, 'postalcode') place = util.join_filter(", ", [place_name, country_code]) location = util.join_filter(" ", [place, postal_code]) or None latitude = util.get_first_text(code, 'lat') or None longitude = util.get_first_text(code, 'lng') or None latitude = latitude and float(latitude) longitude = longitude and float(longitude) return (location, (latitude, longitude))
def parse_place(place): location = util.get_first_text(place, ['name', 'formatted_address']) or None points = place.getElementsByTagName('geometry') point = points and points[0] or None coords = util.get_first_text(point, 'location') or None if coords: latitude = util.get_first_text(coords, 'lat') longitude = util.get_first_text(coords, 'lng') else: latitude = longitude = None _, (latitude, longitude) = self.geocode(location) return (location, (latitude, longitude))
def parse_xml(self, page, exactly_one=True): """Parse a location name, latitude, and longitude from an XML response. """ if not isinstance(page, basestring): page = util.decode_page(page) try: doc = xml.dom.minidom.parseString(page) except ExpatError: places = [] doc = None else: places = doc.getElementsByTagName('Placemark') if len(places) == 0 and doc is not None: # Got empty result. Parse out the status code and raise an error if necessary. status = doc.getElementsByTagName("Status") status_code = int(util.get_first_text(status[0], 'code')) self.check_status_code(status_code) if exactly_one and len(places) != 1: raise ValueError("Didn't find exactly one result! " \ "(Found %d.)" % len(places)) if exactly_one: return self._parse_result(places[0]) else: return [self._parse_result(place) for place in places]
def parse_place(place, return_accuracy=False): location = util.get_first_text(place, ['address', 'name']) or None addressdetails = place.getElementsByTagName("AddressDetails")[0] accuracy = addressdetails.attributes['Accuracy'].value points = place.getElementsByTagName('Point') point = points and points[0] or None coords = util.get_first_text(point, 'coordinates') or None if coords: longitude, latitude = [float(f) for f in coords.split(',')[:2]] else: latitude = longitude = None _, (latitude, longitude) = self.geocode(location) if return_accuracy: return (location, (latitude, longitude), accuracy) else: return (location, (latitude, longitude))
def parse_result(result): strip = ", \n" address = util.get_first_text(result, 'Address', strip) city = util.get_first_text(result, 'City', strip) state = util.get_first_text(result, 'State', strip) zip = util.get_first_text(result, 'Zip', strip) country = util.get_first_text(result, 'Country', strip) city_state = util.join_filter(", ", [city, state]) place = util.join_filter(" ", [city_state, zip]) location = util.join_filter(", ", [address, place, country]) latitude = float(util.get_first_text(result, 'Latitude')) or None longitude = float(util.get_first_text(result, 'Longitude')) or None # TODO use Point/Location object API in 0.95 #if latitude and longitude: # point = Point(latitude, longitude) #else: # point = Non #return Location(location, point, { # 'Address': address, # 'City': city, # 'State': state, # 'Zip': zip, # 'Country': country #}) return address, (latitude, longitude)
def parse_result(result): strip = ", \n" line1= util.get_first_text(result, 'line1', strip) line2 = util.get_first_text(result, 'line2', strip) line3 = util.get_first_text(result, 'line3', strip) line4 = util.get_first_text(result, 'line4', strip) address = util.join_filter(", ", [line1, line2, line3, line4]) city = util.get_first_text(result, 'city', strip) state = util.get_first_text(result, 'state', strip) zip = util.get_first_text(result, 'uzip', strip) country = util.get_first_text(result, 'country', strip) city_state = util.join_filter(", ", [city, state]) place = util.join_filter(" ", [city_state, zip]) location = util.join_filter(", ", [address, place, country]) latitude = util.get_first_text(result, 'latitude') or None longitude = util.get_first_text(result, 'longitude') or None if latitude and longitude: point = Point(latitude, longitude) else: point = None return (location, (latitude, longitude))
def parse_xml(self, page, exactly_one=True, return_accuracy=False): """Parse a location name, latitude, and longitude from an XML response. """ if not isinstance(page, basestring): page = util.decode_page(page) try: doc = xml.dom.minidom.parseString(page) except ExpatError: places = [] else: places = doc.getElementsByTagName('Placemark') if len(places) == 0: # Got empty result. Parse out the status code and raise an error if necessary. status = doc.getElementsByTagName("Status") status_code = int(util.get_first_text(status[0], 'code')) self.check_status_code(status_code) if exactly_one and len(places) != 1: raise ValueError("Didn't find exactly one placemark! " \ "(Found %d.)" % len(places)) def parse_place(place, return_accuracy=False): location = util.get_first_text(place, ['address', 'name']) or None addressdetails = place.getElementsByTagName("AddressDetails")[0] accuracy = addressdetails.attributes['Accuracy'].value points = place.getElementsByTagName('Point') point = points and points[0] or None coords = util.get_first_text(point, 'coordinates') or None if coords: longitude, latitude = [float(f) for f in coords.split(',')[:2]] else: latitude = longitude = None _, (latitude, longitude) = self.geocode(location) if return_accuracy: return (location, (latitude, longitude), accuracy) else: return (location, (latitude, longitude)) if exactly_one: return parse_place(places[0], return_accuracy) else: return (parse_place(place, return_accuracy) for place in places)
def parse_xml(self, page, exactly_one=True): """Parse a location name, latitude, and longitude from an XML response. """ if not isinstance(page, basestring): page = util.decode_page(page) try: doc = xml.dom.minidom.parseString(page) except ExpatError: places = [] doc = None else: places = doc.getElementsByTagName('results') if len(places) == 0 and doc is not None: # Got empty result. Parse out the status code and raise an error if necessary. status = doc.getElementsByTagName("results") status_code = int(util.get_first_text(status, 'status')) self.check_status_code(status_code) if exactly_one and len(places) != 1: raise ValueError("Didn't find exactly one placemark! " \ "(Found %d.)" % len(places)) def parse_place(place): location = util.get_first_text(place, ['name', 'formatted_address']) or None points = place.getElementsByTagName('geometry') point = points and points[0] or None coords = util.get_first_text(point, 'location') or None if coords: latitude = util.get_first_text(coords, 'lat') longitude = util.get_first_text(coords, 'lng') else: latitude = longitude = None _, (latitude, longitude) = self.geocode(location) return (location, (latitude, longitude)) if exactly_one: return parse_place(places[0]) else: return [parse_place(place) for place in places]
def parse_xml(self, page, exactly_one=True, reverse=False): """Parse a location name, latitude, and longitude from an XML response. """ if not isinstance(page, basestring): page = util.decode_page(page) try: doc = xml.dom.minidom.parseString(page) except ExpatError: places = [] doc = None else: places = doc.getElementsByTagName('Placemark') if len(places) == 0 and doc is not None: # Got empty result. Parse out the status code and raise an error if necessary. status = doc.getElementsByTagName("Status") status_code = int(util.get_first_text(status[0], 'code')) self.check_status_code(status_code) if (exactly_one and len(places) != 1) and (not reverse): raise ValueError("Didn't find exactly one placemark! " \ "(Found %d.)" % len(places)) def parse_place(place): location = util.get_first_text(place, ['address', 'name']) or None points = place.getElementsByTagName('Point') point = points and points[0] or None coords = util.get_first_text(point, 'coordinates') or None if coords: longitude, latitude = [float(f) for f in coords.split(',')[:2]] else: latitude = longitude = None _, (latitude, longitude) = self.geocode(location) return (location, (latitude, longitude)) if exactly_one: return parse_place(places[0]) else: return [parse_place(place) for place in places]
def parse_xml(self, page, exactly_one=True): """Parse a location name, latitude, and longitude from an XML response. """ if not isinstance(page, basestring): page = util.decode_page(page) try: doc = xml.dom.minidom.parseString(page) except ExpatError: places = [] doc = None else: places = doc.getElementsByTagName("Placemark") if len(places) == 0 and doc is not None: # Got empty result. Parse out the status code and raise an error if necessary. status = doc.getElementsByTagName("Status") status_code = int(util.get_first_text(status[0], "code")) self.check_status_code(status_code) if exactly_one and len(places) != 1: raise ValueError("Didn't find exactly one placemark! " "(Found %d.)" % len(places)) def parse_place(place): location = util.get_first_text(place, ["address", "name"]) or None points = place.getElementsByTagName("Point") point = points and points[0] or None coords = util.get_first_text(point, "coordinates") or None if coords: longitude, latitude = [float(f) for f in coords.split(",")[:2]] else: latitude = longitude = None _, (latitude, longitude) = self.geocode(location) return (location, (latitude, longitude)) if exactly_one: return parse_place(places[0]) else: return (parse_place(place) for place in places)
def parse_result(result): strip = ", \n" address = util.get_first_text(result, 'Address', strip) city = util.get_first_text(result, 'City', strip) state = util.get_first_text(result, 'State', strip) zip = util.get_first_text(result, 'Zip', strip) country = util.get_first_text(result, 'Country', strip) city_state = util.join_filter(", ", [city, state]) place = util.join_filter(" ", [city_state, zip]) location = util.join_filter(", ", [address, place, country]) latitude = util.get_first_text(result, 'Latitude') or None longitude = util.get_first_text(result, 'Longitude') or None if latitude and longitude: point = Point(latitude, longitude) else: point = Non return Location(location, point, { 'Address': address, 'City': city, 'State': state, 'Zip': zip, 'Country': country })
def get_thing_label(self, thing): return util.get_first_text(thing, 'rdfs:label')