我刚刚使用地理数据类型,但我已经想出了如何使用它从一个点获取邮编列表(在存储过程中,我只是把它指向了varchar我提供了“经度纬度”),这非常棒。从地理存储过程获得里程
但是,我需要能够展示的下一个东西大概是距离这些点的距离。我看了几个答案,找不到任何东西。
这里是我的存储过程:
ALTER PROCEDURE [dbo].[GetZipCodesByDistance]
@point varchar(500),
@distance int
AS
BEGIN
SET NOCOUNT ON;
declare @geoPoint geography
set @geoPoint = geography::STGeomFromText('POINT (' + @point + ')', 4326)
.STBuffer(@distance/0.0006213712)
SELECT zc.zip_id AS ZipId
,zc.zip_code AS ZipCodeId
,zc.zip_type AS ZipType
,zc.zip_city AS ZipCity
,zc.zip_utc AS ZipUtc
,zc.zip_dst AS ZipDst
,zc.zip_latitude AS ZipLatitude
,zc.zip_longitude AS ZipLongitude,
(Geo.MakeValid()).STDistance(@geoPoint)
FROM zip_code zc
WHERE zc.Geo.STIntersects(@geoPoint) = 1
所以,我的问题是...我怎么得到它从点返回哩?我试图添加列“(Geo.MakeValid()).STDistance(@geoPoint)”,但它返回全零。
谢谢你的帮助!
AJ
那么你的问题是什么?请阅读[** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t这里是[** START **](http ://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/),了解如何提高您的问题质量并获得更好的答案。 –
对不起,我不明确,我编辑我的帖子,有问题在那里。谢谢! – ajtatum