Suite

Requête SQL dans arcmap

Requête SQL dans arcmap


J'ai un BUILDING.SHP et dans la table attributaire, il a plusieurs noms et certains des attributs sont "STOR" et "MULTIPLE-STOREY CAR PARK" comme l'image ci-dessous.

Dans ma carte, je ne veux pas étiqueter les enregistrements qui disent "STOR" ou qui contiennent "STOR" comme "STOR BARANG".

Dans ma requête SQL, j'ai utilisé (NAME NOT Like '%STOR%') mais le PARKING À PLUSIEURS ÉTAGE a également disparu.

Y a-t-il une autre requête que je peux utiliser ?


L'utilisation d'une instruction LIKE renverra toute chaîne contenant les termes de recherche - dans ce cas "STOR". Je pense que vous cherchez à filtrer uniquement les noms qui sont spécifiquement "STOR".

Dans ce cas, une simple utilisation de NAM <> 'STOR' devrait faire l'affaire.

Pour exclure les libellés tels que "STOR BARANG" et "STOR" mais toujours inclure "MULTIPLE STOREY CAR PARK", utilisez NAM et non "STOR%".


Les couches de requête ne fonctionneront qu'avec les bases de données d'entreprise. Les géodatabases fichier ou personnelles ne sont pas des espaces de travail en entrée valides pour cet outil.

Si le résultat de la requête SQL saisie renvoie une colonne spatiale, la sortie sera une couche d'entités. Si la requête SQL ne renvoie pas de colonne spatiale, la sortie sera une table autonome.

Les fichiers de connexion nécessaires à cet outil peuvent être créés à l'aide de l'outil Créer une connexion à la base de données.

Il appartiendra alors à l'utilisateur de modifier l'une de ces valeurs souhaitées avant d'exécuter l'outil.

Pour les données géographiques, chaque enregistrement dans le résultat renvoyé par l'instruction SQL doit avoir un SRID associé (identificateur de référence spatiale). La valeur SRID est utilisée par la base de données pour déterminer la référence spatiale des données. Les différences fonctionnelles spécifiques pour le SRID varieront entre chaque plate-forme de SGBD. Certaines plateformes de SGBD prennent en charge plusieurs valeurs SRID dans la même table ArcGIS ne prendra en charge qu'une seule valeur. Cet outil offre la possibilité de choisir la valeur SRID ou utilisera par défaut le SRID du premier enregistrement du jeu de résultats.


Utiliser des mots-clés de configuration pour spécifier les types spatiaux

  • Remplacez le paramètre de configuration GEOMETRY_STORAGE sous le mot-clé de configuration DEFAULTS par GEOGRAPHY. Vous ne devez modifier le paramètre GEOMETRY_STORAGE sous le mot-clé DEFAULTS que si la majorité de vos utilisateurs utiliseront la géographie pour leurs données la plupart du temps.
  • Spécifiez un mot-clé de configuration qui désigne un paramètre de configuration GEOMETRY_STORAGE de GEOGRAPHY lors de la création de classes d'entités. Si seules certaines de vos données seront stockées dans le type géographie, désignez un mot-clé distinct lors de la création de la classe d'entités. Un mot-clé vous est fourni (GÉOGRAPHIE) ou vous pouvez créer votre propre mot-clé personnalisé.

Lors de la création de classes d'entités dans une base de données SQL Server (pas une géodatabase), choisissez le mot-clé géométrie ou géographie.


Types de données géométriques

Comme indiqué dans le tableau, ArcGIS Pro crée et peut utiliser deux types de données géométriques dans SQL Server : SQL Server Geometry et SQL Server Geography.

Géométrie SQL Server

Ce qui suit est un résumé du type Microsoft Geometry. Pour plus d'informations sur le type Geometry et son utilisation, consultez la documentation Microsoft SQL Server.

  • Le type Microsoft Geometry prend en charge tout système de coordonnées X/Y.
  • Les calculs planaires (Terre plate, euclidienne) et l'interpolation en ligne droite entre les sommets sont utilisés pour le rendu et les comparaisons spatiales.
  • Conforme aux fonctionnalités simples de l'Open Geospatial Consortium (OGC) pour la spécification SQL version 1.1.9 et conforme à SQL MM, une norme ISO.

Géographie SQL Server

Ce qui suit est un résumé du type Microsoft Geography. Pour plus d'informations sur le type Géographie et son utilisation, consultez la documentation Microsoft SQL Server.

    Le type Géographie prend en charge de nombreux systèmes de coordonnées géographiques standard, tels que la latitude et la longitude GPS.

Microsoft exige que vous utilisiez des SRID et les systèmes de coordonnées géographiques définis dans le dictionnaire de données SQL Server.

Les coordonnées des données ne peuvent pas dépasser l'étendue globale.


Classes d'entités dans ArcGIS for Desktop

Il existe sept types de classes d'entités que vous pouvez créer dans ArcGIS for Desktop : point, multipoint, ligne, polygone, annotation, dimension et multipatch.

Vous pouvez indiquer de quel type de classe d'entités il s'agit dans l'arborescence du catalogue en fonction de l'icône. Le tableau suivant présente l'icône pour chaque type de classe d'entités.

Dans Microsoft SQL Server, le nom d'une classe d'entités tel qu'il apparaît dans l'arborescence du catalogue inclut le nom de la base de données dans laquelle se trouve la classe d'entités, le nom de l'utilisateur qui possède la classe d'entités et le nom de la classe d'entités elle-même.

Par exemple, une classe d'entités nommée parcelles, détenue par l'utilisateur sasha, dans une géodatabase nommée geodata est répertoriée sous la forme geodata.SASHA.PARCELS dans l'arborescence du catalogue.

Pour une description des différents types de classes d'entités, consultez Notions de base sur les classes d'entités.


Le type spatial géographique Microsoft SQL Server est un type géodésique qui utilise des mesures de latitude/longitude et ne prend pas en charge les systèmes de coordonnées projetées.

Par conséquent, lors de la création d'une classe d'entités à l'aide du type spatial de géographie SQL Server et d'un système de coordonnées projetées, un message d'erreur similaire à l'un des suivants sera renvoyé :

• "Impossible de créer la classe d'entités. Les références de coordonnées données sont incompatibles."

• "Impossible de créer la classe d'entités. L'ensemble de données n'est pas pris en charge au niveau de l'espace de travail."

Pour réussir à créer la classe d'entités, choisissez l'une des options ci-dessous :

• Utilisez un système de coordonnées géographiques pris en charge, tel que WGS84.

• Utilisez la géométrie SQL Server ou le stockage SDEBINARY et choisissez un système de coordonnées projetées.


Semaine 5 : Surveillance des espèces envahissantes

Dans le Introduction à AEJEE et Introduction à ArcGIS sections, vous avez appris qu'un SIG n'est pas seulement un outil d'affichage. Vous avez étudié les données géographiques liées à la carte. Les entités affichées dans un SIG ont deux composants clés : 1) des informations décrivant leur emplacement spatial telles que les latitudes et longitudes limites et 2) des données d'attribut décrivant leurs qualités non spatiales.

Les données non spatiales d'un SIG sont présentées dans des tableaux qui constituent une base de données liée à la carte. Le caractéristiques géographiques dans le tableau sont présenté en rangées horizontales, où chaque ligne représente un seul enregistrement. Le attributs des caractéristiques dans le tableau sont répertorié dans les colonnes verticales, avec les noms de champs en haut. Par exemple, dans le Tableau attributaire des rivières américaines montré à droite, individu rivières sont les caractéristiques géographiques qui sont répertoriés dans des lignes horizontales. Le attributs des rivières inclure leur longueur, nom et système et sont répertoriés dans les colonnes verticales. Dans l'image, le deuxième enregistrement affichant les attributs de la rivière Arkansas est sélectionné.

