Table des matières
题记
系统需求
关键词
怎么使用
操作步骤
创建表
使用ArcSDE命令进行注册
插入数据
使用空间关系操作
查询几何图形实例的属性和行为
点数
维度
闭合
空间引用标识符 (SRID)
两种数据类型之间的差别
构造几何图形实例
Maison base de données tutoriel mysql ArcSDE for SQLServer的SQL操作

ArcSDE for SQLServer的SQL操作

Jun 07, 2016 pm 03:20 PM
for sql sqlserver 操作

题记 大家对Oracle数据库的SQL操作应该不陌生吧,也就是出于所谓的效率而言,使用SQL语句对ArcGIS对象(要素类)进行直接的读操作或写操作,目前来说在电信行业运用较广泛,这方面的知识我就不再赘述。那么可能会有人问,那么在SQL Server数据库是否可以使用

题记

大家对Oracle数据库的SQL操作应该不陌生吧,也就是出于所谓的效率而言,使用SQL语句对ArcGIS对象(要素类)进行直接的读操作或写操作,目前来说在电信行业运用较广泛,这方面的知识我就不再赘述。那么可能会有人问,那么在SQL Server数据库是否可以使用SQL语句直接操作ArcSDE的对象呢?以前不可以,但是现在可以了。

系统需求

为什么说上面故意卖个关子呢,也就是需要强调一下系统需求的重要性。也就是说从SQL Server 2008版本后,才可以的。自从2008版本之后,MS提供了为空间数据专有的也就是MS自己的存储:Geometry和Geogrphy。

关键词

ArcSDE 地理数据库支持使用 Microsoft 的几何类型和地理类型存储矢量数据。SQL Server 2008 中提供这些类型,因此无需单独安装即可使用。这个与比较繁杂的Oracle的SQL操作引用St_shapelib.dll来说就显得非常方便了。

Microsoft 几何类型(Geometry)与现有 GIS 空间数据类型相似:使用任意平面(如已定义的投影)内的坐标。

Microsoft 地理类型(Geometry)用于旋转椭球体上的数据,该数据与纬度和经度坐标一同存储。

geometry 和 geography 数据类型支持十一种空间数据对象或实例类型。但是,这些实例类型中只有七种“可实例化”;可以在数据库中创建并使用这些实例(或可对其进行实例化)。这些实例的某些属性由其父级数据类型派生而来,使其在 GeometryCollection 中区分为 Points、 LineStrings、Polygons 或多个 geometry 或 geography 实例。

ArcSDE for SQLServer的SQL操作

如图所示,geometry 和 geography 数据类型的七种可实例化类型为 Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon 和GeometryCollection。只要特定实例的格式正确,即使未显式定义该实例,geometry 和 geography 类型也可识别该实例。例如,如果您使用STPointFromText() 方法显式定义了一个 Point 实例,只要方法输入的格式正确,geometry 和 geography 便将该实例识别为 Point。如果您使用STGeomFromText() 方法定义了相同的实例,则 geometry 和 geography 数据类型都将该实例识别为 Point。

怎么使用

默认情况下,SQL Server 中的 ArcSDE 地理数据库使用 ArcSDE 压缩二进制类型,因此如果您要使用 Microsoft 几何或地理类型进行存储,必须

(1) 将 SDE_dbtune 表中 DEFAULTS 配置关键字下的 GEOMETRY_STORAGE 参数更改为 GEOMETRY 或 GEOGRAPHY

(2) 指定可在创建要素类时指定 GEOMETRY 或 GEOGRAPHY 的 GEOMETRY_STORAGE 参数的配置关键字。

如果多数用户在多数时候都使用几何或地理类型存储数据,则只应更改 DEFAULTS 关键字下的 GEOMETRY_STORAGE 参数。如果只有部分数据将以几何或地理类型进行存储,则应在创建要素类时指定一个单独的关键字。为您提供了两个关键字:GEOMETRY 和 GEOGRAPHY,也可以创建自己的自定义关键字。

用户在创建要素类或者导入要素类的过程中可以选择以上关键字,那么这些数据就已MS的几何或者地理类型进程存储了,那么用户也就可以使用SQL对数据进行操作了。

操作步骤

因为Geometry和Geogrphy基本类似,那么本文就已Geometry存储来演示一下怎么在ArcSDE的SQL Server使用SQL对空间数据进行操作

创建表

 

使用ArcSDE命令进行注册

 

插入数据

 

ArcSDE for SQLServer的SQL操作

使用空间关系操作

 

ArcSDE for SQLServer的SQL操作

微软为我们提供了丰富的空间关系操作符

 


大家可能都知道Oracle的一些关系操作符,有些走空间索引,有些不走空间索引,那么我们在使用这些关系操作符时一定要使用走空间索引的,那么对SQLServer来说也是一样的。

在特定条件下,空间索引支持以下面向集合的几何图形方法:STContains()、STDistance()、STEquals()、STIntersects()、STOverlaps()、STTouches() 和 STWithin()。若要使空间索引支持这些方法,必须在查询的 WHERE 或 JOIN ON 子句中使用这些方法,并且必须在采用如下常规形式的谓词中执行这些方法:

 

若要返回非 NULL 结果,geometry1 和 geometry2 必须具有相同的空间引用标识符 (SRID)。否则,该方法将返回 NULL。


查询几何图形实例的属性和行为

点数

所有非空 geometry 实例都由“点”组成。这些点表示在其上绘制几何图形的面的 X 和 Y 坐标。geometry 提供许多用于查询实例的点的内置方法。

 

维度

