首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >django模型中的几何计算

django模型中的几何计算
EN

Stack Overflow用户
提问于 2012-02-26 08:22:32
回答 3查看 381关注 0票数 1

我正在做一个Django web项目。我有一个叫广告的模特。我需要给每个广告对象添加坐标,然后根据距离固定点的距离查询数据库,即检索距离固定点5公里内的所有广告对象。我读过关于GeoDjango的文章,但我有点困惑。

我有一个包含常规django模型的大型postgresql数据库,但我不确定如何将当前的数据库与空间数据库相结合。即使我可以创建一个空间数据库并为我的项目使用两个数据库,我想我也不能从我的常规数据库中引用模型。在这种情况下我能做什么?任何帮助都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-27 04:24:01

您可以将标准PostgreSQL数据库转换为空间数据库(即PostGIS数据库)。您需要:

将空间数据类型和函数

  1. Build/install PostGIS.
  2. Add到现有数据库。请参阅PostGIS文档中的Create a spatially-enabled database一节。
  3. 添加空间功能后,您应该能够对模型执行add geometric fields操作。
票数 1
EN

Stack Overflow用户

发布于 2012-02-26 08:37:19

看看GeoDjango吧。它使用PostGIS作为地理空间数据库,因此您不需要设置额外的数据库。

票数 0
EN

Stack Overflow用户

发布于 2012-02-27 06:21:04

其他答案提到了postgis。为了完整起见,我还将提到pgsphere。http://pgsphere.projects.postgresql.org/

两者的不同之处在于,pgsphere用于“理论”球体上的点,而postgis用于地球表面的点。这听起来可能有些奇怪--这基本上意味着postgis包含对特定地图投影的支持,而pgsphere仅仅是基本的球面三角测量法。

我提到phsphere是因为如果你对涉及到的数学/近似感到满意,那么根据我的经验,它更容易安装和使用。另一方面,如果您不知道如何将两点之间的角度距离转换为它们的实际距离,或者需要准确地处理特定地图投影中的坐标,那么postgis是更好的选择。ilvar提到的postgis与geodjango的集成,也可能是postgis在您的案例中的优势所在。

无论采用哪种方法,您都需要编译包,然后启用并扩展数据库,如tyler所述。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9449404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档