[推荐] -------------我的一些笔记七(空间数据的一些操作)------------- 100fredrickhu]

发布时间:2016-12-8 8:12:44 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"[推荐] -------------我的一些笔记七(空间数据的一些操作)------------- 100fredrickhu]",主要涉及到[推荐] -------------我的一些笔记七(空间数据的一些操作)------------- 100fredrickhu]方面的内容,对于[推荐] -------------我的一些笔记七(空间数据的一些操作)------------- 100fredrickhu]感兴趣的同学可以参考一下。

--空间数据的一些操作 1.在创建表时定义geometry类型的列 例子: create table streets ( streetid int identity(1,1), streetName nvarchar(20), streetGeo geometry ); go 2.向表中插入几何数据 insert into streets values ('street1',geometry::stgeomfromtext('LINESTRING(100 100,20  180, 180 180)',0)) 3.从表中获取几何数据 --注意,直接读取无法看到真实的含义,可以在select 语句将该列 的值读取到一个几何数据类型的变量,具体语句如下: declare @g geometry select @g=streetgeo from streets where streetnam='street1' select @g.stastext() go 4.获取geometry 实例中包含的点 (1)获取geometry 实例中包含的点数 使用STNumPoints()函数可以获得geometry实例中包含的点数。例如 : declare @g geometry select @g=streetgeo from streets where streetnam='street1' select @g.STNumPoints() go (2)获取geometry 实例中包含的点 declare @g geometry select @g=streetgeo from streets where streetnam='street1' select @g.STPointN(2).Tostring() go (3)获取起始点和终点 declare @g geometry select @g=streetgeo from streets where streetnam='street1' select @g.STStartPoint().ToString() as 起始点,@g.STEndPoint ().ToString() as 终点 go (4)获取多边形的中心点 declare @g geometry set @g=geometry::STGeomFromText('POLYGON(0 0,0 2, 2 2,0 2, 0  0))',0); select @g.STCentroid().Tostring(); 5.获取geometry实例的维度信息 (1)返回对象的维度 使用STDimension()函数可以获取对象的维度信息。 例如: declare @g geometry; set @g=geometry::STGeomFromText('POINT(3,4)',)); select @g.STAsText(),@g.STDimension() go 结果是: /* POINT(3,4),0 */ (2)计算对象的长度 使用STLength()函数可以计算一维或二维对象的长度。例如: declare @g geometry select @g=streetgeo from streets where streetnam='street1' select @g.STLength() go (3)计算对象的面积 使用STArea()函数可以计算二维对象的面积。例如: declare @g geometry set @g=geometr::STGeomFromText('POLYGON((0 0,2 0, 2 2,0 2,0 0))',0); select @g.STArea() 6.检查是否为空 在使用geometry实例之前,需要判断是否为空,可以使用STlsEmpty()函数实现此功能,当geometry实例为空时,则返回1,否则返回0 declare @g geometry; set @g=geometry::STGeomFromText('POLYGON EMPTY',0); select @g STlsEmpty(); set @g=geometry::STGeomFromText('POLYGON((0 0,2 0, 2 2,0 2,0 0))',0); select @g STlsEmpty(); 返回结果为1和0 7.判断geometry实例是否为简单 满足下面条件的geometry实例子=被称为简单的geometry实例 (1)实例中任何一个图形都不与自身相交,但其终点除外。 (2)实例上任意两个图形可以在某个点相交,但两个边界上的点除外。 当geometry 实例为简单实例时,返回1,否则返回0 例如: declare @g geometry; set @g=geometry::STGeomFromText('LINESTRING(0 0,2 2,0 2,2 0)',0); select @g.STlsSimple(); 结果为1 declare @g geometry; set @g=geometry::STGeomFromText('LINESTRING(0 0,0 2,2 2,2 0)',0); select @g.STlsSimple(); 结果为0 8.返回geometry实例的边界 除Point和MultiPoint实例外,其他geometry实例都存在边界.使用STBoundary()函数可以返回geometry实例的边界 下面是在LineString实例上应用STBoundary()函数的实例。 declare @g geometry; set @g=geometry::STGeomFromText('LINESTRING(1 1,2 2,0 2,2 1)',0); select @g.STBoundary().Tostring(); 返回结果为Multipoint((2,1),(1,1)),即LineString实例的起点和终点. Polygon和MultiPolygon实例的边界值为Multipoint 实例。下面是Polygon应用STBoundary()函数的实例。 declare @g geometry; set @g=geometry::STGeomFromText('POLYGON((0 0,0 3,3 3,3 0,0 0)(1 1,1 2, 2 1,1 1))',10); select @g.STBoundary().Tostring(); 返回结果为Multilinestring((1 1,1 2,2 1,1 1),(0 0 ,3 0 , 3 3, 0 3,0 0)),即Polygon的环。 ---这次先写这么多,太多了,下次再写

SF必须是自己的

厉害.

没抢到沙发。

db.....

学习了。

引用 1 楼 fredrickhu 的回复:SF必须是自己的 BS自己坐sf的

这么高深.....

学习,

引用 6 楼 sgtzzc 的回复:引用 1 楼 fredrickhu 的回复: SF必须是自己的 BS自己坐sf的 切...

