Hai visto il progetto NHibernate.Spatial ? Questo potrebbe fornire una facile soluzione al tuo problema.
L'alternativa è creare la propria implementazione di ICriterion
- questo non è troppo complicato se deriva da AbstractCriterion
e ti rivolgi alla tua particolare piattaforma di database. Ciò ti consentirebbe quindi di combinare la tua funzione di distanza con altri criteri.