2

昨天有人告诉我,如果我想使用 Sqlalchemy,Geoalchemy 是支持空间扩展的不错选择。它确实做得很好。非常感谢他。

但是我还没有找到一种方便的方法来使用 Geoalchemy 创建空间索引。我必须直接运行这个 SQL 吗?

CREATE SPATIAL INDEX sp_index ON my_class (
geom_col
);

有没有不直接写SQL的便捷方法?

谢谢!

4

2 回答 2

2

使用table.create()GeoAlchemy 创建表时,会自动为几何列创建索引。

此外,SQLAlchemyIndex实例有一个create方法。请参阅http://docs.sqlalchemy.org/en/rel_0_7/core/schema.html#metadata-constraints中的“索引”部分。我不确定你是否能够用它在 MySQL 中创建空间索引,但值得一试。

于 2012-05-05T23:16:07.757 回答
0

使用 GeoAlchemy,您应该采取 2 个步骤在几何列上创建空间索引

  • 将 attr 'spatial_index' 添加到几何列
  • 调用 GeometryDDL 扩展

例子:

# note that spatial_index will set the column to not null 
class Building(Base):
    geom = GeometryColumn(Point(2, spatial_index=True))

GeometryDDL(Building.__table__)
于 2015-11-28T03:36:01.693 回答