예제 #1
0
def normalize_address(request):
    if 'address' in request.REQUEST:
        address = request.REQUEST['address']   
        normaddy = Normalize(address)
        dat = normaddy.dict()
    else:
        dat = ['error', 'address is a required parameter']
    response = HttpResponse()
    response.content_type = 'text/json'
    response.write(json.dumps(dat))
    return response
예제 #2
0
def site_search(request):
    sites = []
    if 'address' in request.REQUEST:
        addr = request.REQUEST['address']   
        normalize = Normalize(addr)
        normaddy = normalize.toDict()
        addy = normalize.toAddy()
        addy_map = {
            'address': 'addr_label',
            'predirabbrev' : 'prefix_dir',
            'streetname' : 'name',
            'streettypeabbrev' : 'suffix_typ',
            'postdirabbrev' : 'suffix_dir',
            'internal' : '',
            'location' : 'name_1',
            'stateabbrev' : 'state',
            'zip' : 'zip',
            'parsed' : '',
        }
        query = "select * from site"
        where = ""
        valid = False
        for field, value in normaddy.items():
            if(field.lower() != 'id' and field.lower() != 'fid' and field in addy_map):            
                if value and value != None and value != 'None' and addy_map[field]:
                    if valid: 
                        where += ' and'
                    else:
                        valid = True
                    if type(value) == str or type(value) == unicode: 
                        value = value.upper()
                    where += " {0} = '{1}'".format(addy_map[field], value ) 
        query += ' where' + where # + ' order by name, address'
        if valid:
            [sites.append(site) for site in Site.objects.raw(query)]
        import operator
        ordered = sorted(sites, key=operator.attrgetter('addr_label'))
        geocoder = Geocoder(addr)
        georecords = geocoder.toAddy()
        return render_to_response('site_list.html', 
            { 'sites': ordered, 'query' : query, 'addy' : addy, 'georecords' : georecords }, 
            context_instance=RequestContext(request))