请参阅Django:插件,软件包或内置函数。
我是否需要安装其他插件才能使用gis函数“ PointField”和dwithin进行距离计算查询? 现在出现错误是由于 init 中缺少PointField或要求GDAL(我正在使用带有maxmind db的GeoIP2吗?不确定它们是否相似或一起工作)-无法找到明确的答案关于需要什么,不需要什么。
还假设dwithin是最快的过滤器-假设我有最大距离? ST_Distance是一个较慢的函数,对于较大的db可能会变慢?
如果我现在正在使用sqllite3进行测试,那也有关系吗?有这些功能吗?继续阅读有关PostGIS和其他限制的信息。
非常感谢!
答案 0 :(得分:0)
我最终要做的是-尽我最大的回忆:
所以我可以将Sqlite3设置为空间数据库-我尝试过,但要么使其成为空间问题,要么就是后来遇到的GDAL问题,使我无法成功,无论如何我后来计划使用PostgreSQL决定是时候该走了
然后,我决定将带OSGISO4W的PostGIS和PostGIS一起换成PostgreSQL,并为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 64bit安装上正常工作,并带有很多随机的Visual Studio安装,例如32位python,32位gdal等。这是MESS,DLL错误左右,几天的思考我几乎都做到了(我没有)-如果您有很多问题,我强烈建议您进行全新的Windows 10 64bit安装和所有64bit的安装-或者执行似乎更好的建议并尝试ubuntu上的dev。
TRLR:如果您遇到许多问题并且不知道该怎么办:
使用所有内容的64位版本,按照Django网站上的说明安装新的Windows 10 64位。
https://docs.djangoproject.com/en/2.1/ref/contrib/gis/install/#windows
然后别忘了把您的GDAL_LIBRARY_PATH