Suite

Obtenir la valeur codée du domaine à partir de la couche de carte avec arcgis javascript api

Obtenir la valeur codée du domaine à partir de la couche de carte avec arcgis javascript api


J'essaie de lire les valeurs de domaine sur une carte, comment atteindre cet objectif dans arcgis javascript api? de l'aide?


Vous pouvez l'obtenir auprès duCouche d'entitésclasser. Il existe un attribut appelédes champs, qui est un tableau de Domaine objets. Le Domaine la classe adomaineattribut.

Ce qui suit affichera les domaines dans la console (le cas échéant) :

var map = new Map(… ); var fl = new FeatureLayer(… ); map.addLayer(fl); // quand la couche est prête fl.on("load", ()=>{ for (var i = 0; i < fl.fields.length; i++) { console.debug(fl.fields[i].domain) ; } });

Bonne chance!


à v3.12, essayez d'utiliser getDomain, fl.getDomain ("fieldName") https://developers.arcgis.com/javascript/jsapi/featurelayer-amd.html#getdomain


Comment obtenir l'ObjectID d'ArcGIS FeatureLayer en cliquant sur la fonction ?

J'essaie de travailler avec l'API JavaScript ArcGIS. J'utilise cet exemple de FeatureLayer et j'essaie de créer une fenêtre contextuelle qui affichera différentes données en fonction de l'ID d'objet sur lequel je clique. Fondamentalement, ce que vous voyez sur cet exemple.

Le problème est que je ne peux pas réellement accéder au modèle de variable externe ObjectID. À l'intérieur de ce modèle de variable, vous venez de définir un titre comme un titre : "L'ID de cet objet est ". Cela fonctionne bien. Mais j'ai mes données stockées dans ma base de données MySQL, donc je veux que l'ObjectID soit stocké dans la variable lorsque je clique dessus, puis éventuellement l'envoyer via ajax vers une route. Ensuite, dans le contrôleur, recherchez l'objet correspondant, obtenez son données de la base de données et les renvoyer au modèle contextuel et les afficher.

C'est mon idée de comment cela pourrait fonctionner, mais je dois d'abord obtenir l'ObjectID, auquel je ne sais pas comment accéder. Si vous avez une idée de la façon dont cela pourrait être résolu ou si vous connaissez un meilleur moyen de mettre des données supplémentaires de la base de données dans le PopupTemplate, faites-le moi savoir s'il vous plaît. Merci.


TileLayer

TileLayer vous permet de travailler avec un service de carte mis en cache exposé par l'API REST d'ArcGIS Server et de l'ajouter à une carte en tant que couche de tuiles. Un service mis en cache accède aux tuiles à partir d'un cache au lieu de rendre dynamiquement les images. Parce qu'elles sont mises en cache, les couches tuilées sont rendues plus rapidement que MapImageLayers. Pour créer une instance de TileLayer, vous devez référencer l'URL du service de carte mis en cache.

Si l'image est demandée à partir d'un domaine différent, un serveur compatible CORS ou un proxy est requis. Si CORS est activé sur le serveur, ajoutez le domaine de service à esriConfig.request.corsEnabledServers. Sinon, si CORS ne peut pas être activé sur ArcGIS Server, vous pouvez configurer un proxy sur votre serveur Web, puis l'ajouter à la liste des règles de proxy dans esriConfig à l'aide de addProxyRule().

Une instance de cette classe est également une Promesse. Cela vous permet d'exécuter du code une fois la promesse résolue ou lorsque la couche a fini de charger ses ressources. Voir then() pour plus de détails.

Pour afficher un service de carte non mis en cache en tant que couche dynamique, consultez MapImageLayer.

Limitations connues

Lors de l'ajout d'un TileLayer à une carte dans une SceneView, les limitations suivantes existent :

  • Cette couche doit être publiée à partir d'ArcGIS Server 10.3 et versions ultérieures ou d'ArcGIS Server 10.2.2 avec ce correctif appliqué.
  • Si viewMode est global , seuls les services avec ArcGIS Online/Bing Maps/Google Maps (Web Mercator) ou le système de coordonnées géographiques WGS84, version 2 de la structure de tuile sont pris en charge.
  • Si viewMode est local , seuls les services avec des systèmes de coordonnées projetés sont pris en charge.

