Can you help me to convert this procedure that give me the distance beetween the start address and the end address
CREATE PROCEDURE [dbo].[CalculateDistanceGoogle]
(@ToAddress NVARCHAR(100),
@FromAddress NVARCHAR(100),
@DistanceistanceInKm FLOAT OUTPUT)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Object INT
DECLARE @ResponseonseText NVARCHAR(MAX)
DECLARE @StatuserviceUrl NVARCHAR(500)
SET @StatuserviceUrl = 'http://ift.tt/2bfUgvP' + @ToAddress + '&destinations=' + @FromAddress +'&mode=driving&language=en-EN&units=metric&key=APIKEY;'
EXEC sp_OACreate 'MSXML2.XMLHTTP', @Object OUT; EXEC sp_OAMethod @Object, 'open', NULL, 'get', @StatuserviceUrl, 'false' EXEC sp_OAMethod @Object, 'send' EXEC sp_OAMethod @Object, 'responseText', @ResponseonseText OUTPUT
DECLARE @Response XML
SET @ResponseonseText = REPLACE(@ResponseonseText, N'encoding="UTF-8"', N'');
SET @Response = CAST(CAST(@ResponseonseText AS NVARCHAR(MAX)) AS XML)
DECLARE @Status NVARCHAR(20)
DECLARE @Distance NVARCHAR(20)
SET @Status = @Response.value('(DistanceMatrixResponse/row/element/status)[1]', 'NVARCHAR(20)')
IF(@Status = 'ZERO_RESULTS')
SET @Distance = NULL
ELSE
SET @Distance = @Response.value('(DistanceMatrixResponse/row/element/distance/value)[1]', 'NVARCHAR(20)')
SET @DistanceistanceInKm = ROUND(CAST(@Distance AS FLOAT) / 1000, 1)
PRINT @DistanceistanceInKm
EXECUTE sp_OADestroy @Object
END
To a procedure that use the direction api instead of the distance with this link
and print all XML end_address in the order that google give me back?
I'm using SQL Server 2005
Aucun commentaire:
Enregistrer un commentaire