【问题标题】:Lat & Long Geography Radius Query经纬地理半径查询
【发布时间】:2013-10-10 05:49:26
【问题描述】:

我正在尝试查找用户经纬度 X 半径范围内的商店。我已经阅读了很多关于该主题的问题、答案和文章。我的结果不一定要非常准确,但如果使用 Geography 列上的过滤器可能会出现误报,那将是不可接受的。

鉴于上述要求,我认为不需要使用 Geography 数据类型并添加空间索引。我也不需要完美的圆半径。换句话说,边界框是可以接受的。所以我选择了来自 Alastaira 的 solution,他就该主题进行了非常丰富的会议 here.

现在我的应用程序是使用 CF EF4 和 SQL 2008R2 的 MVC。我最初想在 LINQ 中进行操作,就像我在任何其他数据库交互中一样,但老实说,我被以下几个步骤难住了:

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

我认为 EF4 不支持 geography 数据类型,所以这肯定会使事情复杂化。

然后我开始思考......鉴于数据库有点适合这种处理,我是否应该将 TSQL 包装在一个 SP 中,然后吐出一个记录集,然后我可以在其上使用 LINQ?

这是我的第一次空间数据库操作,欢迎提出任何想法或建议,我们将不胜感激。

如果 sp 是一个可行的解决方案,建议最好的实施方式会很棒。

【问题讨论】:

    标签: asp.net-mvc entity-framework tsql c#-4.0 sqlgeography


    【解决方案1】:

    我认为 EF4 不支持 geography 数据类型,所以这肯定会使事情复杂化。

    Entity Framework 4.x 本身不支持地理。

    如果 sp 是一个可行的解决方案,建议最好的实施方式会很棒。

    Using stored procedures to return stronly typed objects has already been asked。创建存储过程来处理 geography 数据类型但不包括结果实体对象中的特定类型应该足够简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-16
      • 1970-01-01
      • 1970-01-01
      • 2012-08-15
      相关资源
      最近更新 更多