Seules les couches de tuiles avec les spécifications de structure de tuile suivantes sont prises en charge :

  • Tuiles de 256x256 ou 512x512 pixels
  • Les niveaux d'échelle doivent augmenter ou diminuer d'une puissance de deux
  • Au niveau 0, il ne devrait pas y avoir plus de 30 tuiles racines.
  • Toutes les couches tuilées doivent avoir la même structure de tuile et la même référence spatiale.

Esri exige que lorsque vous utilisez un fond de carte ArcGIS Online dans votre application, la carte doit inclure l'attribution Esri et vous devez disposer d'une licence pour utiliser le contenu. Pour obtenir des instructions détaillées sur l'utilisation de l'attribution, veuillez consulter l'attribution officielle dans la documentation de votre application. Pour plus d'informations sur les conditions d'utilisation, consultez la FAQ sur les conditions d'utilisation.


Les modes de fusion sont utilisés pour fusionner des calques afin de créer un effet intéressant dans un calque, ou même pour produire ce qui semble être un nouveau calque.

Effect fournit diverses fonctions de filtre qui peuvent être exécutées sur le calque pour obtenir différents effets visuels similaires au fonctionnement des filtres d'image.

L'identifiant unique attribué à la couche.

Indique si la couche sera incluse dans la légende.

Symbole utilisé pour représenter les entités linéaires du flux GeoRSS.

Indique comment la couche doit s'afficher dans le widget LayerList.

Indique si les ressources de la couche ont été chargées.

L'objet Error renvoyé si une erreur s'est produite lors du chargement.

Représente l'état d'une opération de chargement.

Une liste des avertissements qui se sont produits lors du chargement.

L'échelle maximale (la plus zoomée) à laquelle la couche est visible dans la vue.

L'échelle minimale (la plus réduite) à laquelle la couche est visible dans la vue.

Symbole utilisé pour représenter les entités ponctuelles du flux GeoRSS.

Symbole utilisé pour représenter les entités surfaciques du flux GeoRSS.

Le titre de la couche utilisée pour l'identifier dans des endroits tels que les widgets Legend et LayerList.

L'URL pointant vers un fichier GeoRSS.

Indique si le calque est visible dans la vue.

Détails de la propriété

Les modes de fusion sont utilisés pour fusionner des calques pour créer un effet intéressant dans un calque, ou même pour produire ce qui semble être un nouveau calque. Contrairement à la méthode d'utilisation de la transparence qui peut entraîner une couche supérieure délavée, les modes de fusion peuvent créer une variété de résultats très dynamiques et intrigants en mélangeant un calque avec le ou les calques situés en dessous.

Lors de la fusion de calques, un calque supérieur est un calque auquel un mode de fusion est appliqué. Tous les calques sous le calque supérieur sont des calques d'arrière-plan. Le mode de fusion par défaut est normal où le calque supérieur est simplement affiché sur le calque d'arrière-plan. Bien que ce comportement par défaut soit parfaitement acceptable, l'utilisation de modes de fusion sur les calques ouvre un monde de possibilités infinies pour générer des cartes créatives.

Les couches d'un GroupLayer sont mélangées ensemble indépendamment du reste de la carte.

Dans les captures d'écran suivantes, la couche de relief ombré vintage est affichée sur une couche d'imagerie du monde luciole. Le mode de fusion des couleurs est appliqué au relief ombré vintage et le résultat ressemble à un nouveau calque.

Limitations connues

Les facteurs suivants affecteront le résultat du mélange :

  • Ordre de toutes les couches
  • Opacité du calque
  • Opacité des entités dans les calques
  • Visibilité des calques
  • Par défaut, la couche la plus basse d'une carte est dessinée sur un fond transparent. Vous pouvez modifier la couleur d'arrière-plan de MapView.

Modes de fusion éclaircis :

Les modes de fusion suivants créent des résultats plus clairs que tous les calques. Dans les modes de fusion éclaircis, les couleurs noires pures de la couche supérieure deviennent transparentes, laissant transparaître la couche d'arrière-plan. Le blanc dans la couche supérieure restera inchangé. Toute couleur plus claire que le noir pur va éclaircir les couleurs de la couche supérieure à des degrés divers jusqu'au blanc pur.

Les modes de fusion Eclaircir peuvent être utiles pour éclaircir les couleurs sombres du calque supérieur ou pour supprimer les couleurs noires du résultat. Les modes plus , éclaircir et écran peuvent être utilisés pour éclaircir les calques qui ont des couleurs fanées ou sombres sur un fond sombre.

