sql-server-2008 – SQL 2008地理和几何 – 哪些使用?
发布时间:2020-12-12 16:43:02 所属栏目:MsSql教程 来源:网络整理
导读:我正在创建一个Google地图混搭,并正在使用SQL 2008. 我将在地球上拥有大量的积分,并希望在SQL中执行各种计算,例如选择特定多边形中包含的所有点,或选择XY距离10公里内的所有点. 之前我从来没有使用SQL空间功能.我应该使用地理或几何数据类型吗? 解决方法 地
我正在创建一个Google地图混搭,并正在使用SQL 2008.
我将在地球上拥有大量的积分,并希望在SQL中执行各种计算,例如选择特定多边形中包含的所有点,或选择XY距离10公里内的所有点. 之前我从来没有使用SQL空间功能.我应该使用地理或几何数据类型吗? 解决方法地理是用于绘制地球上的点的类型.如果您有一个表格存储Google Maps点,如下所示: 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,@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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |