最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

通过区域坐标获取sqlserver中的geometry的区域范围内的坐标

来源:动视网 责编:小采 时间:2020-11-09 08:02:28
文档

通过区域坐标获取sqlserver中的geometry的区域范围内的坐标

通过区域坐标获取sqlserver中的geometry的区域范围内的坐标:sqlserver目前已经可以支持地理空间字段了,也就是 geometry API地址: http://msdn.microsoft.com/zh-cn/LIBRARY/cc280487.aspx 创建表和geometry字段以及插入点,线,多边形的sql如下: IF OBJECT_ID ( dbo.SpatialTable
推荐度:
导读通过区域坐标获取sqlserver中的geometry的区域范围内的坐标:sqlserver目前已经可以支持地理空间字段了,也就是 geometry API地址: http://msdn.microsoft.com/zh-cn/LIBRARY/cc280487.aspx 创建表和geometry字段以及插入点,线,多边形的sql如下: IF OBJECT_ID ( dbo.SpatialTable


sqlserver目前已经可以支持地理空间字段了,也就是 geometry API地址: http://msdn.microsoft.com/zh-cn/LIBRARY/cc280487.aspx 创建表和geometry字段以及插入点,线,多边形的sql如下: IF OBJECT_ID ( dbo.SpatialTable, U ) IS NOT NULL DROP TABLE dbo.Sp


sqlserver目前已经可以支持地理空间字段了,也就是 geometry


API地址:

http://msdn.microsoft.com/zh-cn/LIBRARY/cc280487.aspx


创建表和geometry字段以及插入点,线,多边形的sql如下:

IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL 
 DROP TABLE dbo.SpatialTable;
GO

CREATE TABLE SpatialTable 
 ( id int IDENTITY (1,1),
 geom geometry, 
 adress varchar );
GO

INSERT INTO SpatialTable (geom)
VALUES (geometry::STGeomFromText('POINT (20 180)', 4326));

INSERT INTO SpatialTable (geom)
VALUES (geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 4326));

INSERT INTO SpatialTable (geom)
VALUES (geometry::STGeomFromText('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))', 4326));
GO


ps: 4326是空间引用标识符 (SRID) 一般写0或者4326



存入表中的geom字段如下:




查询语句

假如我们在数据库中存了很多坐标点的地址


选取圆形区域范围的 地址---也就是 圆心到半径范围内的所有点

DECLARE @g geometry;
set @g = geometry::STGeomFromText('POINT(104.12765 30.60445)', 4326)
SELECT address,geom.STY,geom.STX from SpatialTable where geom.STDistance(@g)<=0.005

PS:这里diatance的单位是 英里

查询出的结果如图

选取多边形

DECLARE @g geometry;
set @g = geometry::STGeomFromText('POLYGON ((104.12189573049204 30.608145728994504,104.12223905324595 30.60282680842528,104.13262456655161 30.603122311674902,104.13176625966685 30.610066378528995,104.12189573049204 30.608145728994504,104.12189573049204 30.608145728994504))',4326)
SELECT address from SpatialTable
where geom.STIntersects(@g)=1

查询出的结果如图


文档

通过区域坐标获取sqlserver中的geometry的区域范围内的坐标

通过区域坐标获取sqlserver中的geometry的区域范围内的坐标:sqlserver目前已经可以支持地理空间字段了,也就是 geometry API地址: http://msdn.microsoft.com/zh-cn/LIBRARY/cc280487.aspx 创建表和geometry字段以及插入点,线,多边形的sql如下: IF OBJECT_ID ( dbo.SpatialTable
推荐度:
标签: 中的 获取 获得
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top