Mode de fusion La description
alléger Compare les couches supérieures et d'arrière-plan et conserve la couleur la plus claire. Les couleurs du calque supérieur deviennent transparentes si elles sont plus foncées que les couleurs qui se chevauchent dans le calque d'arrière-plan, ce qui permet au calque d'arrière-plan d'apparaître complètement. Peut être considéré comme le contraire du mode de fusion assombrir.
briquet Les couleurs des calques supérieur et d'arrière-plan sont multipliées par leurs valeurs alpha (opacité du calque et opacité des données du calque. Ensuite, les couleurs résultantes sont additionnées. Toutes les couleurs intermédiaires qui se chevauchent sont éclaircies dans le calque supérieur. L'opacité du calque et des données du calque affectera le résultat du mélange. .
plus Les couleurs des couches supérieure et d'arrière-plan sont additionnées. Toutes les couleurs de milieu de gamme qui se chevauchent sont éclaircies dans la couche supérieure. Ce mode est également connu sous le nom d'ajout ou d'esquive linéaire .
filtrer Multiplie les couleurs inversées dans les couches supérieure et d'arrière-plan, puis inverse à nouveau les couleurs. Les couleurs résultantes seront plus claires que la couleur d'origine avec moins de contraste. L'écran peut produire de nombreux niveaux d'éclaircissement en fonction des valeurs de luminosité de la couche supérieure. Peut être considéré comme l'opposé du mode de multiplication.
couleur-esquive Divise les couleurs du calque d'arrière-plan par le calque supérieur inversé. Cela éclaircit le calque d'arrière-plan en fonction de la valeur du calque supérieur. Plus le calque supérieur est clair, plus sa couleur affecte le calque d'arrière-plan. Diminue le contraste entre les couches supérieures et d'arrière-plan, ce qui donne des tons moyens saturés et des reflets soufflés.

Modes de fusion assombrir :

Les modes de fusion suivants créent des résultats plus sombres que tous les calques. Dans les modes de fusion assombrir, le blanc pur du calque supérieur deviendra transparent, permettant au calque d'arrière-plan de transparaître. Le noir dans la couche supérieure restera inchangé. Toute couleur plus foncée que le blanc pur va assombrir une couche supérieure à des degrés divers jusqu'au noir pur.

Le mode de fusion multiple est souvent utilisé pour mettre en évidence les ombres, montrer le contraste ou accentuer un aspect d'une carte. Par exemple, vous pouvez utiliser le mode de fusion multiple sur une carte topographique affichée sur un ombrage lorsque vous souhaitez que votre élévation s'affiche à travers la couche topographique. Voir l'introduction à l'exemple de fusion de calques.

Les modes multiplier et assombrir peuvent être utilisés pour afficher des étiquettes sombres du fond de carte à travers les couches supérieures. Voir l'échantillon de mélange d'assombrir.

Le mode de gravure des couleurs fonctionne bien avec les couches supérieures et d'arrière-plan colorées car il augmente la saturation dans les tons moyens. Il augmente le contraste en teintant les pixels dans les zones qui se chevauchent dans les couches supérieure et inférieure davantage vers la couleur de la couche supérieure. Utilisez ce mode de fusion lorsque vous souhaitez un effet avec plus de contraste que de multiplier ou d'assombrir .

Les captures d'écran suivantes montrent comment le mode de fusion multiplié est utilisé pour créer une carte physique du monde qui montre à la fois les limites et l'altitude.

Mode de fusion La description
assombrir Souligne les parties les plus sombres des calques qui se chevauchent. Les couleurs du calque supérieur deviennent transparentes si elles sont plus claires que les couleurs qui se chevauchent dans le calque d'arrière-plan, ce qui permet au calque d'arrière-plan d'apparaître complètement.
multiplier Souligne les parties les plus sombres des calques qui se chevauchent en multipliant les couleurs du calque supérieur et du calque d'arrière-plan. Les couleurs de milieu de gamme des couches supérieures et d'arrière-plan sont mélangées plus uniformément.
brûlure de couleur Intensifie les zones sombres dans toutes les couches. Il augmente le contraste entre les couches supérieures et d'arrière-plan, en teintant les couleurs dans la zone de chevauchement vers la couleur supérieure. Pour ce faire, il inverse les couleurs du calque d'arrière-plan, divise le résultat par les couleurs du calque supérieur, puis inverse les résultats.

Modes de fusion de contraste :

