def recherche_voisin(support, distance):
    data_sup = d_les_supports[support]
    dept_limitrof = limit[data_sup[1][1]]
    dept_limitrof.append(data_sup[1][1])
    geo_gsmr = data_sup[0]
    lat1, lon1 = geo_gsmr
    liste = []
    origin = Point(lat1, lon1)
    limit0 = VincentyDistance(kilometers=distance).destination(
        origin, 0).format_decimal()
    limit90 = VincentyDistance(kilometers=distance).destination(
        origin, 90).format_decimal()
    lat0, lon0 = limit0.split(', ')
    lat90, lon90 = limit90.split(', ')
    dif0 = float(lat0) - lat1
    dif90 = float(lon90) - lon1
    latmini = lat1 - dif0
    latmaxi = float(lat0)
    lonmini = lon1 - dif90
    lonmaxi = float(lon90)
    for dept in set(dept_limitrof):
        for support_P in d_dept_geo[dept]:
            if latmini <= support_P[1] <= latmaxi:
                if lonmini <= support_P[2] <= lonmaxi:
                    if support_P[0] in l_support_GsmP_seuls:
                        liste.append(support_P[0])
    return liste
Example #2
0
def grid_point_coordinate(a, b, x, y):
    c = VincentyDistance(meters=int(a)).destination(Point(x, y),
                                                    float(b)).format_decimal()
    c = c.split(',')
    return c