0
我在使用Long Lat查找sql server中最近的點時遇到了麻煩。 我想通過longitued和緯度參數,然後用它來找到該地區的最近點。Sql Server空間在oracle中查找最近鄰居
還有一種方法來選擇所有具有幾何函數的表?
我在使用Long Lat查找sql server中最近的點時遇到了麻煩。 我想通過longitued和緯度參數,然後用它來找到該地區的最近點。Sql Server空間在oracle中查找最近鄰居
還有一種方法來選擇所有具有幾何函數的表?
我已經找到了解決這個問題的方法。這可能對某人有幫助。 我已經爲此代碼添加了一些優化。 @ Points.STBuffer(1)確定搜索距離,所以我只放1米,因爲我需要一個精確的長和拉,因爲我點擊它。
ALTER PROCEDURE [dbo].[getFacilityDetailsOnClick]
-- Add the parameters for the stored procedure here
@long float,
@lat float
AS
BEGIN
DECLARE @points geometry
SET @points = geometry :: Point(@long,@lat,32651);
DECLARE @searchArea GEOMETRY;
SET @searchArea = @Points.STBuffer(1);
@tbl nvarchar(255)
SELECT @sSQL = 'SELECT FEATID, NAME , @tbl as FACILITYNAME , @facility as FACILITYID FROM (SELECT TOP 1 featid, NAME , geometry.STDistance(@pnts) as distance from '
+ QUOTENAME(@tbl) +' WHERE geometry.Filter(@searchArea) = 1 ORDER BY distance) AS tbl'
EXEC sp_executesql @sSQL , N'@pnts GEOMETRY , @searchArea GEOMETRY , @tbl nvarchar(255) , @facility int ', @Points , @searchArea , @tbl ,@facility;
你對前者有什麼想法?至於後者,你是否嘗試在sys.columns中尋找具有數據類型幾何的列? –