Geography=True 的 GIS、PointField 和距离计算的要求,包括数据库问题

Requirements for GIS, PointField, and Distance Calculation with Geography=True, Database question included

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

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

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

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

非常感谢!

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

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

然后我决定切换到带有 PostGIS 的 PostgreSQL 和 OSGeo4W,并且还为 PostgreSQL 安装了 psycopg2。
安装 PostgreSQL: PostGIS 时,我更喜欢 "Create Spacial Database" 我想在安装时使用的名称 - 只是因为我尝试自己制作,但我最终几乎没有按照创建它的方式添加的功能安装。 (是的,我是新手,不知道如何自己制作一个新的空间数据库,哈哈) 也对所有环境变量说是,帮助一切找到需要的文件。

不是 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 位安装有很多 运行dom 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