La puissance de l'analyse géographique est la capacité de poser et de répondre à des questions sur les entités géographiques et leurs attributs et la relation entre elles. C'est ce qu'on appelle un Mettre en doute ou sélection. Une requête choisit un sous-ensemble d'enregistrements dans la base de données. Les requêtes peuvent être simples, ne recherchant qu'une seule fonctionnalité, ou plus complexes, sélectionnant un groupe de fonctionnalités. Les opérations de requête de base peuvent être combinées pour sélectionner des ensembles d'informations complexes.

Requêtes de base de données — utilise l'algèbre des ensembles et l'algèbre booléenne. L'algèbre des ensembles utilise les opérations de comparaison inférieur à, supérieur à, égal à et différent de. Un exemple d'algèbre des ensembles est, "Afficher tous les enregistrements qui sont supérieurs ou égaux à X". L'algèbre booléenne utilise les mots And, Or, Like et Not. Ces deux types de requêtes se concentrent sur les entités et les attributs qui se trouvent dans le jeu de données. Ces critères de sélection peuvent être appliqués individuellement ou en combinaison.

Requêtes spatiales — utiliser la logique spatiale. Par exemple, "Afficher tous les X dans une relation avec l'espace Y". Cela ressemble plus à la logique du diagramme de Venn. Ces requêtes se concentrent davantage sur les relations physiques entre les ensembles de données, telles que la recherche de toutes les rivières situées dans un état donné ou de tous les états adjacents à une rivière.


Comment : calculer la zone de données stockées à l'aide du type de données SQL Geometry ou SQL Geography

Les instructions fournies peuvent être utilisées pour calculer la surface totale des données stockées à l'aide du type de données Géographie SQL ou Géométrie SQL dans une base de données SQL Server 2008 ou SQL Server 2012. La syntaxe fournie est exécutée à l'aide d'une requête dans SQL Server Management Studio (SSMS).

Lorsqu'il est utilisé avec le type de données SQL Geography, les résultats de STArea() sont renvoyés en unités carrées de la mesure linéaire définie par le système de référence spatiale de l'instance géographique. Lorsqu'il est utilisé avec le type de données SQL Geometry, les résultats de STArea() sont les unités au carré dans lesquelles les coordonnées ont été fournies.

Ainsi, si vous utilisez un système de coordonnées où les valeurs de coordonnées sont mesurées en mètres, la zone est mesurée en mètres carrés. Si les coordonnées ont été fournies en pieds, la superficie est en pieds carrés.


Stockage de géodatabase dans des bases de données relationnelles

