Create PROCEDURE [SearchViaLocation]
@Longitude nvarchar(50)='0'
,@Latitude
nvarchar(50)='0'
,@Distance
decimal(18,8)=2000---(2km)
AS
BEGIN
-- SET NOCOUNT ON added to prevent
extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT
ON;
DECLARE @CurrentLocation geography;
SET @CurrentLocation
= geography::Point(@longitude, @latitude, 4326)
SELECT @CurrentLocation
SELECT * FROM YourTblName
WHERE geography::STPointFromText('POINT(' + CAST(ISNULL([LongitudeColumnName],'0') AS VARCHAR(20)) + ' ' +
CAST(ISNULL([LatitudeColumnName],'0') AS VARCHAR(20)) + ')', 4326).STDistance(@CurrentLocation )<= @Distance
In Above query you need to change 'YourTblName' with your table name,
'LongitudeColumnName' with your column which stores longitude and
'LatitudeColumnName' with your column which stores latitude.
amazing Very Helfull
ReplyDelete