I am storing co-ordinates in my database like this
var geometryFactory = NtsGeometryServices.Instance.CreateGeometryFactory(srid: 4326);
var point = geometryFactory.CreatePoint(new NetTopologySuite.Geometries.Coordinate(
command.GeoCoordinate!.Longitude,
command.GeoCoordinate!.Latitude));
I then need to query the db for any points within a certain distance of some co-ordinate, so I pass in an expression like this
x => x.Location.Distance(inputPoint) < distance
However, the distance returned just uses a normal pythagarus calculation, giving me a result in degrees rather than meters or miles.
I can manually calculate the distance in meters using haversine formula, but passing that in to my expression reults in a linq error:
The LINQ expression could not be translated. Either rewrite the query in a form that can be translated, or switch to ..
How can I store/query this data such that I can pass a filter to ef core and get back a list of results within the given distance?