đ± React Native + Google Map + Cluster ?
Parce que beaucoup se posent la question !
De plus en plus tendance, React Native devient un framework incontournable ! Article un peu technique, mais vous pouvez rester si vous ĂȘtes curieux de voir ce quâon peut faire avec RN đ
Cet article va ĂȘtre trĂšs court, pour une fois ! Il est principalement destinĂ© Ă toi dĂ©veloppeur ou Ă toi qui veut aider ton pote !
A la fin, je vous donne un dĂ©pĂŽt GitHub pour avoir toutes les sources pour facilement copier/coller sur ton projet. Pas dâurgence donc !
Si cet article a Ă©tĂ© utile Ă quelquâun, nâhĂ©sites pas Ă me lĂącher un petit â€
Comme ça, je saurai que jâai contribuĂ© un peu đ
On ne va pas prĂ©senter ici React Native, mais plutĂŽt une façon simple de faire des clusters puisque je vois le sujet remonter de plus en plus sur StackOverflow et dâautres forums dâentraide.
1 â Creation du projet
Tu es nouveau sur React Native ou pas, on va commencer par déployer une solution RN. Pour cela, tu dois installer NodeJS sur ta machine ainsi que le package. Tout est ici : https://facebook.github.io/react-native/docs/getting-started.html
Tu dois impĂ©rativement installer un module qui vient de MapBox et qui sâappelle Supercluster.
npm install git://github.com/mapbox/supercluster â save
Pour le reste, jâutilise Bluebird juste pour une promise. Tu peux utiliser ce que tu veux. Câest juste un exemple !
2 â Mise en place de la map
Sur la nouvelle version de create-react-native-app, il y a déjà de préintégré tout un tas de modules natif. Notamment un dont nous avons besoin : la mapview !
Ne te fie pas Ă la documentation (elle nâest pas Ă jour), tu dois le dĂ©clarer comme ceci :
3 â Mise en place du cluster
Rien de plus simple pour utiliser ce cluster. Il suffit de lâimporter, de le crĂ©er dans la fonction qui reçoit les nouvelles âpropsâ et de conserver dans lâĂ©tat du composant.
Comme tu peux le voir, je prĂ©fĂšre avoir plusieurs catĂ©gories de cluster afin de dissocier les types de markers mais bon⊠câest une autre histoire đ
4 â Mise en place des markers
Voici la partie super importante : les markers et les données.
Si tu veux avoir un systĂšme API Driven le plus simple possible, tu dois ABSOLUMENT respecter le formalisme du geojson. đĄ
Pour avoir une complĂšte documentation, va sur le site officiel !
Pour ĂȘtre sympa, je tâai mis un exemple du formalisme des donnĂ©es dans les sources pour que tu puisses jouer avec. đ
Tu dois dĂ©clarer utiliser un composant Marker pour te permettre dâavoir une abstraction sur les propriĂ©tĂ©s du geojson. Cela te permet dâavoir facilement un petit switch qui va arranger le rendu comme tu le voudrais ! Et en plus, tu nâas mĂȘme pas besoin de te prendre la tĂȘte sur le formalisme des donnĂ©es puisque tu respectes dĂ©jĂ un standard bien connu ! đ
Encore un conseil, utilise au MINIMUM des vues dans le marqueur, sinon cela va te bouffer les performances ! Essaie de prĂ©mĂącher le travail en faisant un png que tu afficheras. Si tu dois avoir plusieurs couleurs diffĂ©rentes alors, joue sur la teinte de lâimage ! Moins il y a de vue, moins il y a dâimages diffĂ©rentes et plus câest performant ! đ€
5 â Les sources
Comme tu commences un peu Ă me connaĂźtre si tu lis mes autres articles (tu les lis, nâest-ce pas ?), je te file les sources pour que tu puisses tester lĂ maintenant !đ
Comme ça, tu pourras déjà avoir un truc entre les mains et facilement copier/coller mon code pour le mettre dans ton application.
Nâoublie pas que lorsque tu as tĂ©lĂ©chargĂ© le code source, tu dois utiliser les commandes suivantes :
Sinon, bah tu nâauras pas installĂ© les modules dont dĂ©pend le projet ! De plus, si tu ne dĂ©marres pas le serveur RN⊠Bah ça ne marche pas ! (et nâoublie pas dâĂȘtre sur le mĂȘme rĂ©seau wifi)