目錄
题记
系统需求
关键词
怎么使用
操作步骤
创建表
使用ArcSDE命令进行注册
插入数据
使用空间关系操作
查询几何图形实例的属性和行为
点数
维度
闭合
空间引用标识符 (SRID)
两种数据类型之间的差别
构造几何图形实例
首頁 資料庫 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
-------------------------------------------------------------------------------------------------------
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1274
29
C# 教程
1256
24
sqlserver怎麼匯入mdf文件 sqlserver怎麼匯入mdf文件 Apr 08, 2024 am 11:41 AM

匯入步驟如下:將 MDF 檔案複製到 SQL Server 的資料目錄(通常為 C:\Program Files\Microsoft SQL Server\MSSQL\DATA)。在 SQL Server Management Studio(SSMS)中,開啟資料庫並選擇「附加」。點選“新增”按鈕,選擇 MDF 檔案。確認資料庫名稱,點選確定按鈕即可。

sqlserver資料庫中已存在名為的物件怎麼解決 sqlserver資料庫中已存在名為的物件怎麼解決 Apr 05, 2024 pm 09:42 PM

對於 SQL Server 資料庫中已存在同名對象,需要採取下列步驟:確認物件類型(表格、檢視、預存程序)。如果物件為空,可使用 IF NOT EXISTS 跳過建立。如果物件有數據,使用不同名稱或修改結構。使用 DROP 刪除現有物件(謹慎操作,建議備份)。檢查架構更改,確保沒有引用刪除或重新命名的物件。

Hibernate 框架中 HQL 和 SQL 的差異是什麼? Hibernate 框架中 HQL 和 SQL 的差異是什麼? Apr 17, 2024 pm 02:57 PM

HQL和SQL在Hibernate框架中進行比較:HQL(1.物件導向語法,2.資料庫無關的查詢,3.類型安全),而SQL直接操作資料庫(1.與資料庫無關的標準,2.可執行複雜查詢和資料操作)。

怎麼查看sqlserver連接埠號 怎麼查看sqlserver連接埠號 Apr 05, 2024 pm 09:57 PM

若要查看 SQL Server 連接埠號碼:開啟 SSMS,連線到伺服器。在物件資源管理器中找到伺服器名稱,右鍵單擊它,然後選擇“屬性”。在「連線」標籤中,查看「TCP 連接埠」欄位。

sqlserver誤刪資料庫怎麼恢復 sqlserver誤刪資料庫怎麼恢復 Apr 05, 2024 pm 10:39 PM

若誤刪 SQL Server 資料庫,可採取下列步驟還原:停止資料庫活動;備份日誌檔案;檢查資料庫日誌;復原選項:從備份還原;從交易日誌還原;使用 DBCC CHECKDB;使用第三方工具。請定期備份資料庫並啟用交易日誌以防止資料遺失。

sqlserver服務無法啟動怎麼辦 sqlserver服務無法啟動怎麼辦 Apr 05, 2024 pm 10:00 PM

當 SQL Server 服務無法啟動時,可採取下列步驟解決:檢查錯誤日誌以確定根本原因。確保服務帳戶具有啟動服務的權限。檢查依賴項服務是否正在執行。禁用防毒軟體。修復 SQL Server 安裝。如果修復不起作用,重新安裝 SQL Server。

sqlserver安裝失敗怎麼樣刪除乾淨 sqlserver安裝失敗怎麼樣刪除乾淨 Apr 05, 2024 pm 11:27 PM

如果 SQL Server 安裝失敗,可透過下列步驟清理:解除安裝 SQL Server刪除註冊表項刪除檔案和資料夾重新啟動計算機

sqlserver刪除不乾淨無法重新安裝怎麼辦 sqlserver刪除不乾淨無法重新安裝怎麼辦 Apr 05, 2024 pm 11:30 PM

SQL Server 刪除不乾淨導致無法重新安裝的問題可以透過以下步驟解決:手動刪除檔案和登錄項目;使用SQL Server 安裝卸載工具;使用第三方卸載工具;檢查Windows 事件檢視器;重新啟動電腦;重新安裝SQL Server。

See all articles