【发布时间】:2017-11-29 21:46:32
【问题描述】:
我有一些使用 Python-Django 的经验,包括它的 REST 框架、对地理信息(以及 GIS 是什么)和数据库的合理理解,我想在我的 Windows 上开发一个“地理感知”REST 服务基于 Django 的机器。应用程序应仅限于 REST 服务;视觉探索等东西自主开发。附注:一旦我的应用程序运行,它将被移植到 Linux 机器上,然后将使用 PostGIS 代替 SpatialLite。
经过几个小时的网络搜索,我仍然没有想出一个好的“快速入门”指南。有很多关于与我的任务相关的各个方面的教程和文档,但它们要么是指 Linux,要么它们的安装说明已经过时。这是我到目前为止所做的:
1) 我使用 miniconda 和 Pycharm
2) 我像这样创建了一个新的虚拟环境:
conda create -n locations pip numpy requests
activate locations
conda install -c conda-forge django djangorestframework djangorestframework-gis
3) 我设置了新的 Django 项目和我的应用程序并执行了数据库迁移:
python [path-to..]\django-admin.py startproject locations
cd locations
python [path-to..]\django-admin.py startapp myapp
cd ..
python manage.py migrate
4) 我在 settings.py 中的 APPLICATIONS 中添加了“rest_framework”和“myapp.apps.MyAppConfig”
5) 我停止阅读一般的 django-restframework 教程并开始搜索 django-restframework-gis 的具体信息。我从中了解到的是,我需要增强我的 SQLite 数据库以成为 SpatialLite 数据库。 SpatialLite 的 Windows 二进制文件可在 gaia-sins 获得——但我真正需要哪些?我下载了 mod_spatialite-4.3.0a-win-x86.7z 文件并解压,并在我的 settings.py 中添加了SPATIALITE_LIBRARY_PATH= '[path-to..]\mod_spatialite-4.3.0a-win-x86\mod_spatialite.dll'。
接下来会发生什么?
具体问题:
1) 如果我不打算存储地理空间信息而只是构建一个 REST 服务来提供来自其他来源的 GeoJSON 信息(例如 netcdf 数据格式的天气模型输出),我真的需要升级我的 SQLite 数据库吗? )?或者在这种情况下描述我的 Django 模型并忽略任何与数据库相关的问题就足够了吗?
2) 完成基本“接线”的最少代码是多少?这可能是一个非常简单的服务,它将接受纬度/经度坐标作为 URL 中的参数,并以 GeoJSON 格式返回此位置。此类代码应突出显示使用 gis 版本中的“普通”django-restframework 之间的差异。一旦我有了这个,我可能会在现有文档中找到自己的方式(例如Miguel Grinberg Tutorial 或GitHub description)。
【问题讨论】:
标签: python django windows django-rest-framework geospatial