Mise en cache de carte selon les limites d'entité

Les outils de mise en cache de carte ArcGIS Server vous permettent de contraindre spatialement la création de tuiles aux limites d'une classe d'entités. Pour ce faire, utilisez l'option Mettre à jour des zones spécifiques à l'aide d'une classe d'entité au bas de l'outil Gérer le cache des tuiles du serveur de carte.

La mise en cache par limite de classe d'entités vous permet de créer des tuiles uniquement aux endroits où vous en avez besoin, ce qui réduit les zones vides ou sans intérêt. Par exemple, si vous mettez en cache un pays, vous pouvez fournir une classe d'entités des principales zones urbaines. Ce faisant, vous demandez que le serveur crée uniquement au préalable des tuiles qui recouvrent ces zones urbaines. Le reste des zones peut être mis en cache à la demande si les clients le souhaitent. Ainsi, vous gagnez du temps et de l'espace sur le disque, qui aurait sinon servi à créer des tuiles inutiles dans des zones rurales.

L'image suivante montre une grille théorique des tuiles qui seraient créées si la classe d'entités contenait simplement l'état de Californie. L'option Mettre à jour des zones spécifiques à l'aide d'une classe d'entité évite la création de tuiles inutiles dans l'océan et dans les états voisins. Ces tuiles inutiles auraient été incluses si l'étendue rectangulaire par défaut avait été utilisée.

Illustration de la création de tuiles selon les limites d'entité.

Suivi de l'état de votre cache

La mise en cache par classe d'entités vous permet non seulement d'économiser de l'espace, mais également de suivre l'état du cache. Vous pouvez utiliser l'outil Gérer le cache des tuiles du serveur de carte pour indiquer à la surface de quelles entités des tuiles ont été créées. Si vous choisissez d'utiliser le suivi de l'état, un champ Mis en cache est ajouté à la classe d'entités dans laquelle vous effectuez la mise en cache. Quand les tuiles ont été créées pour l'étendue d'une entité, le champ Mis en cache de cette entité présente la mention Oui.

Si vous relancez l'outil Mettre à jour des zones spécifiques à l'aide d'une classe d'entité sur la même classe d'entités, l'outil ne crée des tuiles que pour les enregistrements dont le champ Mis en cache n'indique pas Oui. Ce procédé peut être utile si votre tâche de mise en cache précédente a été interrompue et il est habituellement plus rapide que l'option Recréer les tuiles vides (qui vérifie chaque tuile dans le cache). Si vous ne souhaitez pas que cet outil démarre là où il s'est arrêté, vous devez supprimer le champ Mis en cache, indiquer une valeur autre que Oui dans ce champ ou cocher la case permettant d'ignorer le suivi de l'état.

ConseilConseil :

L'activation du suivi de l'état vous permet de récupérer des tâches de mise en cache ayant échoué beaucoup plus rapidement qu'avec l'option Recréer les tuiles vides.

Meilleures pratiques

Les conseils suivants vous aideront à créer efficacement des caches en fonction d'une classe d'entités :

Mettre en cache uniquement par classe d'entités à grande échelle

Comme à petite échelle, vous créez relativement peu de tuiles, la mise en cache par classe d'entités ou non fait donc peu de différence. La création de toutes les tuiles à petites et moyennes échelles permet de s'assurer que lorsqu'un utilisateur ouvre votre carte et commence à effectuer un zoom avant, aucune tuile ne manque ou il n'a pas besoin de créer des tuiles à la demande.

Pour réduire la duplication des étiquettes, les outils de mise en cache affichent une image d'une grande taille (ou super tuile) avant de diviser l'image en tuiles de la taille que vous avez demandée. Lorsque l'anti-crénelage est activé, la taille de la super tuile est de 2 048 x 2 048 pixels. Sinon, elle est de 4 096 x 4 096. Lorsque votre entité coupe la limite d'une super tuile, cette super tuile doit être créée dans son entier. Cela signifie qu'un zoom avant important doit être appliqué avant le début de la mise en cache par classe d'entités pour réellement constater un gain de temps et d'espace disque. Si les entités sont nombreuses et dispersées sur toute la carte, il est possible que l'avantage de la mise en cache par classe d'entités soit limité, car la plupart des entités couperont une super tuile.

