PROBLEME DE FOND

PROBLEME DE FOND - Programmation

Marsh Posté le 24-07-2001 à 09:46:26    

Voilà, j'ai un problème de rapidité pour un script. Ce script en question a pour but de dessiner une portion de la carte de france. Je possède dans une BDD une table qui contient les polygones et qui a pour champs (num id, nom , coord(polygone ex: 23,14,23,16,25,12,20,19,23,14),centrex,centrey,minx,miny,maxx,maxy
Le script récupère en paramètre un point et une largeur pour former un rectangle (une portion de la carte). Le script doit renvoyer les polygones appartenant à ce rectangle. Le problème est que les coordonnées contenue dans la BDD se rapporte à une carte de 1 mètre sur 1 mètre. Pour afficher juste la portion voulue, je dessine en mémoire la portion de carte et j'utilise la fonction image_copy_resized qui renvoie juste la portion voulue (pour éviter de recalculer toutes les coordonnées des polygones avant). Le problème c'est qu'après je souhaite faire des map areas ou d'autres traitements sur cette carte et il faut alors recalculer les points de chaque polygone pour leur appliquer une translation...ce qui demande un temps de réponse élevé.
Je voulais savoir si vous aviez une meilleure idée. Pourquoi pas changer la BDD. Est-ce que faire les calculs dans la requète serait plus rapide avec une table qui contient id1->x1,y1, id1->x2,y2... id2->x1,y1 ce qui donnerai "select ... X+23 , Y+15 from...".
Autre idées???
Merci

Reply

Marsh Posté le 24-07-2001 à 09:46:26   

Reply

Marsh Posté le 24-07-2001 à 11:02:57    

A mon avis, exploser les coordonées dans une autre table serait de toute façon utile pour pas mal de chose, genre trouver les voisines d'une commune. Donc fais-le, tu perds pas grand chose. Ensuite, tu peux tester ce qui est le plus rapide.
 
Pour ton problème, je pense pas que ce soit plus rapide que de traiter la chaîne coords pour y faire la translation.
Remarque, tout dépends comment tu t'y prends.
Idée :
Avec explode, tu transforme la chaîne en tableau.
Faire la translation
Avec implode, tu récupère ta chaîne.
 
Mais, t'as surement fais comme çà non ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 24-07-2001 à 11:59:51    

Ouais, j'ai fait ça avec implode et explode mais je trouve ça assez lourd! J'aimerais bien trouver un moyen de rendre ça plus efficace ou plus simple, je sais pas mais pour que ce soit plus rapide.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed