> 데이터 베이스 > MySQL 튜토리얼 > 通过区域坐标获取sqlserver中的geometry 的区域范围内的坐标

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-07 15:18:44
원래의
2502명이 탐색했습니다.

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字段如下:

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



查询语句

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


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

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)

<pre class="brush:php;toolbar:false">
로그인 후 복사

PS:这里diatance的单位是 英里

查询出的结果如图

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

选取多边形

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 的区域范围内的坐标






원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