dette sker på grund af forskellen mellem geografidatatypen og geometridatatypen.
Bedst forklaret med et eksempel.
declare @point1 as geography
declare @point2 as geography
set @point1 = geography::STGeomFromText('POINT (7 1)', 4326)
set @point2 = geography::STGeomFromText('POINT (7 3)', 4326)
select @point1.STDistance(@point2)
declare @point3 as geometry
declare @point4 as geometry
set @point3 = geometry::STGeomFromText('POINT (7 1)', 4326)
set @point4 = geometry::STGeomFromText('POINT (7 3)', 4326)
select @point3.STDistance(@point4)
Hvis du kører dette direkte i SQL Server Management Studio, får du 221151.479533501 i det første resultat og 2 i det andet.
Dette skyldes grundlæggende, at enheden i geografidatatypen er valgt i henhold til det medfølgende SRID. I dit tilfælde er det 4326 i meter. Så du beder om afstanden, i meter, mellem koordinaterne (længde:7; bredde:1) og (længde:7; bredde:3). Den vender tilbage omkring 221 km.
Når du bruger geometritypen (andet eksempel), er det en plan projektion, hvor afstanden fungerer, som du ville forvente, og dermed returnerer 2.
Med hensyn til din NH Spatial-kode virker det ok. Angiv blot maxDistance-parameteren i meter, og du burde være i orden.