def parse_sucursal(self, comercio): sucursal = {} sucursal['lon'] = comercio['longitud'] sucursal['lat'] = comercio['latitud'] inferido = donde_queda(sucursal['lat'], sucursal['lon']) sucursal['ciudad'] = comercio['ciudad_o_barrio'] # sucursal['ciudad_inferida'] = inferido['ciudad'].name sucursal['ciudad_relacionada_id'] = inferido['ciudad'].id sucursal['direccion'] = "%s %s" % (comercio['calle'], comercio['numero']) # sucursal['direccion_inferida'] = inferido['direccion'] cadena = inferir_cadena(comercio['nombre_fantasia']) if cadena: sucursal['cadena_nombre'] = cadena[0] sucursal['cadena_id'] = cadena[1] sucursal['nombre'] = "%s %s" % (comercio['nombre_fantasia'], comercio['codigo_sucursal']) sucursal['provincia'] = comercio['xprovincia'] sucursal['telefono'] = comercio['telefono'] return sucursal
def parse_sucursal(self, feature): sucursal = {} sucursal['lon'], sucursal['lat'] = feature['geometry']['coordinates'] sucursal.update(donde_queda(sucursal['lat'], sucursal['lon'])) props = feature['properties'] sucursal['nombre'] = props['name'] sucursal['telefono'] = props.get('phone', None) sucursal['url'] = props.get('website', None) cadena = inferir_cadena(sucursal['nombre']) if cadena: sucursal['cadena_id'] = cadena[1] return sucursal
def limpiar(self, place, ciudad): """ devuelve un diccionario con las siguientes claves:: nombre, cadena, direccion, lon, lat, ciudad_segun_google, related_city_id, telefono, url, cadena_nombre, cadena_id """ place.get_details() suc = {} # Place a veces no trae la direccion # y quedará (ciudad, provincia), en vez de (direccion, ciudad) dire = place.formatted_address.split(',') hay = len(dire) == 4 suc['direccion'] = dire[0].strip() if hay else '' suc['ciudad'] = dire[1].strip() if hay else dire[0].strip() suc['provincia'] = dire[2].strip() if hay else dire[1].strip() suc['provincia'] = suc['provincia'].strip(' Province') # como google place busca un radio a partir de una ciudad, no necesariamente # el supermercado encontrado **es** de esa ciudad. # La ciudad_relacionada debe tomarse sólo como referencia. # porque la inferencia puede fallar. suc['ciudad_relacionada_id'] = ciudad.id ciudad_data = inferir_ciudad(suc['ciudad'], suc['provincia']) if ciudad_data: (suc['ciudad'], suc['provincia'], suc['ciudad_relacionada_id']) = ciudad_data suc['nombre'] = place.name cadena = inferir_cadena(place.name) if cadena: suc['cadena_nombre'], suc['cadena_id'] = cadena suc['lon'] = place.geo_location['lng'] suc['lat'] = place.geo_location['lat'] if suc['direccion'] == '': # Se deberia hacer un reverse lookup a partir de la localizacion # via la API de google maps. dire = reverse_geocode(suc['lat'], suc['lon']) if dire: suc['direccion'] = dire.split(',')[0] suc['telefono'] = place.local_phone_number suc['url'] = place.website return suc