Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Địa lý &hình học SQL 2008 - sử dụng cái nào?

Địa lý là loại dùng để vẽ các điểm trên trái đất.

Nếu bạn có một bảng lưu trữ các điểm Google Maps như sau:

CREATE TABLE geo_locations (
    location_id       uniqueidentifier  NOT NULL,
    position_point    geography         NOT NULL
);

thì bạn có thể điền điểm vào đó bằng quy trình được lưu trữ này:

CREATE PROCEDURE proc_AddPoint
    @latitude     decimal(9,6),
    @longitude    decimal(9,6),
    @altitude     smallInt
AS

DECLARE @point     geography = NULL;

BEGIN

    SET NOCOUNT ON;

    SET @point = geography::STPointFromText('POINT(' + CONVERT(varchar(15), @longitude) + ' ' + 
                                                       CONVERT(varchar(15), @latitude) + ' ' + 
                                                       CONVERT(varchar(10), @altitude) + ')', 4326)

    INSERT INTO geo_locations
    (
        location_id, 
        position_point
    )
    VALUES 
    (
        NEWID(),
        @point
    );

END

Sau đó, nếu bạn muốn truy vấn vĩ độ, kinh độ và độ cao, chỉ cần sử dụng định dạng truy vấn sau:

SELECT
    geo_locations.position_point.Lat  AS latitude,
    geo_locations.position_point.Long AS longitude,
    geo_locations.position_point.Z    AS altitude
FROM
    geo_locations;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tùy chỉnh cảnh báo đám mây Spotlight

  2. ngoại lệ kết nối oledb

  3. Một cách tốt hơn để phân tích cú pháp các giá trị số nguyên từ một chuỗi được phân tách bằng T-SQL

  4. thêm + - 1 năm trong SQL Server

  5. Cách lưu trữ và truy xuất hình ảnh trong cơ sở dữ liệu máy chủ sql thông qua VB.NET