非空 geometry 实例可以为零维、一维或二维。零维 geometries(例如 Point 和 MultiPoint)没有长度或面积。一维对象(例如 LineString 和 MultiLineString)具有长度。二维实例(例如 Polygon 和 MultiPolygon)具有面积和长度。空实例将报告为 -1 维,并且GeometryCollection 将根据其内容类型报告一个面积。

 

闭合

“闭合的”geometry 实例是指起始点和终点相同的图形。Polygon 实例是闭合的。Point 实例不是闭合的。

环是一个简单、闭合的 LineString 实例。

 

空间引用标识符 (SRID)

空间引用标识符 (SRID) 是指定 geometry 实例所在的坐标系的标识符。两个拥有不同 SRID 的实例是不可比的。

 

此属性可以进行修改。

更多详见:http://msdn.microsoft.com/zh-cn/library/bb964708.aspx

两种数据类型之间的差别

两种空间数据类型的行为经常非常相似,但在数据存储方式和操作方式上存在某些重要的差别。

http://msdn.microsoft.com/zh-cn/library/bb964711.aspx

构造几何图形实例

http://msdn.microsoft.com/zh-cn/library/bb895335.aspx

 

-------------------------------------------------------------------------------------------------------

QQ一群:              78773981

QQ二群:            225989940

Blog:               http://blog.csdn.net/linghe301
Weibo:            http://www.weibo.com/linghe301
-------------------------------------------------------------------------------------------------------
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1663
14
Tutoriel PHP
1263
29
Tutoriel C#
1236
24
Comment importer un fichier mdf dans sqlserver Comment importer un fichier mdf dans sqlserver Apr 08, 2024 am 11:41 AM

Les étapes d'importation sont les suivantes : Copiez le fichier MDF dans le répertoire de données de SQL Server (généralement C:\Program Files\Microsoft SQL Server\MSSQL\DATA). Dans SQL Server Management Studio (SSMS), ouvrez la base de données et sélectionnez Attacher. Cliquez sur le bouton Ajouter et sélectionnez le fichier MDF. Confirmez le nom de la base de données et cliquez sur le bouton OK.

Comment résoudre le problème selon lequel l'objet nommé existe déjà dans la base de données sqlserver Comment résoudre le problème selon lequel l'objet nommé existe déjà dans la base de données sqlserver Apr 05, 2024 pm 09:42 PM

Pour les objets du même nom qui existent déjà dans la base de données SQL Server, les étapes suivantes doivent être suivies : Confirmez le type d'objet (table, vue, procédure stockée). IF NOT EXISTS peut être utilisé pour ignorer la création si l'objet est vide. Si l'objet contient des données, utilisez un nom différent ou modifiez la structure. Utilisez DROP pour supprimer des objets existants (soyez prudent, sauvegarde recommandée). Vérifiez les modifications de schéma pour vous assurer qu'il n'y a aucune référence à des objets supprimés ou renommés.

Quelle est la différence entre HQL et SQL dans le framework Hibernate ? Quelle est la différence entre HQL et SQL dans le framework Hibernate ? Apr 17, 2024 pm 02:57 PM

HQL et SQL sont comparés dans le framework Hibernate : HQL (1. Syntaxe orientée objet, 2. Requêtes indépendantes de la base de données, 3. Sécurité des types), tandis que SQL exploite directement la base de données (1. Normes indépendantes de la base de données, 2. Exécutable complexe requêtes et manipulation de données).

Comment récupérer une base de données supprimée accidentellement dans SQLserver Comment récupérer une base de données supprimée accidentellement dans SQLserver Apr 05, 2024 pm 10:39 PM

Si vous supprimez accidentellement une base de données SQL Server, vous pouvez suivre les étapes suivantes pour la récupérer : arrêter l'activité de la base de données ; sauvegarder les fichiers journaux ; vérifier les options de récupération : restaurer à partir d'une sauvegarde ; utiliser DBCC CHECKDB ; outils de fête. Veuillez sauvegarder régulièrement votre base de données et activer la journalisation des transactions pour éviter toute perte de données.

Comment vérifier le numéro de port sqlserver Comment vérifier le numéro de port sqlserver Apr 05, 2024 pm 09:57 PM

Pour afficher le numéro de port SQL Server : Ouvrez SSMS et connectez-vous au serveur. Recherchez le nom du serveur dans l'Explorateur d'objets, cliquez dessus avec le bouton droit et sélectionnez Propriétés. Dans l'onglet Connexion, affichez le champ Port TCP.

Que faire si le service sqlserver ne peut pas être démarré Que faire si le service sqlserver ne peut pas être démarré Apr 05, 2024 pm 10:00 PM

Lorsque le service SQL Server ne parvient pas à démarrer, voici quelques étapes à résoudre : Consultez le journal des erreurs pour déterminer la cause première. Assurez-vous que le compte de service est autorisé à démarrer le service. Vérifiez si les services de dépendance sont en cours d'exécution. Désactivez le logiciel antivirus. Réparez l'installation de SQL Server. Si la réparation ne fonctionne pas, réinstallez SQL Server.

Comment supprimer sqlserver si l'installation échoue ? Comment supprimer sqlserver si l'installation échoue ? Apr 05, 2024 pm 11:27 PM

Si l'installation de SQL Server échoue, vous pouvez la nettoyer en suivant ces étapes : Désinstaller SQL Server Supprimer les clés de registre Supprimer les fichiers et dossiers Redémarrer l'ordinateur

Comment changer l'installation anglaise de sqlserver en chinois Comment changer l'installation anglaise de sqlserver en chinois Apr 05, 2024 pm 10:21 PM

L'installation de SQL Server en anglais peut être modifiée en chinois en suivant les étapes suivantes : téléchargez le module linguistique correspondant ; arrêtez le service SQL Server ; modifiez la langue de l'instance ; modifiez la langue de l'interface utilisateur ;

See all articles