I/ L'application
L'application
présente une scène 3D présente une Estimation de la population mondiale pour
2020 sous forme de grille. La grille a une résolution d'environ 110 km. On
peut utiliser le slider pour filtrer les cellules en fonction du nombre de
personnes par unité de grille.
Les données raster de population sont du
SEDAC.
II/ L'aspect technique
SimpleRenderer permet de rendre toutes les entités d'une couche avec un seul
symbole. Ce moteur de rendu peut être utilisé pour visualiser simplement
l'emplacement des entités géographiques. Ici le symbole est un cube de
couleur bleu.
const
renderer = new
SimpleRenderer({ symbol: new
PointSymbol3D({ symbolLayers: [new
ObjectSymbol3DLayer({ resource: { primitive: "cube"
}, material: { color: "#00E9FF"
}, anchor: "bottom", width: 60000, depth: 60000, height: 60000
})] }) });
La grille est issue d'une
couche.
Dans cette application, on utilise la fonction summaryStatistics. C'est une fonction de génération de statistiques d'attributs dans une couche en
fonction des valeurs renvoyées par un champ donné. Renvoie un objet
contenant diverses statistiques décrivant un ensemble de valeurs renvoyées
par un champ (ou une expression) dans une couche.
Les paramètres de la méthode :
- la couche sur laquelle on fait les stats
- Le nom du champ numérique pour lequel les statistiques
récapitulatives seront générées.
summaryStatistics({ layer: populationLayer, field: "population_count"
}) .then((result) =>
{ const
slider = utils.createSlider(Math.log(result.min), Math.log(result.max)); view.whenLayerView(populationLayer).then(function (populationLayerView) { slider.on('update', function (values, handles, unencoded) { const
min = parseInt(Math.exp(unencoded[0])); const
max = parseInt(Math.exp(unencoded[1])); populationLayerView.filter = { where: `population_count >= ${min} AND
population_count <= ${max}`
}; }); }); }) .catch((err) =>
{ console.log(err); });
La fonction parseInt() analyse un argument de chaîne et renvoie un entier
de la base spécifiée (la base dans les systèmes numériques
mathématiques).
populationLayerView.filter = { where: `population_count >= ${min} AND
population_count <= ${max}`
};
Vous pouvez vous abonner à ce blog pour lire d'autres articles sur le développement Web
d'applications cartographiques et découvrir comment l'ArcGIS API
JavaScript est une superbe alternative à Google Maps !
Vous voulez vous aussi réaliser des applications Web cartographiques
et dynamiques ? N'hésitez pas à souscrire à un plan gratuit ArcGIS for Developers pour développer vos propres applications cartographiques 2D ou
3D ! Cet article résume ce que vous obtiendrez. Et pour en savoir sur l'API
c'est ici.
Aucun commentaire:
Enregistrer un commentaire