Génération de carte des profils Cesium+

C’est chouette tout ça.

Pour la carte ML j’utilise Jaklis dans un petit script bash qui tourne tous les matins pendant 1h30… Pour former ce json.
Utilise la requête wallets de GVA pour récupérer la liste des clés sans dépendre de g1-stats.

C’est bourrin mais ça tourne. Curieux que les noeuds Cs+ sur lesquels ça tape l’accepte d’ailleurs, mais tant mieux.
Tu pense pouvoir générer l’équivalent de ce json avec une simple requête @kimamila ?
Dans ce cas soit manu peut l’utiliser directement, soit je l’ajoute à Jaklis pour remplacer la machine gun actuelle, si toujours nécessaire de garder ce cache json.

1 « J'aime »

Sinon tu peux aussi faire une recherche ElasticSearch qui te donne tous les résultats en une requête, en quelques secondes :wink: (py/gencache.py · master · Pascal Engélibert / WorldWotMap · GitLab)

Ok je m’en doutait mais je ne savais pas.
Mais est-ce que les status membre ou non membre son stockés dans ES et récupérable ainsi par exemple ?

Si il manque des données par rapport au json fourni, dans tous les cas il faudra parser.

Oulala c’est pas bon ca :frowning: Normalement comme dit @tuxmain ca ne doit pas durer plus que quelques secondes.
Je calcule le GeoJSON en 15 sec…

Alors non, justement maintenant ca ne marche plus, au dela de 10000 profiles. Car il a 11 000 profiles géo localisés.
Il faut juste ajouter une geo_bounding_box et faire une boucle pour limiter les résultats par une filter. Par exemple :

int latStep = 10;
int lonSTep = 20;
for (int lat=-90; lat < 90 ; lat += latStep) {
  for (int lon=-180; lon < 180 ; lon += lonStep) {
    query = {
		"query": {
			"constant_score": { // Plus rapide que "bool", car on n'utilise pas les "scores" ES
				"filter": [  // filter = contrainte forte = plus rapide à executer
					{"exists": {"field": "geoPoint"}},
					{"geo_bounding_box": {
                                             /* ... */
					}}
				],
				"should": [
					{"bool": {"must": [
						{"exists": {"field": "title"}},
						{"exists": {"field": "uid"}}
					]}}
				]
			}
		},
		"size": 10000,
		"_source": ["title", "geoPoint", "avatar._content_type"]
	};

  }
}

et ainsi plus de soucis de limitation :slight_smile:
J’ai codé cela (hier) pour la carte Cesium v1.7.0

Oui, le mieux est sans doute d’avoir une URL accessible sur les Pod Cs+, pour télécharger le fichier directement.
je vais regarder si je peux intégrer cela.

1 « J'aime »

Mais si ! La limite par défaut est à 10 000 par requête, mais on peut utiliser le scrolling (voir le lien vers le code de la worldwotmap) pour faire plusieurs requêtes de 10 000 résultats ou moins.

oups, j’avais pas vu que tu utilisais les scroll quer. DU coup comme tu as ais ca marche.
Simplement remplacer bool en constant_score, et utiliser filter, pour optimiser.