Les modes de fusion suivants créent un contraste en éclaircissant les zones les plus claires et en assombrissant les zones les plus sombres du calque supérieur en utilisant des modes de fusion éclaircissant ou assombrissant pour créer le mélange. Les modes de fusion de contraste éclaircissent les couleurs plus claires que 50 % de gris ([128,128,128]) et assombrissent les couleurs plus foncées que 50 % de gris. 50% de gris sera transparent dans la couche supérieure. Chaque mode peut créer une variété de résultats en fonction des couleurs des calques supérieurs et d'arrière-plan mélangés. Le mode de fusion de superposition effectue ses calculs en fonction de la luminosité des couleurs du calque d'arrière-plan tandis que tous les autres modes de fusion de contraste effectuent leurs calculs en fonction de la luminosité de la couche supérieure. Certains de ces modes sont conçus pour simuler l'effet de la projection d'une lumière à travers la couche supérieure, se projetant efficacement sur les couches situées en dessous.

Les modes de fusion de contraste peuvent être utilisés pour augmenter le contraste et la saturation pour avoir des couleurs plus vives et donner du punch à vos calques. Par exemple, vous pouvez dupliquer un calque et définir le mode de fusion de superposition sur le calque supérieur pour augmenter le contraste et les tons de votre calque. Vous pouvez également ajouter une couche de polygone avec un symbole de remplissage blanc sur une couche d'imagerie sombre et appliquer un mode de fusion de lumière douce pour augmenter la luminosité de la couche d'imagerie.

Les captures d'écran suivantes montrent un effet du mode de fusion de superposition sur un GraphicsLayer. L'image de gauche montre lorsque la couche graphique tampon a le mode de fusion normal. Comme vous pouvez le voir, la couleur grise du polygone tampon bloque les secteurs de recensement qui se croisent. L'image de droite montre lorsque le mode de fusion de superposition est appliqué à la couche graphique tampon. Le mode de fusion de superposition assombrit ou éclaircit le polygone tampon gris en fonction des couleurs de la couche d'arrière-plan tandis que la couche des secteurs de recensement brille. Voyez ceci en action.

Mode de fusion normal Mode de fusion de superposition
Mode de fusion La description
recouvrir Utilise une combinaison de modes de multiplication et d'écran pour assombrir et éclaircir les couleurs du calque supérieur, le calque d'arrière-plan étant toujours visible. Le résultat est que les valeurs de couleur plus foncées dans le calque d'arrière-plan intensifient le calque supérieur, tandis que les couleurs plus claires du calque d'arrière-plan lavent les zones qui se chevauchent dans le calque supérieur.
Lumière douce Applique un mode d'écran demi-intensité aux zones plus claires et un mode de multiplication demi-intensité pour assombrir les zones de la couche supérieure. Vous pouvez considérer la lumière douce comme une version plus douce du mode de superposition.
Lumière forte Multiplie ou filtre les couleurs, en fonction des couleurs de la couche supérieure. L'effet est similaire à celui de braquer les projecteurs sur la couche supérieure.
vive lumière Utilise une combinaison de brûlure de couleur ou d'esquive de couleur en augmentant ou en diminuant le contraste, en fonction des couleurs de la couche supérieure.

Modes de fusion des composants :

Les modes de fusion suivants utilisent des composants de couleurs primaires, qui sont la teinte, la saturation et la luminosité pour fusionner les couches supérieures et d'arrière-plan. Vous pouvez ajouter une couche d'entités avec un moteur de rendu simple sur n'importe quelle couche et définir le mode de fusion de teinte, de saturation, de couleur ou de luminosité sur cette couche. Avec cette technique, vous créez une toute nouvelle carte.

Les captures d'écran suivantes montrent où la couche topographique est mélangée avec la couche World Hillshade avec le mode de fusion de luminosité. Le résultat est une carte d'apparence radicalement différente qui préserve la luminosité de la couche topographique tout en adaptant la teinte et la saturation de la couche d'ombrage.


Mode de fusion La description
teinte Crée un effet avec la teinte du calque supérieur et la luminosité et la saturation du calque d'arrière-plan.
saturation Crée un effet avec la saturation du calque supérieur et la teinte et la luminosité du calque d'arrière-plan. 50% de gris sans saturation dans le calque d'arrière-plan ne produira aucun changement.
luminosité Crée un effet avec la luminosité du calque supérieur et la teinte et la saturation du calque d'arrière-plan. Peut être considéré comme l'opposé du mode de fusion des couleurs.
Couleur Crée un effet avec la teinte et la saturation du calque supérieur et la luminosité du calque d'arrière-plan. Peut être considéré comme l'opposé du mode de fusion de luminosité.

