Localiser sur une carte Google Map

4.0
Localiser sur une carte Google Map
0
Tags: #<Tag:0x00007f648eb1dc18>

#1

Bonjour,

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.


#2

Encore une fois désolé, j’ai posté trop vite !
J’avais oublié de créér dans le template la zone “client-map”.
La carte s’affiche bien maintenant.

Mea Culpa.


#3

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


Merci encore.


#4

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.


#5

Je te remercie Nathalie pour ton aide.
Je souhaite afficher les marqueurs des biens sur une carte.


Dans l’exemple Demo, les adresses des clients se trouvent dans la même table Client, du coup, tous les paramètres renseignés viennent de la même table

Dans notre cas, les adresses des biens se trouvent dans une table Adresse qui a une jointure avec la table Bien (clé technique).

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 ?

J’ai fait quelques tests avec quelques combinaison sans succès.

Merci.
Abed.


(David AZOULAY) #6

Il y a un exemple de placemap dans la demo (sur l’objet DemoClient dont le code fait la géolocalisation via les services Google):



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.


#7

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.


(David AZOULAY) #8

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.


#9

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.


(David AZOULAY) #10

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.

Nous investiguons


(David AZOULAY) #11

C’est corrigé (cf. https://www.simplicite.io/resources/4.0/releasenote/releasenote-patchlevel-11.md)

Si votre instance est en auto update elle sera mises à jour cette nuit, sinon si vous me donnez son nom je peux forcer une MAJ


#12

Merci David.

Je ne sais pas si notre instance est en auto ou pas. C’est la e3m.demo.
J’en profite pour vous dire que nous avons changé la clé d’API Google

Merci d’avance.
Abed.


(David AZOULAY) #13

OK pour la clé, merci

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é.


#14

Bonjour,

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.

Merci d’avance pour votre aide.
Abed.


(David AZOULAY) #15

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.