我知道使用MySlider.Value = 8
我可以导出两个空间对象之间的距离,并且使用类似的东西更复杂,我可以在触发器中包裹最近邻居并从最近邻居获取值。我担心我可能会过度复杂到这一点,以至于我无法弄清楚一些简单的事情,比如不仅要获得" name"最近邻居,但它到底有多远?我如何提取该距离作为其中的一部分,并将该值与名称一起写?
SELECT @source.STDistance(@target)
答案 0 :(得分:0)
Query Spatial Data for Nearest Neighbor
USE AdventureWorks2012
GO
DECLARE @g geography = 'POINT(-121.626 47.8315)';
SELECT TOP(7) SpatialLocation.ToString(), City, SpatialLocation.STDistance(@g)
FROM Person.Address
WHERE SpatialLocation.STDistance(@g) IS NOT NULL
ORDER BY SpatialLocation.STDistance(@g);
答案 1 :(得分:0)
在尝试解决另一个最近邻居问题时,我记得从old post挖出的答案:
update s
set
[NEAR_TRAIL] = fname,
[DIST_TRAIL] = Shape.STDistance(fshape)
from(
Select
[dbo].[GRSM_BEAR_GPS_COLLAR].*,
fnc.Name as fname,
fnc.Shape as fShape
from
[dbo].[GRSM_BEAR_GPS_COLLAR]
CROSS APPLY (SELECT TOP 1 Name, shape
FROM [dbo].[GRSM_TRAILS] WITH(index ([GRSM_TRAILS_idx]))
WHERE [GRSM_TRAILS].Shape.STDistance([dbo].[GRSM_BEAR_GPS_COLLAR].Shape) IS NOT NULL
ORDER BY GRSM_Trails.Shape.STDistance([dbo].[GRSM_BEAR_GPS_COLLAR].Shape) ASC) fnc)s;