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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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

Code PYTHON : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code PYTHON : Sélectionner tout - Visualiser dans une fenêtre à part
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