Modes de fusion composite :

Les modes de fusion suivants peuvent être utilisés pour masquer le contenu du calque supérieur, de l'arrière-plan ou des deux.

  • Les modes de destination sont utilisés pour masquer les données du calque supérieur avec les données du calque d'arrière-plan.
  • Les modes source sont utilisés pour masquer les données du calque d'arrière-plan avec les données du calque supérieur.

Le mode de fusion de destination peut être utilisé pour afficher les zones d'intérêt telles que les tremblements de terre, la migration animale ou la pollution ponctuelle en révélant la carte sous-jacente, offrant une vue d'ensemble du phénomène. Découvrez plusieurs échantillons de fusion et de fusion groupLayer pour voir les modes de fusion composites en action.

Les captures d'écran suivantes montrent les couches d'entités et d'images sur le côté gauche dans l'ordre dans lequel elles sont dessinées dans la vue. Couche d'imagerie qui contient les rasters de classification de la couverture terrestre. La couche d'entités contient des données de 2007 sur les cultures du comté. L'image de droite montre le résultat de la fusion de calques où la destination-in blendMode est définie sur le calque d'imagerie. Comme vous pouvez le voir, l'effet est très différent des calques d'origine. Le résultat combiné montre uniquement les zones de cultures cultivées (où les images et les couches d'entités se chevauchent).


Mode de fusion La description
destination-sur La couche de destination/arrière-plan recouvre la couche supérieure. Le calque supérieur est dessiné sous le calque de destination. Vous verrez la couche supérieure apparaître partout où la couche d'arrière-plan est transparente ou ne contient aucune donnée.
destination-au-dessus Le calque de destination/arrière-plan est dessiné uniquement là où il chevauche le calque supérieur. La couche supérieure est dessinée sous la couche d'arrière-plan. Vous verrez la couche supérieure apparaître partout où la couche d'arrière-plan est transparente ou ne contient aucune donnée.
destination-entrée Le calque de destination/arrière-plan est dessiné uniquement là où il chevauche le calque supérieur. Tout le reste est rendu transparent.
destination-sortie Le calque de destination/arrière-plan est dessiné là où il ne chevauche pas le calque supérieur. Tout le reste est rendu transparent.
source-au-dessus Le calque source/supérieur est dessiné uniquement là où il chevauche le calque d'arrière-plan. Vous verrez le calque d'arrière-plan apparaître là où le calque source est transparent ou ne contient aucune donnée.
source d'entrée Le calque source/supérieur est dessiné uniquement là où il chevauche le calque d'arrière-plan. Tout le reste est rendu transparent.
source-out Le calque source/supérieur est dessiné là où il ne chevauche pas le calque d'arrière-plan. Tout le reste est rendu transparent.
xor Les couches supérieures et d'arrière-plan sont rendues transparentes là où elles se chevauchent. Les deux calques sont dessinés normalement partout ailleurs.

Inverser les modes de fusion :

Les modes de fusion suivants inversent ou annulent les couleurs en fonction des couleurs du calque d'arrière-plan. Ces modes de fusion recherchent des variations entre les couches supérieures et d'arrière-plan. Par exemple, vous pouvez utiliser des modes de fusion de différence ou d'exclusion sur deux couches d'images de couvertures forestières pour visualiser comment les couvertures forestières ont changé d'une année à l'autre.

Le mode de fusion inversé peut être utilisé pour transformer n'importe quel fond de carte clair en fond de carte sombre pour s'adapter à ceux qui travaillent dans des conditions de faible luminosité. Les captures d'écran suivantes montrent comment la définition du mode de fusion inversé défini sur une couche d'entités avec un moteur de rendu simple transforme le fond de carte du terrain mondial en un fond de carte à thème sombre en un rien de temps.


Mode de fusion La description
différence Soustrait la plus foncée des couleurs qui se chevauchent de la couleur la plus claire. Lorsque deux pixels de même valeur sont soustraits, le résultat est noir. Le mélange avec du noir ne produit aucun changement. Le mélange avec le blanc inverse les couleurs. Ce mode de fusion est utile pour aligner des calques avec un contenu similaire.
exclusion Similaire au mode de fusion de différence, sauf que l'image résultante est globalement plus claire. Les zones qui se chevauchent avec des valeurs de couleur plus claires sont éclaircies, tandis que les valeurs de couleur qui se chevauchent plus sombres deviennent transparentes.
moins Soustrait les couleurs du calque supérieur des couleurs du calque d'arrière-plan, ce qui rend le résultat de fusion plus sombre. En cas de valeurs négatives, le noir est affiché.
inverser Inverse les couleurs d'arrière-plan partout où les couches supérieure et d'arrière-plan se chevauchent. Le mode de fusion inversé inverse le calque de la même manière qu'un négatif photographique.
réfléchir Ce mode de fusion crée des effets comme si vous aviez ajouté des objets brillants ou des zones de lumière dans le calque. Les pixels noirs du calque d'arrière-plan sont ignorés comme s'ils étaient transparents.

Valeurs possibles : "moyenne" | « brûlure de couleur » | "couleur-esquive" | "couleur" | "assombrir" | "destination-au-dessus" | "destination-in" | "destination-out" | "destination-over" | "différence" | "exclusion" | « lumière dure » ​​| "teinte" | "inverser" | "alléger" | "plus léger" | "luminosité" | "moins" | "multiplier" | "normal" | "superposition" | "plus" | "réfléchir" | "saturation" | "écran" | "lumière douce" | "source-au-dessus" | "source-in" | "source-out" | "vive-lumière" | "xor"


La couche mise en cache ne s'affichera pas.

J'ai créé deux caches de service de carte en mosaïque sur la même machine sous le même répertoire virtuel parent.

En fin de compte, je souhaite les ajouter tous les deux à la même carte à l'aide de l'API javascript (code ci-dessous), mais l'un fonctionne et l'autre non.

J'obtiens une image pour celle qui ne fonctionne pas lors de l'utilisation de la carte d'exportation d'interface de repos par défaut, donc je suppose que le service fonctionne et que le cache n'est pas corrompu.

Si j'inspecte mes requêtes/réponses dans mon navigateur, celui qui fonctionne envoie une requête qui ressemble à ceci :

Et puis un tas de requêtes qui ressemblent à ceci pour les tuiles individuelles :

Cependant, lorsque j'inspecte les demandes envoyées au service qui ne fonctionnent pas, je ne vois que cette première demande et même si elle obtient un code de réponse 200 (elle obtient en fait une réponse 304 si j'envoie à nouveau la demande dans la même mesure , mais les deux services présentent ce comportement), aucune demande future n'est envoyée pour les tuiles individuelles.

