设为首页 收藏本站
查看: 647|回复: 0

[经验分享] SQL Server 2008 空间数据存储摘抄(SRID 点 MultiPoint LineString MultiLineString 多边形 MultiP

[复制链接]

尚未签到

发表于 2015-6-29 11:46:07 | 显示全部楼层 |阅读模式
  本文摘抄自SQL 2008 帮助阅读笔记
  有两种类型的空间数据。geometry 数据类型支持平面或欧几里得(平面球)数据。geometry 数据类型符合适用于 SQL 规范的开放地理空间联盟 (OGC) 简单特征 1.1.0 版。
  另外,SQL Server 支持 geography 数据类型,该数据类型可存储诸如 GPS 纬度和经度坐标之类的椭圆体(圆球)数据。
  geometrygeography 数据类型支持十一种空间数据对象或实例类型。但是,这些实例类型中只有七种“可实例化”;可以在数据库中创建并使用这些实例(或可对其进行实例化)。这些实例的某些属性由其父级数据类型派生而来,使其在 GeometryCollection 中区分为 Points LineStringsPolygons 或多个 geometry geography 实例。
  下图描述了 geometrygeography 数据类型所基于的 geometry 层次结构。geometry geography 的可实例化类型以蓝色表示。
DSC0000.png
  如图所示,geometry geography 数据类型的七种可实例化类型为 PointMultiPointLineStringMultiLineStringPolygonMultiPolygonGeometryCollection。只要特定实例的格式正确,即使未显式定义该实例,geometry geography 类型也可识别该实例。例如,如果您使用 STPointFromText() 方法显式定义了一个 Point 实例,只要方法输入的格式正确,geometrygeography 便将该实例识别为 Point。如果您使用 STGeomFromText() 方法定义了相同的实例,则 geometrygeography 数据类型都将该实例识别为 Point
  
  
  SRID (空间引用标识符)
  每个空间实例都有一个空间引用标识符 (SRID)。
  SRID 对应于基于特定椭圆体的空间引用系统,可用于平面球体映射或圆球映射。
  空间列可包含具有不同 SRID 的对象。
  然而,在使用 SQL Server 空间数据方法对数据执行操作时,仅可使用具有相同 SRID 的空间实例。
  从两个空间数据实例派生的任何空间方法的结果仅在这两个实例具有相同的 SRID(该 SRID 基于相同的用于确定实例坐标的度量单位、数据和投影)时才有效。SRID 最常见的度量单位为米或平方米。
  如果两个空间实例的 SRID 不相同,则对这两个实例使用 geometrygeography 数据类型方法后的结果将返回 NULL。例如,若要以下谓词返回非 NULL 结果,两个 geometry 实例(geometry1 和 geometry2)必须具有相同的 SRID:
  geometry1.STIntersects(geometry2) = 1
  空间引用标识系统是由 European Petroleum Survey Group (EPSG) standard(欧洲石油测绘组 (EPSG) 标准)定义的,它是为绘图、测绘以及大地测量数据存储而开发的一组标准。该标准归石油天然气生产商 (OGP) 测绘和定位委员会所有。

几何图形实例默认 SRID 为零
  SQL Server 中 geometry 实例的默认 SRID 为 0。利用 geometry 空间数据,执行计算是不需要空间实例的指定 SRID 的;因此,实例可驻留在未定义的平面空间。若要在 geometry 数据类型方法的计算中指明未定义的平面空间,SQL Server 数据库引擎 使用 SRID 0。

地域实例必须使用支持的 SRID
  SQL Server 支持基于 EPSG 标准的 SRID。必须使用 geography 实例的支持,SQL Server 的 SRID 执行计算或将方法用于地域空间数据。
  SRID 必须与 sys.spatial_reference_systems 目录视图中显示的 SRID 中的一个匹配。
  如前所述,在使用 geography 数据类型对空间数据执行计算时,结果将取决于在创建数据时使用的是哪个椭圆体,因为为每个椭圆体都分配了一个特定空间引用标识符 (SRID)。
  对 geography 实例使用方法时,SQL Server 使用等于 4326 的默认 SRID,它将映射到 WGS 84 空间引用系统。如果要使用 WGS 84(或 SRID 4326)之外的某个空间引用系统中的数据,您需要确定地域空间数据的特定 SRID。
  
  
  在 SQL Server 空间数据中,Point 是表示单个位置的零维对象,可能包含 Z(仰角)和 M(度量)值。


  下面的示例创建一个表示点 (3, 4) 的 geometry Point 实例,该实例的 SRID 为 0。

DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT (3 4)', 0);

  下一个示例创建一个表示点 (3, 4) 的 geometry Point 实例,该实例的 Z(仰角)值为 7,M(度量)值为 2.5,默认 SRID 为 0。

DECLARE @g geometry;
SET @g = geometry::Parse('POINT(3 4 7 2.5)');

  最后一个示例返回 geometry Point 实例的 X、Y、Z 和 M 值。

SELECT @g.STX;
SELECT @g.STY;
SELECT @g.Z;
SELECT @g.M;

  Z 和 M 值可以显式指定为 NULL,如下例所示。

DECLARE @g geometry;
SET @g = geometry::Parse('POINT(3 4 NULL NULL)');

  C#

SqlGeometry centPoint = (SqlGeometry)dr.GetValue(1); // 中心点或点SQlGeometry类型
//实际上下面的代码执行一次就跳出了
// 随机取了第一个点为中心点
for (int j = 1; j

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-81483-1-1.html 上篇帖子: SQL Server 2005 BI数据挖掘案例(库存预测) 下篇帖子: SQL Server高级内容之case语法函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表