Utilisation des Place map

3.1
3.2
Tags: #<Tag:0x00007fc9f45326c0> #<Tag:0x00007fc9f4532490>
Utilisation des Place map
0

(Emmanuelle Fenice) #1

Bonjour,

J’ai créé un enregistrement dans Interface > Place map mais je ne sais pas comment l’utiliser.
Je vois que pour le Timesheet il est possible d’afficher la feuille en passant par un objet externe mais je n’arrive pas à reproduire l’usage avec le Place map.

Auriez-vous un exemple ou de la doc à me fournir ?

Merci !
Emmanuelle


#2

Hello,

Une petite réponse pour cette petite question svp :slight_smile:

merci d’avance

Zouhair


(Emmanuelle Fenice) #3

J’ai oublié de préciser que j’essaie de tester sur la 3.0 Maintenance 12 mais l’impémentation se fera sur une version 3.2

Merci d’avance


(David AZOULAY) #4

Il y a un exemple dans la demo (y compris en 3.0)

Quand on a configuré une placemap sur un objet un bouton apparaît automatiquement sur les listes:

Un placemap nécessite un champ de type geocoordinates.

La valeur de ce champ n’est pas calculée toute seule (car on ne peut pas deviner à partir de quel(s) autre champ(s) il faut le faire, et aussi car dans certains cas les données géographiques viennent d’une source de données externe, etc.).

Dans la demo dans le code de DemoClient on geolocalise à partir de la concaténation de champs (et uniquement si ces champs ont été modifiés):

DemoClient.preSave = function() {
	var coords = this.getField("cliCoords");

	var a1 = this.getField("cliAddress1");
	var a2 = this.getField("cliAddress2");
	var a3 = this.getField("cliAddress3");
	var zc = this.getField("cliZipCode");
	var ci = this.getField("cliCity");
	var co = this.getField("cliCountry");
	
	if (coords.isEmpty() || a1.hasChanged() || a2.hasChanged() || a3.hasChanged() || zc.hasChanged() || ci.hasChanged() || co.hasChanged()) {
		var a = a1.getValue() + (a2.isEmpty() ? "" : ", " + a2.getValue()) + (a3.isEmpty() ? "" : ", " + a3.getValue()) + ", " + zc.getValue() + ", " + ci.getValue() + ", " + co.getValue();
		console.log("Try to geocode " + a);
		var c = GMapTool.geocodeOne(a);
		console.log("Coordinates = " + c);
		if (c)
			coords.setValue(c.toString());
	}
};

Sinon le doc suivant donne un exemple de geolocalisation simple: https://www.simplicite.io/resources/documentation/01-core/third-party-apis-examples.md (§ “Geocoding”)

Un champ de type geocoordinates présente un bouton dans le formulaire pour afficher une carte simple dans un popup (cette feature est indépendante du fait d’avoir configuré un placemap sur l’objet):

ATTENTION: nous fournissions une clé d’API Google par défaut dans le paramètre système GOOGLE_API_KEY il est IMPERATIF de vous générer votre propre clé lorsque vous livrez une application en production (la clé par défaut n’est destinée qu’aux dev). Si nous détectons un usage abusif sur cette clé par défaut nous l’invaliderons.


(David AZOULAY) #5

PS: Quelques précisions sur l’usage de GMapTool sont aussi dans cette release note: https://www.simplicite.io/resources/3.0/releasenote/releasenote-maintenance-17.md

Concernant les fields geocoordinates et les placemaps, ce qui marche en 3.0 marchera normalement à l’identique en 3.1 et 3.2


(Emmanuelle Fenice) #6

Merci c’est exactement ce qu’il nous fallait. On l’avait bien configuré mais je ne savais pas que le reste était géré par le socle.

Ce ticket peut être clos, bonne fin de journée
Emmanuelle


(David AZOULAY) #7

Tant mieux. Je me permets juste de revenir sur la nécessité absolue d’utiliser votre propre clé d’API Google et pas notre clé par défaut. Comme dit précédemment nous pouvons désactiver cette clé par défaut à tout moment. Si vous l’avez laissée telle quelle votre application ne marchera alors plus.