Aucune erreur javascript n'est signalée dans la console.

J'ai reconstruit le cache plusieurs fois, vidé le reste du cache du serveur, redémarré iis, etc.


Vous devriez certainement vérifier GeoNames. Ils ont le monde entier dans une base de données standardisée. Vous pouvez le télécharger ou utiliser leur API.

Je télécharge la base de données américaine et utilise un connecteur que j'ai créé en C# pour insérer les États, les villes, les villes et les codes postaux dans ma base de données.

Il existe également Open Street Maps que vous pouvez télécharger ou utiliser leur API.

Je ne suggère pas la nouvelle API de Yahoo, ils coupent les produits à gauche et à droite et vous ne savez jamais combien de temps cela durera. De plus, vous ne pouvez pas télécharger un dump entier actuellement.

Mise à jour du 29 janvier 2013 : j'ai créé un ensemble de données CSV de toutes les villes et lieux peuplés du monde, ainsi qu'un centroïde de zone de latitude/longitude, et placé dans le domaine public. J'ai combiné les données du serveur USGS GNIS pour les États-Unis et du serveur NGA GNS pour tous les autres pays. Vous trouverez ci-dessous les métadonnées de la mise en page du fichier CSV et le lien vers l'ensemble de données :

Colonne 1 : code pays ISO 3166-1 alpha-2.
Colonne 2 : Code de division administrative de premier niveau FIPS 5-2 des États-Unis (par exemple, État/province).
Colonne 3 : NGA GNS Feature Description (DSG) code.
Colonne 4 : NGA GNS Unique Feature Identifier (UFI).
Colonne 5 : Code ISO 639-1 alpha-2/3 pour la langue correspondant au nom de la caractéristique.
Colonne 6 : Écriture de la langue (par exemple, latin, arabe, chinois, etc.) correspondant au nom de la caractéristique.
Colonne 7 : Nom de la fonction.
Colonne 8 : Coordonnée de latitude du centre de gravité de la zone.
Colonne 9 : Coordonnée de longitude du centre de gravité de la zone.

J'ai regardé la solution de Jonperl. Il pourrait utiliser quelques commentaires. Premièrement, je crois que geonames.org obtient les données de la ville américaine du serveur USGS GNIS. On peut directement obtenir un fichier de téléchargement d'eux.