Bs坐了sf的还切的人

引用 10 楼 jinjazz 的回复:Bs坐了sf的还切的人 继续BS

稍微提点意见,个人觉得作为技术文章,应该写下前因后果。。。 比如空间坐标系的基本概念,为什么要用这个对象,否则没接触过gis行业的人会不理解的

不仅送自己的学习心得,竟然还送分,真是好人。

引用 12 楼 jinjazz 的回复:稍微提点意见,个人觉得作为技术文章,应该写下前因后果。。。 比如空间坐标系的基本概念,为什么要用这个对象,否则没接触过gis行业的人会不理解的我也支持

引用 12 楼 jinjazz 的回复:稍微提点意见,个人觉得作为技术文章,应该写下前因后果。。。 比如空间坐标系的基本概念,为什么要用这个对象,否则没接触过gis行业的人会不理解的 这个在笔记六里面写了 呵呵 不过谢谢提醒

引用 12 楼 jinjazz 的回复:稍微提点意见,个人觉得作为技术文章,应该写下前因后果。。。 比如空间坐标系的基本概念,为什么要用这个对象,否则没接触过gis行业的人会不理解的 gis ==> 瓜是傻

mark,up

不错,继续啊 

这个确实不会

突然炎热

小F的作品,顶

引用 12 楼 jinjazz 的回复:稍微提点意见,个人觉得作为技术文章,应该写下前因后果。。。 比如空间坐标系的基本概念,为什么要用这个对象,否则没接触过gis行业的人会不理解的 确实不理解

学习一下

  看看~~

...........

jf。。。

kan kan 

先顶了··

该回复于2010-12-02 13:04:18被版主删除

学习。。

厉害.

必须的   顶!

学习学习

不错,学习了。。。。。。。。。。。。。。。

不懂,学习

还不错可以啊楼主

学习。。。。。

学习!

我顶老大啊!!

小F的作品,顶

不懂 帮顶 学习 蹭分

不错 不懂 帮顶 

学习一下

学习了~~~

good

什么东西什么东西 我操

挺专业的,看不懂

sadsadsadsadsadad

学习。

学习。。

 慢慢 学吧    

好好好好好好好好好

稍微提点意见,个人觉得作为技术文章,应该写下前因后果。。。 比如空间坐标系的基本概念,为什么要用这个对象,否则没接触过gis行业的人会不理解的

牛人!顶一下!

不错不错。楼主发的都是精品啊~!

xiangnixuexi

引用 11 楼 wufeng4552 的回复:引用 10 楼 jinjazz 的回复: Bs坐了sf的还切的人 继续BS 继续BS

这个资料还真的是挺复杂的呀

了解,谢谢

很高深哦!

懂不起 我是来的积分的 

写成和永生一样了 抄袭了他的思路

哇哈哈

谢谢楼主分享。。。顶

很值得学习哦 看来得多看一些数据库的知识了 温习一下

帮顶..................

路过   看看

接分。。必须的

hao 好哈啊和

◢██████◣      ◢████◣     ◢◤      ◥◣    ◢◤    ◥◣     ◤   飘过   ◥◣  ◢◤  拿分  █     ▎   ◢█◣   ◥◣◢◤  ◢█   █     ◣  ◢◤  ◥◣      ◢◣◥◣ ◢◤     ◥██◤  ◢◤         ◥◣           █ ●       ● █           █ 〃   ▄   〃 █           ◥◣         ◢◤            ◥█▅▃▃ ▃▃▅█◤              ◢◤   ◥◣               █  闪人 █            ◢◤▕   ▎◥◣             ▕▃◣◢▅▅▅◣◢▃▕

本帖最后由 feixianxxx 于 2010-04-29 08:30:52 编辑

本帖最后由 feixianxxx 于 2010-04-29 08:31:43 编辑

学习,接分。

先顶起

awesome! markup!

fredrickhu 敬礼!

标记。。。。。。。。。。

非常好,期待下期啊~~

很好。。收藏了

该回复于2010-04-28 23:30:24被版主删除

好的 我来看看

good

不错,谢谢楼主分享

挺好~~~

研究中。。。。

谢谢你的分享!好东西!恩,如每个程序员都像你这样无私奉献的话,那中国软件开发又前进几年了!

...

看不懂啊

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

清风飘过,顶一下

学习 了、、、、

引用 6 楼 sgtzzc 的回复:引用 1 楼 fredrickhu 的回复: SF必须是自己的 BS自己坐sf的 up 

引用 12 楼 jinjazz 的回复:稍微提点意见,个人觉得作为技术文章,应该写下前因后果。。。 比如空间坐标系的基本概念,为什么要用这个对象,否则没接触过gis行业的人会不理解的 说的就是我了  不理解

真的看不懂啊

踩踩...路过..学过.

路过,看不懂

学习。。                            

标个记!!!!!!!!!!!!!

收藏,学习.

上一篇:SQLSERVER2008 群集 与 对等复制 40liycumt]
下一篇:[推荐] 【SQL SERVER中一些特别地方的特别解法2】 100feixianxxx]

相关文章

相关评论