Запрос радиуса широты и долготы по географии

Я пытаюсь найти магазины в радиусе X от пользователей по широте и долготе. Я прочитал довольно много вопросов, ответов и статей по этой теме. Мои результаты не обязательно должны быть точными, но ложные срабатывания, которые вы можете получить с фильтром в столбце «География», неприемлемы.

Учитывая приведенные выше требования, я не вижу необходимости использовать тип данных Geography и добавлять пространственный индекс. Мне также не нужен идеальный радиус круга. Другими словами, допустима ограничительная рамка. Поэтому я остановился на этом of-point-x" rel="nofollow">solution от Аластеры, которая провела очень информативную сессию по теме здесь

Теперь мое приложение MVC с использованием CF EF4 и SQL 2008R2. Первоначально я думал выполнить операцию в LINQ, как и в любом другом взаимодействии с БД, но, честно говоря, я был поставлен в тупик на нескольких шагах, таких как:

DECLARE @point geography = geography::Point(40.7316, -73.9920, 4326);

Я не думаю, что EF4 поддерживает тип данных geography, так что это, безусловно, усложнит ситуацию.

Затем я начал думать... учитывая, что база данных как бы предназначена для такого рода операций, должен ли я просто обернуть TSQL в SP, который выдает набор записей, на котором я могу использовать LINQ?

Это моя первая пространственная операция с базой данных, поэтому любые идеи или предложения приветствуются и будут оценены.

Если sp является жизнеспособным решением, предложения по наилучшему способу реализации были бы замечательными.


person GPGVM    schedule 10.10.2013    source источник


Ответы (1)


Я не думаю, что EF4 поддерживает тип данных geography, так что это, безусловно, усложнит ситуацию.

Entity Framework 4.x изначально не поддерживает географию.

Если sp является жизнеспособным решением, предложения по наилучшему способу реализации были бы замечательными.

Использование хранимых процедур для возврата строго типизированных объектов уже обсуждалось. Должно быть достаточно просто создать хранимую процедуру для работы с типом данных geography, но не включать этот конкретный тип в результирующие объекты сущностей.

person Erik Philips    schedule 10.10.2013