Quelques points que quelqu'un devrait savoir : ADM1 signifie division administrative de premier niveau. Pour les États-Unis, il s'agit des 50 États, du District de Columbia, des 5 territoires américains et des 4 États librement associés.


Utilisation de Geocortex Workflow 5 pour afficher automatiquement un formulaire de modification des attributs de couche [Geocortex Tech Tip]

Avec Geocortex Workflow 5, la création de workflows n'a jamais été aussi simple. Avec une bibliothèque de 170 activités prédéfinies qui s'enchaînent de manière transparente, vous pouvez convertir même les processus métier les plus sophistiqués en une expérience utilisateur simple et guidée.

L'une des choses dont nous sommes vraiment fiers en ce qui concerne Workflow 5 est sa capacité à automatiser pratiquement n'importe quelle tâche, nous avons donc pensé qu'il serait approprié de vous montrer dans le Geocortex Tech Tip de cette semaine comment utiliser notre technologie Workflow pour automatiquement afficher un formulaire pour modifier les attributs de couche.

Transcription vidéo

« Salut, je m'appelle Jeff. Je suis développeur de logiciels sur Geocortex Workflow 5, et aujourd'hui, je vais vous montrer comment afficher un formulaire à l'aide de Workflow afin que vous puissiez modifier les entités de votre couche.

Je vais donc vous en faire la démonstration aujourd'hui dans le nouveau Geocortex Mobile Viewer, ce qui signifie que les objets Esri avec lesquels nous interagissons dans ce flux de travail proviendront d'ArcGIS .NET Runtime, vous remarquerez donc peut-être quelques légères les différences forment l'API JavaScript. Donc, pour montrer notre formulaire, nous allons utiliser une activité de formulaire d'affichage, et j'ai préconfiguré certaines activités pour ce flux de travail juste pour gagner du temps.

Sur notre activité de formulaire d'affichage, nous n'allons configurer aucun élément de formulaire et c'est parce que nous voulons afficher dynamiquement le formulaire en fonction de la couche que nous avons. Pour définir les éléments de formulaire dynamiques, nous allons utiliser le gestionnaire d'événements « load » dans l'en-tête des formulaires. Si nous regardons ici, la première chose que nous devons faire est d'obtenir la couche à l'aide de l'activité "Get Layer" et je vais utiliser une carte Web qui a une couche avec l'ID "Service_Request_8759". Cela va obtenir notre couche et la prochaine chose que nous allons faire est d'ajouter un élément de formulaire pour chaque champ de la couche. Nous allons donc parcourir les champs de la couche. Vous pouvez voir que nous allons layer.featureTable.fields et cette table d'entités est un .NETism.

La première chose que nous allons faire sur notre boucle « Pour chaque » consiste simplement à affecter le champ à une variable, de sorte que nous n'ayons pas à accéder à chaque élément actuel de la boucle Pour chaque à chaque fois, il s'agit donc d'une activité Créer une valeur. Ensuite, la prochaine chose que nous voulons faire est de vérifier si le champ est modifiable, nous allons donc vérifier la propriété 'isEditable'. Si ce n'est pas modifiable, nous ne ferons rien car nous ne voulons rien afficher.

Donc, nous allons créer un objet pour notre élément de formulaire et nous allons attribuer quelques propriétés, nous allons définir la description sur l'alias de champ et je vais définir les éléments sur un objet vide , sur lequel je reviendrai dans quelques minutes. Ensuite, nous voulons décider quel type de contrôle d'interface utilisateur de vue créer pour chaque champ.

Le premier cas que nous allons traiter concerne les champs qui ont des domaines de valeurs codés, donc dans cette activité if, nous vérifions si le champ a un objet de domaine et si cet objet de domaine a des valeurs codées. Si c'est le cas, nous allons vouloir afficher une liste déroulante contenant les domaines de valeur codés. Nous allions donc parcourir les domaines de valeurs codées afin que vous puissiez voir «domain.codedValues» dans notre boucle For Each ici. Et la première chose que nous allons faire ici est simplement d'attribuer la valeur codée à la variable, afin que nous n'ayons pas à accéder à la boucle For Each à chaque fois et nous allons créer un objet pour l'élément de formulaire.

