0
Long Latを使用してSQL Serverで最も近い点を見つけるのに問題があります。 longituedとlatitudeパラメータを渡して、その領域の最も近いポイントを見つけるために使用します。Sql Server spatial oracleのような最近傍を見つける
また、ジオメトリ関数を持つすべてのテーブルを選択する方法はありますか?
Long Latを使用してSQL Serverで最も近い点を見つけるのに問題があります。 longituedとlatitudeパラメータを渡して、その領域の最も近いポイントを見つけるために使用します。Sql Server spatial oracleのような最近傍を見つける
また、ジオメトリ関数を持つすべてのテーブルを選択する方法はありますか?
この問題の解決策はすでに見つかりました。これは誰かに役立つかもしれません。 すでにこのコードに最適化を追加しています。 @ Points.STBuffer(1)は探索距離を決定するので、私は正確に長さと緯度が必要なので、1mを置くだけです。
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を調べてみましたか? –