Bonjour,
Je developpe un logiciel de cartographie avec pour base de données une base MySQL 5.
Pour afficher mes données sur la carte je recupère donc les données de type Geometry et doit les convertir pour avoir 2 beaux int me servant de coordonnées pour un pixel.
C'est là qu'est mon probleme, j'aimerais d'abord savoir si quelqu'un connaitrait une librairie genre PostGis (qui est que pour postgres) mais pour MySQL (j'ai trouvé MyGIS en cherchant un peu mais ça a l'air d'etre en version préalpha et à peine 2 pages de reponses sur google)?
En attendant je procede de la sorte:
je recupere les données Geometry au format Text, ce qui me donne un truc du genre:
je fais ensuite un matches() pour trouver de quel type le resultat est (MULTILINESTRING,POLYGONE, etc...)MULTILINESTRING((2324321.32434 34542.34354,34345.23123 23123123.334))
Ensuite je parse en decoupant tout ce qui est entre parenthèses à l'aide de split("(\\()").
Ce qui me retourne un tableau de String avec le type, un null, la premiere LINE, la deuxieme LINE, etc...
Je parse ensuite ces lignes toujours avec split("(,)").
J'ai maintenant des points que je met dans un vecteur, lui meme que je met dans un autre vecteur qui contient des lignes.
Je suis toujours ensuite obligé de split() pour séparer les x des y et tout ça sans parler du cast en float puis en int.
Vous l'aurez compris, tout cela est extremement lent, 20 secondes pour afficher 20 000 lignes, ce qui est inacceptable pour mon programme.
Donc si vous pouvez me dire ou je me trompe? ou je fais des trucs inutile? etc...
Merci beaucoup de m'avoir lu
Partager