zoukankan      html  css  js  c++  java
  • SQLSERVER 2008空间数据库学习(一)

    1。创建数据表:

         CREATE TABLE [dbo].[GpsTable](
               [GEOID] [int] NULL,
               [GEOCOL] [geography] NULL    --geography是球面数据,geometry是几何数据
             ) ON [PRIMARY]

    2。插入数据:

       declare @i int 
       set @i=1 
     
       while   @i<=200     
       begin  
         INSERT INTO GpsTable
               ([GEOID]
               ,[GEOCOL])
         VALUES
               (@i
               ,geography::Point(30+@i*0.1,80+@i*0.1, 4326))    --4326 WGS 84坐标
      set @i=@i+1 
      end
     GO

    3.位置查找:

      --查找坐标(30,80)周边距离30公里内的点
     SELECT *
            FROM gpstable
         where geocol.STDistance(geography::Point(30,80, 4326)) < 30000

    4.面查找:

    --面查找,在(80 35,110 35,110 45,80 45,80 35)内的点
    DECLARE @region geography
    SET @region = Geography::STGeomFromText('POLYGON((80 35,110 35,110 45,80 45,80 35))', 4326);
    select * from  dbo.GpsTable where @region.STIntersects(GEOCOL)=1


     

  • 相关阅读:
    ubuntu18.04 常用命令
    docker常用命令
    git
    y7000 intel nvidia 双显卡安装Ubuntu16.04
    linux中fork() 函数详解
    理解GBN协议
    C++ sort
    最近点对-分治
    方便查看 linux/kernel/system_call.s
    方便查看 linux/kernel/asm.s
  • 原文地址:https://www.cnblogs.com/onekey/p/1967084.html
Copyright © 2011-2022 走看看