【问题标题】:How to implement geo-based data store and computation?如何实现基于地理的数据存储和计算?
【发布时间】:2011-02-25 20:05:29
【问题描述】:

好吧,让我简单解释一下:

1.我想建立一个提供基于位置服务的网站,例如http://fireeagle.yahoo.net/

2.我猜这些服务大多与经度和纬度有关。

3.是否有任何特定的数据库/数据存储/数据结构非常适合此类应用程序?我的意思是易于存储经度、纬度和易于计算或易于使用。

我是新手,欢迎任何反馈

【问题讨论】:

    标签: database geolocation location latitude-longitude geography


    【解决方案1】:

    关系数据库系统的空间扩展提供地理/几何数据类型的存储和索引访问。它们允许您执行空间连接和各种空间查询。简而言之,它们正是您所需要的。

    如果您使用的是开源堆栈,我会推荐 PostGIS,它是 Postgresql 的空间扩展。如果您使用的是 MS 堆栈,请尝试 spatial extensions to SQL Server 2008

    【讨论】:

    【解决方案2】:

    MySQL 有一个spatial extension 和教程here。获得快速查询的基本思想是设计具有空间索引列的表,R-tree 索引对于范围查询(例如“在此点附近给我点”)非常快。

    当然,也有带有 PostGIS 的 Postgres,您可以从像 SimpleGeo 这样的公司购买这项服务。

    【讨论】:

      【解决方案3】:

      我建议你考虑GeoDjango
      它非常好,因为它融合了 Python/Django 的简单性和 PostGIS 的强大功能。但它也可能很复杂并提供太多功能,因此会浪费您的时间。

      如果您没有特殊需求,还有另一种更简单的解决方案可以单独与 Django 或 Python 一起使用,即Geopy。虽然不向数据库添加空间扩展,但它允许您使用通用数据结构(也包括任何数据库)执行地理空间计算。您可以计算距离,进行(反向)地理编码。查看Getting Started 页面,也可以直接查看code,因为它有据可查。我将它用于动态拼车项目,效果很好。

      这两种解决方案都非常适合 Django 框架,因此您可以轻松地围绕所提供的服务开发网站。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-23
        • 1970-01-01
        • 1970-01-01
        • 2020-06-13
        • 1970-01-01
        • 2011-10-06
        • 2019-07-19
        相关资源
        最近更新 更多