Partage
  • Partager sur Facebook
  • Partager sur Twitter

Faire le meilleur choix, conseil...

    18 mai 2018 à 9:06:12

    Bonjour à tous,

    J'ai un petit projet dans le cadre universitaire dans lequel je vais utiliser pratiquement que des données issues de l'Open data via le site du gourvernement c'est une mine d'or au passage : https://www.data.gouv.fr/fr/

    Cependant les données sont sous format soit : CVJ, JSON, txt... en soit c'est pas le format le soucis c'est le nombre d'entrées...

    Rien que en concentrant mon projet sur ma département j'ai 234 374 entrées (ici ce sont les BAN : adresses postales)... 

    D'après vous quel est le meilleur choix de base de données, j'ai toujours utilisé que MySQL, techniquement ça peut contenir combien d'entrées... Enfin voila une question purement technique :)

    En vous remerciant,

    Alexandre Bouras

    • Partager sur Facebook
    • Partager sur Twitter
      18 mai 2018 à 10:13:03

      Bonjour,

      AlexCode a écrit:

      234 374 entrées

      Ce n'est pas énorme ... Quel que soit le système de gestion que tu vas choisir il devrait pouvoir encaisser aisément cette volumétrie ... C'est après que cela se complique ...

      La question ne se pose pas simplement sur le volume mais surtout sur le type d'utilisation des données ...

      Que vas-tu faire avec ces données ? Juste de la consultation ? Des ajouts ? Des mises à jour ?

      A quelle fréquence vas-tu agir dessus ? Plusieurs fois par seconde, par minute, par heure ?

      Combien de sollicitations simultanées vont avoir lieu sur les données ?

      Du coup il va falloir détailler ton besoin pour essayer de déterminer la meilleure solution technique ...

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        18 mai 2018 à 11:19:02

        Super, merci pour ta réponse @Benzouye

        Le projet que l'on souhaite mettre en place est majoritairement basé sur l'utilisation d'une carte interactive basé sur le système Leaflet : https://leafletjs.com/

        On souhaite mettre à disposition une cartographie de points d'intérêts dans un rayon de X mètres. La personne y accédera soit en permettant une géolocalisation automatique par le navigateur, soit en renseignant son adresse, ville...

        C'est cette deuxième solution qui demande que l'on récupère les données : BAN (base adresse nationnale) et les villes avec la latitude et longitude. En gros un google maps. On souhaiterait être au maximum indépendant d'API d'où l'Open Data et la gestion de BDD...

        Donc ça serait de la consultation essentiellement avec possiblement des entrées et mises à jour des coordonnées des points d'intérêts

        La fréquence sera évidemment en fonction de la fréquence de fréquentation du site et la sollicitations simultanées également. On souhaite se centrer sur notre département dans un premier temps et voir les retours des gens

        AlexCode

        • Partager sur Facebook
        • Partager sur Twitter
          18 mai 2018 à 12:21:50

          Avec Leaflet vous allez utiliser OpenStreetMap je suppose ...

          AlexCode a écrit:

          On souhaiterait être au maximum indépendant d'API d'où l'Open Data et la gestion de BDD...

          Du coup la base de données ne devrait concerner que les points d'intérêt que vous voulez afficher ... Je ne vois pas le rapport avec la BAN ? Elle est déjà présente dans OSM il me semble ?

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            18 mai 2018 à 13:04:06

            MySQL n'est pas forcément le meilleur choix pour des requêtes géographique.

            Ce type de requête est en effet, assez lourd, car celà oblige le SGBDR à lire beaucoup de données pour sortir un résultat. En temps normal, les index font l'affaire. Mais quand on cherche sur des critères de calculs (comme "le plus proche d'un point géographique"), les choses se complexifient.

            PostgreSQL emble avoir de meilleurs fonction pour les opérations géographique. Je ne les ai jamais utilisé, mais peut être devraient tu y jeter un oeil.

            • Partager sur Facebook
            • Partager sur Twitter
              18 mai 2018 à 13:18:46

              Sebajuste a écrit:

              PostgreSQL semble avoir de meilleurs fonction pour les opérations géographique

              PostGIS

              • Partager sur Facebook
              • Partager sur Twitter
              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                18 mai 2018 à 14:38:29

                Effectivement la question ne se pose pas @Benzouye... Désolé

                j'ai trouvé ce "tuto" plus que maché sur le site de l'IGN : https://geoservices.ign.fr/documentation/exemples/leaflet-control-search.html

                C'est bien ce genre d'intégration que tu sous entend ?

                Ou encore via le Geocoder comme dans ce github : https://github.com/perliedman/leaflet-control-geocoder

                @Sebajuste merci à toi. Du coup ppur ce qui est de PostGIS que je viens de découvrir c'est OSM qui va le gérer directement via ses services?

                Après en soit en ce qui concerne nos points d'intérêts, on va en si on envisage à la France entière plus de 30 000... dans cette vision des choses ça irait un MySQL ?

                En vous remerciant tous les deux

                • Partager sur Facebook
                • Partager sur Twitter
                  18 mai 2018 à 15:33:13

                  Contrairement à MySQL, PostGIS va te permettre de gérer des données géographiques, ici des points, et dispose de fonctions performantes pour retrouver des éléments en fonction de critères géographiques ( distances, intersection, recouvrement, etc. ).

                  Ensuite, concernant la structuration de ton projet.

                  Leaflet est une bibliothèque JavaScript permettant d'exploiter des tuiles cartographiques, il y en a d'autres, notamment OpenLayers et API Google Maps.

                  Ces tuiles doivent être récupérées ailleurs. OSM en propose des libres, mais il y en a plein d'autres dont géoportail.

                  Des fonctions de géocodage (retrouver un lieu par son adresse par exemple) sont disponibles avec la plupart des bibliothèques de carto, directement ou indirectement (exemple du perliedman geocoder).

                  Pour ton projet, il va falloir :

                  • une bibliothèque de cartographie (tu as apparemment choisi LeafLet)
                  • un jeu de tuiles (tu as apparemment choisi OSM)
                  • une base de données géographique pour stocker tes propres points d'intérêts (je te conseille PostGIS) avec leurs données spécifiques
                  • un programme liant tout ceci ... et là cela va encore dépendre de ce que tu veux faire (appli web, mobile, desktop, etc.)

                  Ton programme va rechercher dans PostGIS des points à afficher, puis demander à LeafLet d'afficher une carte issue de OSM avec ces points positionnés et "stylisés".

                  -
                  Edité par Benzouye 18 mai 2018 à 15:35:22

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                    18 mai 2018 à 16:06:20

                    Benzouye a écrit:

                    Contrairement à MySQL, PostGIS va te permettre de gérer des données géographiques, ici des points, et dispose de fonctions performantes pour retrouver des éléments en fonction de critères géographiques ( distances, intersection, recouvrement, etc. ).

                    Ensuite, concernant la structuration de ton projet.

                    Leaflet est une bibliothèque JavaScript permettant d'exploiter des tuiles cartographiques, il y en a d'autres, notamment OpenLayers et API Google Maps.

                    Ces tuiles doivent être récupérées ailleurs. OSM en propose des libres, mais il y en a plein d'autres dont géoportail.

                    Des fonctions de géocodage (retrouver un lieu par son adresse par exemple) sont disponibles avec la plupart des bibliothèques de carto, directement ou indirectement (exemple du perliedman geocoder).

                    Pour ton projet, il va falloir :

                    • une bibliothèque de cartographie (tu as apparemment choisi LeafLet)
                    • un jeu de tuiles (tu as apparemment choisi OSM)
                    • une base de données géographique pour stocker tes propres points d'intérêts (je te conseille PostGIS) avec leurs données spécifiques
                    • un programme liant tout ceci ... et là cela va encore dépendre de ce que tu veux faire (appli web, mobile, desktop, etc.)

                    Ton programme va rechercher dans PostGIS des points à afficher, puis demander à LeafLet d'afficher une carte issue de OSM avec ces points positionnés et "stylisés".

                    -
                    Edité par Benzouye il y a 3 minutes


                    Wouah merci pour le plan ! J'y vois plus clair !

                    Je vous embête encore un peu... Du coup je dois prévoir une base de donnée classique pour mes utilisateurs, j'aurai besoin de la faire communiquer avec PostGIS : joindre des localisation à du contenu : description... ça se fait facilement ?

                    J'ai toujours utiliser presque exclusivement que le php donc je demande :)

                    du coup dans un premier temps ça serait un projet au format desktop et responsive... pour le mobile on verra 

                    • Partager sur Facebook
                    • Partager sur Twitter
                      18 mai 2018 à 16:41:39

                      PostGIS est une extension de PostGreSQL, tu pourras tout à fait y gérer une table "utilisateur" est les relations qui viendrait avec ...

                      Sinon, tu parles d'application desktop mais aussi de PHP ... c'est un peu contradictoire ...

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                        24 mai 2018 à 17:23:06

                        @Benzouye pour ces détails, je découvre ce système de base donc c'est un peu nouveau et surtout rassurant !

                        Bah lors de mon post j'étais parti sur un support du type : site web classisque (d'où le php) et depuis pourquoi pas en prenant mon temps à développer sous iOS et en swift...

                        Donc partir sur deux supports. Donc vient la question de : programme liant tout

                        Merci encore,

                        AlexCode

                        • Partager sur Facebook
                        • Partager sur Twitter
                          24 mai 2018 à 17:27:22

                          A mon avis c'est devenu lourdingue de développer une version applicative par plateforme cible ... Je pense que le plus simple est l'application web, pourquoi pas en "progressive web app" ...

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                            25 mai 2018 à 11:13:09

                            Alors là pourquoi pas, je me documente un max et je reviens par la suite, j'ai trouvé pas mal de lien FR/EN j'en mets deux sur le post si besoin :

                            https://medium.freecodecamp.org/i-built-a-pwa-and-published-it-in-3-app-stores-heres-what-i-learned-7cb3f56daf9b

                            http://blog.occ.simplon.co/pwa/

                            https://www.youtube.com/watch?v=i9xq4aJLA2I


                            • Partager sur Facebook
                            • Partager sur Twitter

                            Faire le meilleur choix, conseil...

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown