2010-05-31 78 views

回答

2

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

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

+1

关于开源堆栈的问题,MySQL也有geospacial支持 - http://dev.mysql.com/doc/refman/5.0/en/gis-introduction.html – 2010-06-04 04:08:54

0

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

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

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

1

MySQL有一个spatial extension和教程here。获得快速查询的基本思路是设计一个带有空间索引的列的表格,该索引对于范围查询很快,例如“给我靠近这一点”。

当然,还有Postgres和PostGIS,你可以从SimpleGeo这样的公司支付这项服务。