【问题标题】:Requirements for GIS, PointField, and Distance Calculation with Geography=True, Database question includedGeography=True 的 GIS、PointField 和距离计算要求,包括数据库问题
【发布时间】:2019-06-18 03:06:27
【问题描述】:

提到 Django:插件、包或内置函数。

我是否需要安装其他插件才能使用 gis 函数“PointField”和 dwithin 的距离计算查询? 现在的错误要么与 init 中缺少 PointField 或要求 GDAL 有关(我正在使用带有 maxmind db 的 GeoIP2?不确定它们是否相似或一起工作)——找不到明确的答案至于需要什么,不需要什么。

还假设 dwithin 是最快的过滤器 - 当然我有一个最大距离? ST_Distance 是一个较慢的函数,对于较大的数据库可能会变慢?

如果我现在使用 sqllite3 进行测试也有关系吗?是否具备这些功能?继续阅读有关 PostGIS 和其他限制的信息。

非常感谢!

【问题讨论】:

    标签: python gis gdal geoip2


    【解决方案1】:

    我最终做了什么——据我所知:

    所以我可以让 Sqlite3 成为一个空间数据库——我尝试过,但要么在使其具有空间性时遇到问题,要么只是我后来遇到的 GDAL 问题让我无法成功,无论如何我都计划稍后使用 PostgreSQL决定是时候搬家了

    然后我决定换用带有 PostGIS 的 PostgreSQL 和 OSGeo4W 并为 PostgreSQL 安装 pip 安装的 psycopg2。
    安装 PostgreSQL: PostGIS 时,我更喜欢使用我想在安装时使用的名称来“创建空间数据库”——这仅仅是因为我尝试自己制作,但最终我几乎没有像由安装。 (是的,我是新手,不知道如何自己制作一个新的空间数据库,哈哈) 也对所有环境变量说“是”,帮助一切找到所需的文件。

    不是 100%,但我相信一切都需要相同,如果您使用 32 位 python,那么您需要 32 位其他一切(包括 OSGeo4W)(我相信这也包括 Windows,因为您可能没有 32 位否则需要dll)

    安装 OSGeo4W 后,您需要直接在设置中指向您的 GDAL Dll:GDAL_LIBRARY_PATH=your_path_to_the_dll/gdal204.dll
    **设置为您拥有的实际 dll,django 似乎只查找 2.2 及更低版本,因此如果您只输入路径,它只会找到 gdal202 和一些旧版本。

    (您可以编辑 site-packages.django.contrib.gis.gdal 下的 libgdal.py 文件,以便搜索较新版本的 gdal)

    我非常头疼,试图让它在我的旧 Windows 7 64 位安装上运行,并安装大量随机 Visual Studio 等,32 位 python,32 位 gdal 等等。这是一个混乱,Dll 错误左右,几天的思考我几乎拥有它(我没有)-如果您有很多问题,我强烈建议安装全新的 Windows 10 64 位和所有 64 位 - 或者做似乎更好的建议并尝试在 ubuntu 上开发。

    TRLR:如果您遇到很多问题并且不知道该怎么办:
    按照此处 Django 站点上的说明安装全新的 windows 10 64 位,使用 64 位版本的所有内容。 https://docs.djangoproject.com/en/2.1/ref/contrib/gis/install/#windows 然后不要忘记把你的 GDAL_LIBRARY_PATH

    【讨论】:

      猜你喜欢
      • 2021-02-15
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-21
      • 1970-01-01
      • 1970-01-01
      • 2016-09-23
      • 1970-01-01
      相关资源
      最近更新 更多