Django地理存储和矢量瓦片生成
项目描述
django-geostore
动态地理数据存储,支持从PostGIS和json模式定义和验证生成矢量瓦片。
功能
- 地理层管理
- 在层上添加和管理地理特征
- 使用JSON模式管理特征属性
- 导入和导出数据
- 在单个或多个层上生成GeoJSON和MapBox矢量瓦片
- 提供完整的API管理
- 可选PGRouting功能,通过django-geostore-routing插件实现
需求
通用
- Python 3.6+
- Postgresql 10+
- PostGIS 2.4+
可选使用PgRouting功能
- PgRouting 2.5+ 和 django-geostore-routing
库
以下是需要的debian包
- libpq-dev (psycopg2)
- gettext (翻译)
- binutils (django.contrib.gis)
- libproj-dev (django.contrib.gis)
- gdal-bin (django.contrib.gis)
推荐
- postgresql-client (如果您想使用./manage.py dbshell命令)
安装
从PYPI安装
pip install django-geostore
来自GitHub
git clone https://github.com/Terralego/django-geostore.git
cd django-geostore
python3 setup.py install
在你的项目设置中
INSTALLED_APPS = (
'geostore',
)
开发
使用docker
docker-compose build
docker-compose up
docker-compose run web ./manage.py test
使用pip
python3.6 -m venv venv
source activate venv/bin/activate
pip install -e .[dev]
变更日志
1.0.0 (2024-01-12)
- 添加对django 5.0的支持
- 添加对python 3.12的支持
- 改进TileJSON和瓦片缓存键
0.8.0 (2023-09-08)
- 与fiona >= 1.9兼容
- 添加对django 5.0的支持
- 添加对python 3.12的支持
0.7.3 (2023-04-17)
- 支持django 4.2
- 允许以组限制向超级用户访问层
- 删除对django 2.2和python 3.6的支持
0.7.2 (2023-03-06)
- 通过使用DjangoJSONEncoder允许日期和对象在要素属性中
0.7.1 (2023-03-03)
- 将默认缩放级别设置为0-23
- 限制Fiona版本 < 1.9,直到修复
0.7.0 (2022-12-09)
- 在setup.py中不要限制psycopg2版本
- 在CI中添加迁移检查
0.6.9 (2022-11-22)
- 支持python 3.10和django 4.1
0.6.8 (2022-07-04)
- 添加层范围端点
0.6.7 (2022-02-21)
- 使用dwithin更改距离关系计算
0.6.6 (2022-02-11)
- 在矢量瓦片中添加关系
0.6.5 (2021-10-13)
- 修复缺失的迁移
0.6.4 (2021-10-06)
- 修复shapefile导出
0.6.3 (2021-10-05)
- 改进关系性能
0.6.2 (2021-10-04)
- 修复某些电子邮件客户端中引起诈骗警报的电子邮件链接
0.6.1 (2021-04-30)
- 改进关系性能
0.6.0 (2021-04-30)
!! 警告 - 破坏性更改 !!
- 添加约束额外几何为空/是有效的。在使用此版本之前,请检查您的要素额外几何是否不为空或无效
0.5.8 (2021-04-30)
- 添加geojson关系格式
0.5.7 (2020-12-11)
- 将翻译文件包含在pypi发行版中。
0.5.6 (2020-12-11)
- 修复并包含翻译
- 修复模板导出邮件中的超链接
0.5.5 (2020-12-10)
- 修复setup.py sdist中未包含的模板
- 修复保存生成导出文件
0.5.4 (2020-12-01)
- 添加获取任何层属性所有不同值的端点
0.5.3 (2020-11-16)
- 使用get_username()以保持与自定义用户模型的兼容性
- 撤销形状文件URL生成
0.5.2 (2020-11-06)
- 添加使用celery工作进程在异步模式下以shape / geojson / kml导出层的功能。用户应该有电子邮件以接收下载链接。
0.5.1 (2020-10-28)
- 在矢量瓦片上修复Bug
- 改进文档
0.5.0 (2020-10-27)
!! 警告 - 破坏性更改 !!
空几何形状的要素将不再通过完整性错误检查。请在制作迁移之前检查并修复您的geostore_feature表。
-
添加空几何约束
-
对几何约束进行验证
-
geostore.routing已提取到django-geostore-routing
- 将django-geostore-routing添加到您的项目依赖项中
- 将geostore_routing添加到您INSTALLED_APPS中,而不是geostore.routing
-
添加关系属性以直接在要素中处理关系
-
强制几何2d
-
改进瓦片生成
0.4.3 (2020-10-09)
- 修复由渲染器使用的设置
0.4.2 (2020-10-06)
- 修复特征序列化器中的几何文件标签
0.4.1 (2020-10-02)
- 添加KML和GPX渲染器
0.4.0 (2020-09-02)
-
警告:破坏性更改!!
- 要继续使用PGRouting功能,请将geostore.routing添加到INSTALLED_APPS
- 路由API响应中的一些更改。现在API提供最终几何和完整要素段列表
- 可配置路由拓扑的容差(默认值从0.0001到0.00001)
- HOSTNAME设置已弃用。现在使用默认请求HOST生成矢量瓦片的绝对完整URL。您可以设置TERRA_TILES_HOSTNAMES = [HOSTNAME, ]以避免此问题
-
改进
- 正式支持django 3.1
- 不再需要设置HOSTNAME或TERRA_TILES_HOSTNAMES。现在,完整绝对URL以当前主机请求为前缀
- 不再需要安装PGRouting。
- 源/目标路由属性
- 添加索引
- 默认隐藏(editable=False)
- 使用django.db.models中的JSONField
- 更新DjangoModelFactory位置
0.3.19 (2020-06-25)
- 警告:对于没有模式的层,禁用要素属性中的排序和搜索。
- 优化:通过禁用大查询以查找层的属性来改进API功能
- 修复重复的索引
0.3.18 (2020-06-24)
- 改进数据库索引
0.3.17 (2020-03-04)
- 将特征额外几何序列化器因子化,以便在ViewsSet中直接自定义
0.3.16 (2020-01-27)
- 管理层与要素之间的关系(手动/交叉或距离)。
- GeoJSON渲染器。现在API可以渲染.json或.geojson端点(或格式=?geojson)
- 部分属性补丁。对特征视图集的补丁保留未发送的属性。
- 在FeatureViewset中添加Json值搜索过滤器
0.3.15 (2019-12-13)
- 支持django rest framework 3.11
0.3.14 (2019-12-11)
- 正式支持django 3.0
- 添加修改、创建、更新、删除额外几何形状的可能性
- 为额外图层添加可编辑字段
0.3.13 (2019-12-09)
- 按图层顺序排列额外几何形状
0.3.12 (2019-12-03)
改进
- 改进文档
功能
- 能够定义和打包特征(一对一)的额外几何形状
0.3.11 (2019-11-05)
修复
- 防止令牌组ID解码错误
0.3.10 (2019-10-16)
新闻
- 能够按属性键内容排序API特征结果
修复
- 添加缺失的迁移文件
0.3.9 (2019-10-15)
- 删除了管理部分。请在项目中使用自己的管理。
- 删除了DRF yasg。如有需要,请在项目中进行配置。
- 在图层上添加身份验证管理
0.3.8 (2019-10-11)
修复
- 在FeatureViewset上添加权限管理
0.3.7 (2019-10-09)
修复
- 修复tilejson的图层归属和描述解析
0.3.6 (2019-10-09)
修复
- 修复tilejson中当图层没有特征时的错误
- 修复弃用警告:"ST_Line_Substring签名在2.1.0中已弃用。请使用ST_LineSubstring"。
- 修复当图层中没有特征时的瓦片生成
- 修复图层的权限管理
0.3.5 (2019-10-03)
新闻
- 添加一种方法,通过其名称获取json模式属性类型
修复
- 修复在定义了几何形状的图层上导出shapefile的bug。
- 修复tilejson中组图层的URL
- 修复tilejson中当图层没有特征时的错误
- 即使没有特征也返回tilejson
0.3.4 (2019-09-26)
修复
- 在打包中集成test/factories
0.3.3 (2019-09-25)
前端破坏性更改
- 访问tilejson的键从'layer_tilejson'和'group_tilejson'更改为两种情况下的'tilejson'。
修复
- 修复防止旧terracommon应用程序迁移的迁移文件
0.3.2 (2019-09-24)
修复
- 修复防止旧terracommon应用程序迁移的迁移文件
0.3.1 (2019-09-11)
破坏性更改
- 应用程序名称从terra移动到geostore。结构相同,因此备份和恢复您的数据
0.3.0 (2019-09-09)
第一个公开标签
- 从terracommon.terra提取的Terra应用程序