Avez-vous vu le Projet NHibernate.Spatial ? Cela peut fournir une solution simple à votre problème.
L'alternative est de créer votre propre implémentation de ICriterion - ce n'est pas trop compliqué si vous dérivez de AbstractCriterion et vous ciblez votre plate-forme de base de données particulière. Cela vous permettrait alors de combiner votre fonction de distance avec d'autres critères.