Généraliser les limites d'entité

Trop de sommets dans la classe d'entités peut ralentir les outils de mise en cache. Heureusement, il n'est pas nécessaire d'avoir beaucoup de sommets. Le fait que les outils de mise en cache affichent des carrés a tendance à émousser les entités détaillées qui étaient dans la classe d'entités. Votre classe d'entités n'a pas besoin d'inclure chaque île, quai et anse.

Vous pouvez utiliser l'outil Simplifier un polygone pour supprimer systématiquement les sommets de la classe d'entités sans modifier la forme générale. Si la classe d'entités découle d'un modèle, vous pouvez appliquer l'outil Simplifier un polygone à la fin de la réalisation du modèle. Certains outils, comme Zone tampon, peuvent ajouter un nombre excessif de sommets à la classe d'entités.

Les images suivantes montrent la similitude entre les jeux de tuiles créés, que vous utilisiez une classe d'entités détaillée ou généralisée. Dans la deuxième classe d'entités, la plupart des sommets ont été supprimés à l'aide de l'outil Simplifier un polygone. Les carrés gris représentent une super tuile de 4 096 x 4 096 à environ 1:4 500.

Eviter les entités de petite taille

Pour optimiser l'exploitation du processeur, évitez d'utiliser de très petites entités pour définir votre tâche de mise en cache. A un moment donné, chaque instance de service (processus ArcSOC.exe) se voit attribuer une tâche de création d'une surface d'une largeur et d'une hauteur de 128 tuiles. Aucun autre processus ArcSOC.exe ne peut créer de tuiles dans cette surface. Si votre entité est plus petite que cette surface, il est possible de n'avoir un seul processus ArcSOC.exe opérant sur la mise en cache. Si la limite d'une des régions de dimensions 128 x 128 traverse votre entité, vous pourrez avoir deux processus ArcSOC.exe ou plus opérant sur le cache ; toutefois, la limite est basée sur l'origine du tuilage et il n'est pas toujours possible de calculer l'endroit où elle va se situer.

Il est recommandé de créer des entités plus volumineuses pour définir votre tâche de mise en cache. Des entités plus importantes englobent un grand nombre de ces zones de 128 x 128 tuiles afin que vos processus ArcSOC.exe soient occupés la plupart du temps.

Fusionner un grand nombre d'entités en un petit nombre

Pour obtenir des entités de grande taille à partir de petites entités, il est possible d'utiliser l'outil Fusionner. Cet outil accepte plusieurs entités individuelles et les convertit en une seule entité multi-parties. Un autre outil pouvant être utile pour créer un effet semblable est Agréger des polygones qui supprime les petits polygones ou combine les petits polygones en une forme polygonale plus grande. Ces deux outils vous aident à tirer le meilleur parti de vos instances de service lors d'une opération de mise en cache.

Utiliser les régions pour suivre l'état

Après avoir fusionné votre classe d'entités comme décrit ci-dessus, pensez à la découper en un nombre restreint de régions plus importantes afin d'être toujours en mesure de suivre l'état. La recherche de la taille la plus appropriée pour les régions peut constituer un véritable défi. Vous souhaitez que les régions soient suffisamment importantes pour tirer le meilleur parti de vos processus ArcSOC.exe, comme décrit précédemment ; toutefois, vous tenez à ce que ces régions soient suffisamment petites afin que vous ne perdiez pas trop de travail en cas d'échec de la création des tuiles.

Pour créer des régions pour la mise en cache de la manière la plus efficace possible, vous pouvez créer une grille à l'aide de l'outil Créer un quadrillage et la découper selon votre limite de classe d'entités. Vous pouvez conserver une copie de la grille découpée ouverte dans ArcMap et effectuer un suivi à mesure que les outils de mise en cache indiquent "Géotraitement des entités avec OID = 8", "Géotraitement des entités avec OID = 9", et ainsi de suite.

Vous pouvez réaliser un post-traitement manuel sur votre classe d'entités quadrillée afin de fusionner les entités les plus petites avec leurs voisins plus imposants. Dans le graphique précédent, notez comment les petits îlots ont été fusionnés dans les régions avoisinantes afin d'éviter l'inclusion de très petites entités.

Rubriques associées


3/6/2012