Partage
  • Partager sur Facebook
  • Partager sur Twitter

[iOS][Mapbox] Carte participative

Meilleur moyen de créer une carte participative avec Mapbox ?

    14 juillet 2018 à 11:46:58

    Bonjour à tous les cartographes,

    Je suis depuis un certain temps confronté à un problème avec Mapbox : je ne trouve pas le moyen d'ajouter un Point à un Dataset en ligne depuis une app iOS...

    Je cherche depuis un moment (probablement pas comme il faut), mais j'ai l'impression que Mapbox ne sert "qu'à" visualiser des données déjà existantes (fichier GeoJSON déjà créé)…

    Mon(es) objectif(s) (une fois ça fait, je pourrai m'occuper du reste) :
     - Ajouter un point sur une carte depuis un appareil A
     - L'envoyer en ligne pour l'ajouter à un Dataset
     - Afficher la carte sur un appareil B et voir le point ajouté

    Est-ce que vous avez une idée des différentes solutions que je peux envisager ? Est-ce que je dois stocker toutes les données dans une BDD, puis les récupérer (tous) sur l'appareil pour ensuite les afficher 🤷🏻‍♂️ (ça me parait un peu lourd…) ?

    Pour info, j'utilise la dernière version du SDK Mapbox, et j'ai la possibilité de me connecter à une BDD Firebase.

    Merci d'avance à tous ceux qui prendront le temps de répondre 😉

    • Partager sur Facebook
    • Partager sur Twitter
      14 juillet 2018 à 14:05:28

      Salut,

      j’ai Trouvé ca : https://www.mapbox.com/api-documentation/?language=Python#datasets

      il y a une api pour update un dataset. Ca t’Irait où c’est quelque chose d‘autre Que tu cherches ?

      • Partager sur Facebook
      • Partager sur Twitter
        14 juillet 2018 à 17:27:38

        J’avais déjà vu ces APIs dans la doc 👍🏻, mais ils ne sont pas utilisables avec Swift je crois 😕

        Je cherche à utiliser Mapbox dans une app pour iOS écrite en Swift 😉

        • Partager sur Facebook
        • Partager sur Twitter
          14 juillet 2018 à 19:30:44

          Effectivement elles ne sont pas utilisables en Swift. Mais tu peux te faire un petit back qui  utilise cette API et faire des requetes a ton back depuis ton app. Une sorte de middleware
          • Partager sur Facebook
          • Partager sur Twitter
            16 juillet 2018 à 11:24:36

            Salut Geda, merci de ta réponse, mais qu’est-ce que tu entends par "back" et "middleware" 🤔 ?

            Tu veux dire que je pourrais créer un webserver avec ces API auquel j’enverrai des requêtes pour éditer le dataset ?

            Si c’est ça, j’ai l’impression que passer par Firebase serait un peu plus facile, même si assez lourd pour l’app 😕

            P.S.: Je suis plutôt débutant et je n’ai pas encore pris le temps de me former aux webservers, mais ça ne va pas tarder je pense 😉

            • Partager sur Facebook
            • Partager sur Twitter
              16 juillet 2018 à 11:46:47

              Vu que tu ne peux pas faire des requêtes directement depuis ton app via l'API MapBox. Tu es obligé de faire un "bridge" entre l'API et ton app. Du coup au lieu d'envoyer une requête à l'API tu envoies plutôt la requête à ton serveur qui "forward" à l'API

              App ->  <- Serveur ->  <- API MapBox

              Middleware c'est juste pour dire qu'il fait un pont entre ton app et l'api que tu vises. Back / serveur c'est la même chose.

              Je ne sais pas si tu peux envoyer une requête à Firebase, qui enverra une requête à autre service en retour. A vérifier.

              • Partager sur Facebook
              • Partager sur Twitter
                16 juillet 2018 à 13:38:36

                Voilà ce que j’ai trouvé, je ne peux pas tester actuellement mais je vais essayer dans la semaine 👍🏻

                https://firebase.google.com/docs/functions/use-cases?authuser=5#integrate_with_third_party_services_and_apis

                J’avais déjà vu que ces fonctions existaient dans Firebase mais je n’avais jamais essayé de les utiliser…

                Et merci pour les définitions, c’est bien ce que j’avais compris 😇

                -
                Edité par Rémi Bardon 16 juillet 2018 à 13:47:17

                • Partager sur Facebook
                • Partager sur Twitter
                  18 juillet 2018 à 14:10:49

                  Merci Geda, je pense que mon problème sera résolu dans la soirée, j'ai réussi à envoyer une requête qui a écrit dans la Firebase Realtime Database avec une Firebase Function écrite avec Node.js.
                  J'ai aussi réussi à ajouter l'API Mapbox Datasets, je n'ai plus qu'à écrire les fonctions et les tester 😉

                  Une fois ça terminé, je vous partagerai ma solution et fermerai ce sujet 👍🏻
                   

                  Edit :

                  Je suis face à une erreur lors de l'envoi de la requête .putFeature() depuis les Firebase Functions vers Mapbox, je n'ai pas encore trouvé le problème (ni la solution 😅), je vous tiens au courant 👍🏻

                  -
                  Edité par Rémi Bardon 18 juillet 2018 à 21:48:07

                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 août 2018 à 13:17:51

                    Bon, je n'avais pas pris le temps de revenir vous informer de l'avancée du problème, mais me voilà enfin 😇

                    Après une courte discussion sur le GitHub du SDK Mapbox, j'ai trouvé mon problème, il venait de Firebase et non de Mapbox 🙄
                    Je n'ai tout simplement pas configuré mon compte bancaire sur Firebase donc les Firebase Functions n'autorisent pas les connexions avec d'autres APIs 😕 (Si vous voulez les détails, ils sont ici)

                    Du coup j'aimerais fermer le sujet en attendant du nouveau, mais je pense que ce sont les admins qui peuvent faire ça 🤔

                    -
                    Edité par Rémi Bardon 1 août 2018 à 13:18:38

                    • Partager sur Facebook
                    • Partager sur Twitter

                    [iOS][Mapbox] Carte participative

                    × 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