Le « label » va être le nom de la valeur codée et la « valeur » va être la valeur de la valeur codée. Et puis nous allons définir cet élément sur notre objet élément de formulaire. Comme vous pouvez le voir, je cible la propriété items de l'objet élément de formulaire. Et nous devons lui attribuer un identifiant unique, nous allons donc simplement utiliser le passage de l'activité For Each et nous allons appeler toString dessus car il doit s'agir d'un identifiant de chaîne, et nous allons passer dans l'objet que nous venons de créer. Ensuite, nous allons ajouter l'élément de formulaire de liste déroulante à notre formulaire et nous allons le faire en utilisant l'activité « Ajouter un élément de formulaire ». Nous devons fournir un identifiant unique, nous allons donc utiliser le nom du champ et nous devons spécifier le type d'élément de formulaire que nous voulons utiliser (vous devriez obtenir un intellisense ici), nous voulons utiliser un liste déroulante et nous allons mettre dans notre objet élément de formulaire que nous venons de créer.

Ensuite, je vais vous montrer comment créer un champ numérique. Donc, pour cela, nous devons regarder la propriété fieldType du champ et dans .NET, il s'agit d'une numération adossée à des entiers, il suffit donc de la comparer à sa valeur entière, donc la valeur d'un entier est un . Donc, nous voulons créer un objet de format pour notre nombre pour nous assurer qu'il apparaît comme un entier – donc pour ce faire, nous définissons la précision sur '0', ce qui signifie qu'aucune décimale n'est affichée et nous voulons définir l'étape sur ' 1'.

Ensuite, nous voulons définir notre objet de format que nous venons de créer sur l'objet d'élément de formulaire, nous définissons donc la propriété format de notre objet d'élément de formulaire sur l'objet de format que nous venons de créer. Encore une fois, nous allons utiliser l'activité Ajouter un élément de formulaire pour l'ajouter à notre formulaire. Cette fois, nous allons choisir le numéro et nous allons utiliser le nom du champ comme identifiant. Ensuite, je vais vous montrer un champ de chaîne. Ainsi, la valeur entière du type de champ pour une chaîne est « 7 », nous recherchons donc simplement un « 7 », donc dans ce cas, nous voulons ajouter un élément de formulaire TextArea à notre formulaire. C'est donc le cas le plus simple en utilisant à nouveau le nom du champ.

D'accord, je vais maintenant vous faire une démonstration dans Geocortex Mobile Viewer.

Jetons rapidement un coup d'œil au Json dans la couche d'entités que j'utilise ici. Ce sont les champs de la couche d'entités, et vous pouvez voir que j'ai un champ de chaîne appelé "REQUESTSTATUS" qui utilise des domaines de valeurs codées, il y a trois domaines là-dedans. J'ai un champ de chaîne régulier appelé "DESCRIPTION" et un champ entier nommé "SEVERITY". Ainsi, ce flux de travail que nous avons créé pour afficher les éléments du formulaire couvrira ces trois champs.

Ouvrons Geocortex Mobile Viewer et je vais vous montrer le flux de travail. Il ne s'agit donc que d'une version extrêmement simple de la visionneuse mobile que j'ai configurée uniquement dans le but de vous montrer ce flux de travail. J'ai donc le workflow dans la barre des tâches et si je clique dessus, vous verrez que j'obtiendrai un élément de formulaire pour chacun des champs modifiables. J'ai donc mon élément « Status » qui est une liste déroulante. Je peux choisir la valeur, le champ "Description" est juste un champ de chaîne et le champ "Sévérité" est juste un entier. Donc, si je tape cela, je peux voir qu'il s'agit d'un nombre entier et je peux augmenter mes valeurs entières.

Et c'est ainsi que nous créons un formulaire dynamique pour un calque donné. Merci d'avoir regardé!"

Intéressé à essayer Geocortex Workflow 5 par vous-même ? Consultez notre Centre de découverte et explorez tout ce que Geocortex Workflow 5 a à offrir !


A propos de l'auteur

Julie Powell

Julie Powell est chef de produit technique. Son objectif principal est l'API ArcGIS pour JavaScript. Elle a plus de 17 ans d'expérience dans le développement de logiciels, fournissant des solutions pour les marchés des entreprises et des consommateurs. Powell a travaillé sur un large éventail de projets et d'activités de conseil, notamment en tant que responsable technique de solutions de cartographie Web pour des clients stratégiques. Elle s'interface avec une large communauté d'utilisateurs pour maintenir la sensibilisation et la compréhension des besoins de la communauté SIG, tout en fournissant des commentaires aux équipes de développement pour aider les utilisateurs à réussir à créer des solutions à la pointe de la technologie à l'aide du logiciel ArcGIS.