微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

简单读了SqlServer2008空间数据库白皮书

原文比较多,大家可以去msdn上下载,废话挺多,我就随便说说,因为还没有下载真正应用,可能会有问题。 1、支持两种数据类型,geography和geometry,分别对应经纬度和迪卡尔两种坐标系,前者就是度分秒;后者是x y的,不知道带不带z,可能不带,因为后面的三维空间查询与二维的差别会很大。至于投影,也许不是它的任务了。(有待确认)

2、能够导入导出OGC定义的几种格式wkb,wkt,gml

3、Virtual Earth能够看数据

4、给了几个sql语句例子

 

CREATE TABLE districts
    ( districtId int IDENTITY (1,1),
districtName nvarchar(20),
       districtGeo geometry);
GO
 
CREATE TABLE Streets
    ( StreetId int IDENTITY (1,
    StreetName nvarchar(20),
       StreetGeo geometry);
GO
 
上面两个是建表,也许在那种“企业管理器”中可以选择一下字段类型吧
INSERT INTO districts (districtName,districtGeo)
VALUES ('Downtown',
geometry::STGeomFromText
('polyGON ((0 0,150 0,150 150,0 150,0 0))',0));
 
INSERT INTO districts (districtName,districtGeo)
VALUES ('Green Park',
geometry::STGeomFromText
('polyGON ((300 0,300 150,300 0))',districtGeo)
VALUES ('Harborside',
geometry::STGeomFromText
('polyGON ((150 0,300 0,300 300,150 300,150 0))',0));
  插入多边形,不知道正方形算不算哦,而多边形内部空了的话,坐标序列如何呢?也许和windows编程的序列一样
INSERT INTO Streets (StreetName,StreetGeo)
VALUES ('First Avenue',
geometry::STGeomFromText
('LInesTRING (100 100,20 180,180 180)',0))
GO
 
INSERT INTO Streets (StreetName,StreetGeo)
VALUES ('Mercator Street',
geometry::STGeomFromText
('LInesTRING (300 300,50 50)',0))
GO
 看来是插入一条多点的线
SELECT StreetName,districtName
FROM districts d,Streets s
WHERE s.StreetGeo.STIntersects(districtGeo) = 1
ORDER BY StreetName
查询相交,不知道有几种相交方式了(其实是空间关系的定义了,esri好像是12种),districtGeo这个玩意儿怎么定义呢?
小结
我曾说过,SDE就那么回事,空间数据库又能牛到怎么样呢?关键是要将地图展现出来,然后做很多实用的功能,这也是我们程序员挣钱的地方了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