Конечно.Предположим, у вас есть функция, которая вычисляет расстояние Хаверсайна между двумя положениями (состоящее из координаты широты и долготы).Если вы не можете найти один здесь .Затем просто используйте функцию в качестве селектора в предложении Where.Если вы используете LINQ to SQL, вам нужно материализовать их для ваших объектов Position, чтобы вы могли использовать для них функцию Haversine как LINQ для объектов;нет перевода на SQL, хотя вы, вероятно, могли бы создать табличную функцию, которая делает то же самое, если вы действительно не хотите сначала вернуть все точки.
var origin = new Position( 47.6, 122.3 );
var close = positions.Where( p => Haversine.Distance( origin, p, DistanceType.Km ) <= 35 );