Geography は、地球上の点をプロットするためのタイプです。
次のような Google マップ ポイントを格納するテーブルがある場合:
CREATE TABLE geo_locations ( location_id uniqueidentifier NOT NULL, position_point geography NOT NULL );
プレ>次に、このストアド プロシージャでポイントを埋めることができます:
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
プレ>次に、緯度、経度、高度を照会する場合は、次のクエリ形式を使用するだけです:
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;
プレ>