跳转到主要内容

Django支持WFS 2.0(暴露GeoDjango模型字段)

项目描述

Documentation Actions PyPI MPL License Coverage

django-gisserver

Django支持WFS 2.0以暴露地理数据。

功能

  • WFS 2.0基本实现。
  • GML 3.2输出。
  • 标准和空间过滤(FES 2.0)
  • GeoJSON和CSV导出格式。
  • 可扩展的视图/操作。
  • 使用GeoDjango查询进行过滤。
  • 大型数据集的流式响应。

文档

更多详情,请参阅: https://django-gisserver.readthedocs.io/

快速入门

在您的项目中安装该模块

pip install django-gisserver

将其添加到INSTALLED_APPS

INSTALLED_APPS = [
    ...
    "gisserver",
]

创建一个公开GeoDjango字段的模型

from django.contrib.gis.db.models import PointField
from django.db import models


class Restaurant(models.Model):
    name = models.CharField(max_length=200)
    location = PointField(null=True)

    def __str__(self):
        return self.name

编写一个视图,将此模型公开为WFS功能

from gisserver.features import FeatureType, ServiceDescription
from gisserver.geometries import CRS, WGS84
from gisserver.views import WFSView
from .models import Restaurant

RD_NEW = CRS.from_srid(28992)


class PlacesWFSView(WFSView):
    """An simple view that uses the WFSView against our test model."""

    xml_namespace = "http://example.org/gisserver"

    # The service metadata
    service_description = ServiceDescription(
        title="Places",
        abstract="Unittesting",
        keywords=["django-gisserver"],
        provider_name="Django",
        provider_site="https://www.example.com/",
        contact_person="django-gisserver",
    )

    # Each Django model is listed here as a feature.
    feature_types = [
        FeatureType(
            Restaurant.objects.all(),
            fields="__all__",
            other_crs=[RD_NEW]
        ),
    ]

在URLConf中使用该视图

from django.urls import path
from . import views

urlpatterns = [
    path("/wfs/places/", views.PlacesWFSView.as_view()),
]

您现在可以在GIS应用程序中使用http://localhost:8000/wfs/places/。它将执行如下请求

通过将&OUTPUTFORMAT=geojson&OUTPUTFORMAT=csv添加到GetFeature请求中,返回GeoJSON和CSV输出。CSV输出页面大小无限,因为它性能相当出色。

为什么分享此代码

阿姆斯特丹市政府的"datapunt"团队开发市政软件。其中大部分软件随后以开源形式发布,以便其他市政府、组织和个人可以将其作为基础和灵感来开发类似的软件。阿姆斯特丹市政府认为,用公共资金开发的软件也应公开可用。

此软件包最初由阿姆斯特丹市开发,但在此项目中创建的工具和概念可用于任何城市。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分布

django-gisserver-1.4.1.tar.gz (103.6 kB 查看散列)

上传时间

构建分布

django_gisserver-1.4.1-py3-none-any.whl (117.5 kB 查看散列)

上传时间 Python 3

支持者