Bonjour,
Je suis pas trop calé en Python et j'ai repris un code.
Dans ce code, j'ai un variable qui contient un tableau
polygon = [(46.369437240469,6.2395477294922),(46.386727813704,6.2587738037109),(46.413008467458,6.2055587768555),(46.397620431385,6.1818695068359),(46.369437240469,6.2395477294922)]
Ce qui me trouble, c'est les parentèse.
Je pense que ces parentèses sont pour dissocier les virgules parce que sans ces virgules, il n'y aurait pas 5 index, mais 10.
ce qui me cause problème, c'est la suite.
Je stoke dans ma base de donnée des geofences sous le format json.
Quand j'extrait ces données, je les affiche et voici ce que ca donne
1 2 3 4 5
| for (id, devise_id, name, coordinates) in cursor:
print("ID:{}, Devise ID:{}, name:{}, coordinates:".format(
id, devise_id, name))
coords = json.loads(coordinates)
print coords[0] |
print coords[0], affiche
[[46.369437240469, 6.2395477294922], [46.386727813704, 6.2587738037109], [46.413008467458, 6.2055587768555], [46.397620431385, 6.1818695068359], [46.369437240469, 6.2395477294922]]
Le problème, c'est qu'au lieu de parentèse, j'ai des crochet.
Es-ce que dans mon premier cas, j'ai uen chaine de caractere dans mon array polygon, alors que dans mon deuxième cas, j'ai des array dans mon array coods?
Comment es-ce que je pourrais faire la conserion pour avoir ceci en partant de mon deuxième cas
[(46.369437240469, 6.2395477294922), (46.386727813704, 6.2587738037109), (46.413008467458, 6.2055587768555), (46.397620431385, 6.1818695068359), (46.369437240469, 6.2395477294922)] [/QUOTE]
Dans mon exercice, je dois passer polygon dans cette fonction
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
point_in_poly(point_x,point_y,polygon)
def point_in_poly(x,y,poly):
n = len(poly)
inside = False
p1x,p1y = poly[0]
for i in range(n+1):
p2x,p2y = poly[i % n]
if y > min(p1y,p2y):
if y <= max(p1y,p2y):
if x <= max(p1x,p2x):
if p1y != p2y:
xints = (y-p1y)*(p2x-p1x)/(p2y-p1y)+p1x
if p1x == p2x or x <= xints:
inside = not inside
p1x,p1y = p2x,p2y
return inside |
Es-ce coords passera aussi si je ne remplace pas les crochet par des parentèses?
Merci pour votre aide
Partager