Au cœur de la géodatabase se trouve un schéma de base de données relationnelle standard (c'est-à-dire non exotique) (une série de tables de base de données standard, de types de colonnes, d'index et d'autres objets de base de données). Ce stockage physique simple fonctionne de concert avec, et est contrôlé par, un ensemble d'objets d'application de niveau supérieur hébergés dans le niveau d'application, qui peut être un ArcGIS for Desktop , une logique ArcGIS Engine intégrée ou ArcGIS for Server .

Chacun d'entre eux comprend des objets de géodatabase qui définissent un modèle de système d'information géographique (SIG) générique partagé par toutes les applications et tous les utilisateurs ArcGIS. Le but des objets de géodatabase est d'exposer un modèle d'informations SIG de haut niveau aux clients et de conserver l'implémentation détaillée de ce modèle dans tout modèle de stockage approprié, par exemple, dans les tables du système de gestion de base de données (SGBD) standard, dans les géodatabases de fichiers, et en tant que flux de langage de balisage extensible (XML).

Le stockage de géodatabase comprend à la fois le schéma et la base de règles pour chaque jeu de données géographiques, ainsi qu'un stockage tabulaire simple des données spatiales et attributaires.

La structure de la géodatabase inclut les définitions, les règles d'intégrité et le comportement de chaque jeu de données géographiques. Il s'agit notamment des propriétés des classes d'entités, des topologies, des réseaux, des catalogues d'images, des relations, des domaines, etc. Le schéma est conservé dans une collection de méta-tables de géodatabase dans le SGBD qui définit l'intégrité et le comportement des informations géographiques.

Les représentations spatiales sont le plus souvent stockées sous forme d'entités vectorielles ou de jeux de données raster avec des attributs tabulaires traditionnels. Par exemple, une table SGBD peut être utilisée pour stocker une classe d'entités où chaque ligne de la table représente une entité. Une colonne de forme dans chaque ligne est utilisée pour contenir la géométrie ou la forme de l'entité. La colonne de forme contenant la géométrie est généralement l'un des deux types de colonnes :

Une collection homogène d'entités communes, chacune ayant la même représentation spatiale, telle qu'un point, une ligne ou un polygone, et un ensemble commun de colonnes d'attributs, est appelée classe d'entités et est gérée dans une seule table.

Les types de données raster et d'imagerie peuvent également être gérés et stockés dans des tables relationnelles. Les données raster sont généralement beaucoup plus volumineuses et nécessitent une table d'appoint pour le stockage. Pour le stockage et l'accès au SGBD, chaque raster est découpé en morceaux plus petits, ou blocs, et stocké dans des lignes individuelles dans la table de blocs distincte.

Les types de colonnes qui contiennent la géométrie vectorielle et raster peuvent varier d'une base de données à l'autre. Récemment, la plupart des SGBD ont ajouté la prise en charge des extensions de type spatial, et la géodatabase peut facilement les utiliser pour contenir la géométrie spatiale. Esri a été étroitement impliqué dans les efforts visant à étendre le langage de requête structuré (SQL) pour les types spatiaux en tant qu'auteur principal des spécifications SQL/MM Part 3 Spatial et Open Geospatial Consortium, Inc. (OGC) Simple Features SQL. Esri s'est concentré sur la prise en charge de ces types, ainsi que des types spatiaux indépendants Oracle Spatial, PostGIS (dans PostgreSQL) et Microsoft SQL Server, dans la persistance des géodatabases utilisant les normes SGBD.

Actuellement, tous les SGBD incluent la prise en charge du type spatial pour les géodatabases utilisant ArcGIS comme suit :

  • Oracle utilisant le type ST_Geometry ou, éventuellement, le type Oracle Spatial
  • IBM DB2 utilisant l'objet de géométrie Spatial Extender
  • Informix utilisant l'objet de géométrie Spatial DataBlade
  • PostgreSQL utilisant les géométries ST_Geometry ou PostGIS
  • Microsoft SQL Server utilisant les types spatiaux, la géométrie et la géographie Microsoft

Pour des informations détaillées sur le schéma de stockage utilisé par la géodatabase dans chaque SGBD, reportez-vous à Comment les géodatabases sont-elles stockées dans un SGBD ?


SQL trouve un polygone dans lequel se trouve un point

J'ai une classe d'entités de points et je souhaite récupérer des informations sur le polygone dans lequel se trouve un point particulier à l'aide de SQL. La requête suivante fonctionne mais ne renvoie aucun résultat :

sélectionnez * parmi les bassins
joindre (Sélectionnez la forme à partir de la couche de points où Incrément = 02047) en tant que point
sur Basins.Shape.STWithin(Point.Shape) = 1

J'ai également essayé STIntersects avec le même résultat.

Ensuite, j'ai créé une classe d'entités contenant un seul point et la requête a renvoyé le résultat correct. Il semble échouer à l'évaluation de l'instruction Select pour la jointure. Lorsqu'elle est exécutée par elle-même, l'instruction select renvoie le champ Shape, mais lorsqu'elle est intégrée à la requête de jointure, elle échoue.

Toute aide serait appréciée.

par JoshuaBixby

Je suppose que ALLPOINTS a été chargé dans SQL Server sans utiliser les outils Esri, puis enregistré plus tard avec la géodatabase d'entreprise. La couche ALLPOINTS a été créée à partir de points, mais celui qui a créé ces points n'a pas associé de SRID aux points, d'où la raison pour laquelle il est NULL. Lorsque la table a été enregistrée auprès de l'EGDB, une référence spatiale a été attribuée, mais l'attribution de la référence spatiale met à jour les métadonnées, elle ne revient pas en arrière et ne l'ajoute pas à chaque enregistrement de la table. Lorsque vous avez sélectionné le point et exporté vers POINTTEST, ArcGIS a pris la référence spatiale attribuée et l'a correctement attribuée au point lors de sa création dans la nouvelle classe d'entités.

Si ALLPOINTS est enregistré auprès de l'EGDB, je pense que vous ne serez pas autorisé à mettre à jour le SRID en dehors d'ArcGIS. Le moyen le plus simple d'obtenir le SRID correct attribué à chacune des géométries dans ALLPOINTS est d'exporter l'intégralité de la classe d'entités dans l'EGDB, de supprimer l'ancienne, puis de renommer la nouvelle en ALLPOINTS.


Rubriques connexes

Snowflake fournit le type de données GEOGRAPHY, qui modélise la Terre comme s'il s'agissait d'une sphère parfaite.

Le type de données GEOGRAPHY suit la norme WGS 84 (référence spatiale ID 4326 pour plus de détails, voir https://spatialreference.org/ref/epsg/wgs-84/).

Les points sur la terre sont représentés en degrés de longitude (de -180 degrés à +180 degrés) et de latitude (-90 à +90).

L'altitude n'est actuellement pas prise en charge.

Les segments de ligne sont interprétés comme des arcs géodésiques à la surface de la Terre.

Snowflake fournit également des fonctions géospatiales qui fonctionnent sur le type de données GEOGRAPHY.

Si vous disposez de données géospatiales (par exemple, données de longitude et de latitude, WKT, WKB, GeoJSON, etc.), vous devez convertir et stocker ces données dans les colonnes GEOGRAPHY, plutôt que de conserver les données dans leur format d'origine dans les colonnes VARCHAR, VARIANT ou NUMBER. Le stockage de vos données dans les colonnes GEOGRAPHY peut améliorer considérablement les performances des requêtes qui utilisent la fonctionnalité géospatiale.

Formats d'entrée et de sortie géospatiaux¶

Les formats d'entrée et de sortie du type de données GEOGRAPHY, ainsi que les noms et la sémantique des fonctions géospatiales, suivent les normes de l'industrie. Les formats d'entrée et de sortie pris en charge sont :

Les références suivantes peuvent également vous être utiles :

Accès simple aux fonctionnalités d'Open Geospatial Consortium / Architecture commune et option SQL :

Tout écart par rapport à ces normes est explicitement noté dans la documentation Snowflake.

Remarque sur la gestion GeoJSON¶

Les normes WKT et WKB spécifient un format dont seule la sémantique des objets WKT/WKB dépend du système de référence - par exemple, un plan ou une sphère.

La norme GeoJSON, quant à elle, spécifie à la fois un format et sa sémantique : les points GeoJSON sont explicitement des coordonnées WGS 84, et les segments de ligne GeoJSON sont censés être des bords plans (lignes droites).

Contrairement à cela, le type de données Snowflake GEOGRAPHY interprète tous les segments de ligne - y compris ceux entrés ou sortis au format GeoJSON - comme des arcs géodésiques. En substance, Snowflake traite GeoJSON comme un WKT au format JSON avec une sémantique sphérique.

Remarque sur la gestion des EWKT et EWKB¶

EWKT et EWKB sont des formats non standard introduits par PostGIS. Ils améliorent les formats WKT et WKB en incluant un identificateur de système de référence spatiale (SRID), qui spécifie le système de référence de coordonnées à utiliser avec les données. Snowflake prend actuellement en charge uniquement WGS84, qui correspond à SRID=4326.

Par défaut, Snowflake émet une erreur si une valeur d'entrée EWKB ou EWKT contient un SRID autre que 4326. Inversement, toutes les valeurs de sortie EWKB et EWKT ont SRID=4326.

Types d'objets géospatiaux¶

Le type de données GEOGRAPHY peut stocker les types d'objets géospatiaux suivants :


Voir la vidéo: enterprise connection for arcgis using sql server