Je souhaite ajouter une action “Localiser sur une carte” pour les adresses, je me suis inspiré du javascript de l’exemple Demo :
var u = Simplicite.ROOT + “/googlemap?lat=” + l[0] + “&lng=” + l[1] + “&info=” + encodeURIComponent("<div style=“width: 200px; height: 75px;”>" + n + “ ” + a + “”);
$("#client-map").show();
window.frames.gmap.location.replace(u + “&width=500&height=450&title=false”);
J’ai bien les variable a, n et l alimentées. Je les vois dans la console quand je clique sur le bouton “Localiser sur une carte”, mais rien ne s’affiche à l’écran.
Merci d’avance pour votre aide.
Bonne journée.
Abed.
J’ai bien réussi à afficher la carte au niveau d’un formulaire (une seule adresse), j’ai quand même une question complémentaire, comment et où paramétrer le bouton “Carte” au niveau d’une liste afin d’afficher une carte avec plusieurs adresses comme dans l’exemple Demo
Comme dans la démo sur l’objet DemoClient, l’objet doit avoir un attribut de type Coordonnées géographiques. il faut calculer les coordonnées à la saisie d’une adresse (hook preSave). Il faut paramétrer une carte d’emplacements ( Menu Interface ). Le paramétrage consiste en la saisie de l’objet, des attributs Adresse et de l’attribut de coordonnées géographiques. Le bouton d’action est alors visible en liste et en formulaire à côté du champ. Dans le formulaire, il n’y aura qu’un seul marqueur. Le bouton de liste affichera sur la carte tous les marqueurs de la liste.
Peux-tu me dire stp si ma demande faisable, c’est-à-dire, être sur la liste des bien en cliquer sur Carte pour afficher les biens aux adresses des bien ? Si oui, quels sont les paramètres à mettre ?
Je profite de ce post pour vous rappeler que si vous utilisez les services Google (API de géolocalisation, librairie JavaScript Google Maps, …) vous devez impérativement utiliser votre propre clé d’API Google dans le paramètre système GOOGLE_API_KEY.
Merci David pour votre retour.
Comme je l’ai dit dans mon post, la différence entre DemoClient que Nathalie m’a proposé et notre objet ImmoProperty pour lequel nous souhaitons ajouter un placemap, c’est que les adresses des biens se trouvent dans une autre table ImmoAddress. Nous avons une jointure entre les deux. (voir photo plus haut).
D’où ma question, est-ce que c’est faisable ? Si oui, quels sont les paramètres à renseigner dans le placemap ?
Concernant la clé d’API Google, j’ai cru comprendre que c’est seulement lors de la mise en production qu’on devra la changer, pas en développement.
Oui le champ d’un placemap peut être un champ ramené par reference.
Pour ce qui est de la clé d’API Google, autant le faire tout de suite car, de toute façon, nous invalidons régulièrement la clé que nous fournissons à la création de l’instance pour éviter qu’elle soit abusivement utilisée.
Parfait, donc c’est faisable.
Du coup, d’après la copie d’écran que j’avais envoyée de notre modèle, pourriez-vous me dire quels sont les attributs à renseigner dans les champs du placemap ? j’ai fait quelques essais sans succès.
Merci d’avance.
Abed.
J’ai refait le test (dans le cas de la demo en ajoutant une placemap sur l’objet “order” et en utilisant les coordonnées et d’autres champs ramenés du client), ça marche sur la UI legacy mais, effectivement, pas sur la UI responsive.
Je ne sais pas qui vous a créé cette instance mais elle n’est pas protégée, pas en autoupdate (et date du 13 décembre !) et elle n’est pas sauvegardée (ce sont les stratégies par défaut sur le serveur demo.simplicite.io)
PI sur ce serveur demo les instances sont théoriquement supprimées au bout d’un mois.
A partir du moment où vous vous servez d’une instance de manière plus pérenne que de la simple evaluation il faut nous demander de la mettre sur un serveur approprié.
Je me permet de réutiliser ce Post pour demander s’il était possible que le bouton “Carte” de liste affiche sur la carte tous les marqueurs de la liste (et non pas les adresse de la page sur laquelle on est).
En effet, si on a une liste avec beaucoup d’adresses (plus de 100), donc forcément sur plusieurs pages, le fait de cliquer sur Carte affiche uniquement les marqueurs de la page sur laquelle on est. Ensuite, il faut passer sur une autres pages pour afficher les autres marqueurs.
Si la table contient 1 million de lignes ça n’a pas de sens d’afficher 1 million de marqueurs… Même si on ne se limite pas à la page courante il faudrait obligatoirement limiter le nombre de marqueurs d’une manière ou d’une autre.
J’ai logué le point, il sera discuté dans les semaines qui viennent.
Bonjour,
Je suis à la recherche d’une solution pour afficher effectivement toutes les adresses (nous avons 17000 actuellement) en cliquant sur la carte. J’ai trouvé ce post et je voudrai savoir si une solution est déjà proposé
Merci d’avance
Le mécanisme des placemaps est fait pour afficher une carte avec des infos, exemple sur le customer dans la demo:
Bien entendu votre objet métier doit avoir un attribut de type coordonnées géographiques que vous devez calculer ou obtenir à partir d’autres infos de l’objet (typiquement avec le ou les attributs d’adresse). Dans le cas de la démo c’est fait dans le hook preSave de l’objet en utilisant un appel de geolocalisation Google (cf. GMapToolhttps://docs.simplicite.io/4.0/javadoc/com/simplicite/util/tools/GMapTool.html)
Ma question était plutôt: j’ai une liste avec beaucoup d’adresses (17000), donc sur plusieurs pages. En cliquant sur la Carte, uniquement les adresses de la page sur laquelle on est s’affichent.
On a volontairement limité l’affichage de la placemap aux items courants de la liste, justement pour éviter des extractions de données énormes depuis le serveur et, en prime, un navigateur planté à l’arrivée…
Dans votre cas 17000 marqueurs sur une carte ça n’a de toute façon aucun sens (pas plus qu’un tableau de 17000 lignes), c’est humainement inexploitable. Ce serait donc un “gâchis” technologique.
La bonne solution c’est plutôt des marqueurs groupés qui dépenderaient du niveau de zoom et/ou du nombre d’items dans la zone affichée ou dans le genre. On va creuser cette piste pour voir si on pourrait en faire une feature générique.
Ceci est peut être lié au fait que nous avons les mêmes coordonnées pour différents sites et donc maps n’affiche que l’un d’eux?
Si c’est le cas, y a t il un moyen de visualiser tous les sites mêmes ceux qui ont les mêmes long et lat (on peut voir les points superposées sur Maps?)?