django-gisserver 2.0__tar.gz → 2.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {django-gisserver-2.0 → django_gisserver-2.1.1}/CHANGES.md +30 -1
- {django-gisserver-2.0/django_gisserver.egg-info → django_gisserver-2.1.1}/PKG-INFO +36 -9
- {django-gisserver-2.0 → django_gisserver-2.1.1}/README.md +4 -3
- {django-gisserver-2.0 → django_gisserver-2.1.1/django_gisserver.egg-info}/PKG-INFO +36 -9
- {django-gisserver-2.0 → django_gisserver-2.1.1}/django_gisserver.egg-info/SOURCES.txt +2 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/django_gisserver.egg-info/requires.txt +8 -1
- django_gisserver-2.1.1/gisserver/__init__.py +1 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/conf.py +23 -1
- django_gisserver-2.1.1/gisserver/crs.py +452 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/db.py +78 -6
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/exceptions.py +106 -2
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/extensions/functions.py +122 -28
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/extensions/queries.py +15 -10
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/features.py +46 -33
- django_gisserver-2.1.1/gisserver/geometries.py +111 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/management/commands/loadgeojson.py +41 -21
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/operations/base.py +11 -7
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/operations/wfs20.py +31 -93
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/output/__init__.py +6 -2
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/output/base.py +28 -13
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/output/csv.py +18 -6
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/output/geojson.py +7 -6
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/output/gml32.py +86 -27
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/output/results.py +25 -39
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/output/utils.py +9 -2
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/ast.py +177 -68
- django_gisserver-2.1.1/gisserver/parsers/fes20/__init__.py +100 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/fes20/expressions.py +97 -27
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/fes20/filters.py +9 -6
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/fes20/identifiers.py +27 -7
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/fes20/lookups.py +8 -6
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/fes20/operators.py +101 -49
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/fes20/sorting.py +14 -6
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/gml/__init__.py +10 -19
- django_gisserver-2.1.1/gisserver/parsers/gml/base.py +58 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/gml/geometries.py +54 -21
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/ows/kvp.py +10 -2
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/ows/requests.py +6 -4
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/query.py +6 -2
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/values.py +61 -4
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/wfs20/__init__.py +2 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/wfs20/adhoc.py +28 -18
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/wfs20/base.py +12 -7
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/wfs20/projection.py +3 -3
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/wfs20/requests.py +1 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/wfs20/stored.py +3 -2
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/xml.py +12 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/projection.py +17 -7
- django_gisserver-2.1.1/gisserver/static/gisserver/index.css +36 -0
- django_gisserver-2.1.1/gisserver/templates/gisserver/base.html +15 -0
- django_gisserver-2.1.1/gisserver/templates/gisserver/index.html +20 -0
- django_gisserver-2.1.1/gisserver/templates/gisserver/service_description.html +22 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/templates/gisserver/wfs/feature_field.html +1 -1
- django_gisserver-2.1.1/gisserver/templates/gisserver/wfs/feature_type.html +54 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/types.py +152 -82
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/views.py +47 -24
- {django-gisserver-2.0 → django_gisserver-2.1.1}/setup.py +10 -2
- django-gisserver-2.0/gisserver/__init__.py +0 -1
- django-gisserver-2.0/gisserver/geometries.py +0 -353
- django-gisserver-2.0/gisserver/parsers/fes20/__init__.py +0 -28
- django-gisserver-2.0/gisserver/parsers/gml/base.py +0 -40
- django-gisserver-2.0/gisserver/static/gisserver/index.css +0 -15
- django-gisserver-2.0/gisserver/templates/gisserver/index.html +0 -26
- django-gisserver-2.0/gisserver/templates/gisserver/service_description.html +0 -16
- django-gisserver-2.0/gisserver/templates/gisserver/wfs/feature_type.html +0 -23
- {django-gisserver-2.0 → django_gisserver-2.1.1}/LICENSE +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/MANIFEST.in +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/django_gisserver.egg-info/dependency_links.txt +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/django_gisserver.egg-info/not-zip-safe +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/django_gisserver.egg-info/top_level.txt +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/compat.py +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/extensions/__init__.py +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/management/__init__.py +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/management/commands/__init__.py +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/operations/__init__.py +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/output/iters.py +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/output/stored.py +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/output/xmlschema.py +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/__init__.py +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/parsers/ows/__init__.py +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/templates/gisserver/wfs/2.0.0/get_capabilities.xml +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/templatetags/__init__.py +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/gisserver/templatetags/gisserver_tags.py +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/pyproject.toml +0 -0
- {django-gisserver-2.0 → django_gisserver-2.1.1}/setup.cfg +0 -0
|
@@ -1,4 +1,33 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 2025-06-06 (2.1.1)
|
|
2
|
+
|
|
3
|
+
* Fixed using legacy longitude/latitude rendering for `EPSG:4326` and `:http://www.opengis.net/gml/srs/epsg.xml#xxxx` SRS names.
|
|
4
|
+
* Improved styling for the default HTML page.
|
|
5
|
+
|
|
6
|
+
This increases interoperability with web-based clients and legacy libraries. GeoServer applies the same heuristic.
|
|
7
|
+
Clients that use the official OGC notations such as `urn:ogc:def:crs:EPSG::4326` and `http://www.opengis.net/def/crs/epsg/0/4326`
|
|
8
|
+
are not affected. If needed, this behavior can be disabled using `GISSERVER_FORCE_XY_EPSG_4326=False` and `GISSERVER_FORCE_XY_OLD_CRS=False`.
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
# 2025-05-29 (2.1)
|
|
12
|
+
|
|
13
|
+
* Added support for `ArrayField` field in CSV exports.
|
|
14
|
+
* Added support for `models.DurationField` for features.
|
|
15
|
+
* Added proper axis ordering handling.
|
|
16
|
+
* Changed built-in fes functions to match current GeoServer signatures.
|
|
17
|
+
* Improved error handling for invalid filter input (also fixes 500 errors).
|
|
18
|
+
* Improved error handling for database query errors during rendering.
|
|
19
|
+
* Improved error messages for unexpected tags in the XML body.
|
|
20
|
+
* Improved error handling for fes 1.0 arithmetic operators (e.g. typing: `date > 2020-01-01` in QGis).
|
|
21
|
+
* Improved HTML index page, make it easier to override and restyle.
|
|
22
|
+
* Improved documentation, added API documentation.
|
|
23
|
+
* Fixed axis ordering handling for `EPSG:4326` and other longitude/latitude CRS definitions.
|
|
24
|
+
* Fixed comparing to `NULL` when date/time input is invalid.
|
|
25
|
+
* Fixed filter comparisons for `<`, `<=`, `>`, `>=` when using a reversed "value < property" ordering.
|
|
26
|
+
* Fixed crash when receiving WFS 1.0 POST requests.
|
|
27
|
+
* Fixed building readthedocs.
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
# 2025-04-28 (2.0)
|
|
2
31
|
|
|
3
32
|
* Added support for XML POST requests.
|
|
4
33
|
* Added support for geometry elements on child nodes.
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: django-gisserver
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.1.1
|
|
4
4
|
Summary: Django speaking WFS 2.0 (exposing GeoDjango model fields)
|
|
5
5
|
Home-page: https://github.com/amsterdam/django-gisserver
|
|
6
6
|
Author: Diederik van der Boor
|
|
7
7
|
Author-email: opensource@edoburu.nl
|
|
8
8
|
License: Mozilla Public License 2.0
|
|
9
|
-
Platform: UNKNOWN
|
|
10
9
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
10
|
Classifier: Environment :: Web Environment
|
|
12
11
|
Classifier: Intended Audience :: Developers
|
|
@@ -31,8 +30,37 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
31
30
|
Requires: Django (>=3.2)
|
|
32
31
|
Requires-Python: >=3.9
|
|
33
32
|
Description-Content-Type: text/markdown
|
|
34
|
-
Provides-Extra: tests
|
|
35
33
|
License-File: LICENSE
|
|
34
|
+
Requires-Dist: Django>=3.2
|
|
35
|
+
Requires-Dist: defusedxml>=0.7.1
|
|
36
|
+
Requires-Dist: lru_dict>=1.1.7
|
|
37
|
+
Requires-Dist: orjson>=3.9.15
|
|
38
|
+
Requires-Dist: pyproj>=3.6.1
|
|
39
|
+
Provides-Extra: tests
|
|
40
|
+
Requires-Dist: django-environ>=0.4.5; extra == "tests"
|
|
41
|
+
Requires-Dist: psycopg2-binary>=2.8.4; extra == "tests"
|
|
42
|
+
Requires-Dist: lxml>=4.9.1; extra == "tests"
|
|
43
|
+
Requires-Dist: pytest>=6.2.3; extra == "tests"
|
|
44
|
+
Requires-Dist: pytest-django>=4.1.0; extra == "tests"
|
|
45
|
+
Requires-Dist: pytest-cov>=2.11.1; extra == "tests"
|
|
46
|
+
Provides-Extra: docs
|
|
47
|
+
Requires-Dist: Django~=5.0; extra == "docs"
|
|
48
|
+
Requires-Dist: sphinxcontrib-django>=2.5; extra == "docs"
|
|
49
|
+
Requires-Dist: myst-parser>=3.0.1; extra == "docs"
|
|
50
|
+
Requires-Dist: psycopg2-binary>=2.8.4; extra == "docs"
|
|
51
|
+
Dynamic: author
|
|
52
|
+
Dynamic: author-email
|
|
53
|
+
Dynamic: classifier
|
|
54
|
+
Dynamic: description
|
|
55
|
+
Dynamic: description-content-type
|
|
56
|
+
Dynamic: home-page
|
|
57
|
+
Dynamic: license
|
|
58
|
+
Dynamic: license-file
|
|
59
|
+
Dynamic: provides-extra
|
|
60
|
+
Dynamic: requires
|
|
61
|
+
Dynamic: requires-dist
|
|
62
|
+
Dynamic: requires-python
|
|
63
|
+
Dynamic: summary
|
|
36
64
|
|
|
37
65
|
[](https://django-gisserver.readthedocs.io/en/latest/?badge=latest)
|
|
38
66
|
[](https://github.com/Amsterdam/django-gisserver/actions/workflows/tests.yaml)
|
|
@@ -100,12 +128,13 @@ class Restaurant(models.Model):
|
|
|
100
128
|
Write a view that exposes this model as a WFS feature:
|
|
101
129
|
|
|
102
130
|
```python
|
|
131
|
+
from gisserver.crs import CRS, CRS84, WEB_MERCATOR
|
|
103
132
|
from gisserver.features import FeatureType, ServiceDescription
|
|
104
|
-
from gisserver.geometries import CRS, WGS84
|
|
105
133
|
from gisserver.views import WFSView
|
|
106
134
|
from .models import Restaurant
|
|
107
135
|
|
|
108
|
-
|
|
136
|
+
# As example, the local coordinate system for The Netherlands
|
|
137
|
+
RD_NEW = CRS.from_string("urn:ogc:def:crs:EPSG::28992")
|
|
109
138
|
|
|
110
139
|
|
|
111
140
|
class PlacesWFSView(WFSView):
|
|
@@ -128,7 +157,7 @@ class PlacesWFSView(WFSView):
|
|
|
128
157
|
FeatureType(
|
|
129
158
|
Restaurant.objects.all(),
|
|
130
159
|
fields="__all__",
|
|
131
|
-
other_crs=[RD_NEW]
|
|
160
|
+
other_crs=[RD_NEW, CRS84, WEB_MERCATOR]
|
|
132
161
|
),
|
|
133
162
|
]
|
|
134
163
|
```
|
|
@@ -166,5 +195,3 @@ software developed with public money is also publicly available.
|
|
|
166
195
|
|
|
167
196
|
This package is initially developed by the City of Amsterdam, but the tools
|
|
168
197
|
and concepts created in this project can be used in any city.
|
|
169
|
-
|
|
170
|
-
|
|
@@ -64,12 +64,13 @@ class Restaurant(models.Model):
|
|
|
64
64
|
Write a view that exposes this model as a WFS feature:
|
|
65
65
|
|
|
66
66
|
```python
|
|
67
|
+
from gisserver.crs import CRS, CRS84, WEB_MERCATOR
|
|
67
68
|
from gisserver.features import FeatureType, ServiceDescription
|
|
68
|
-
from gisserver.geometries import CRS, WGS84
|
|
69
69
|
from gisserver.views import WFSView
|
|
70
70
|
from .models import Restaurant
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
# As example, the local coordinate system for The Netherlands
|
|
73
|
+
RD_NEW = CRS.from_string("urn:ogc:def:crs:EPSG::28992")
|
|
73
74
|
|
|
74
75
|
|
|
75
76
|
class PlacesWFSView(WFSView):
|
|
@@ -92,7 +93,7 @@ class PlacesWFSView(WFSView):
|
|
|
92
93
|
FeatureType(
|
|
93
94
|
Restaurant.objects.all(),
|
|
94
95
|
fields="__all__",
|
|
95
|
-
other_crs=[RD_NEW]
|
|
96
|
+
other_crs=[RD_NEW, CRS84, WEB_MERCATOR]
|
|
96
97
|
),
|
|
97
98
|
]
|
|
98
99
|
```
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: django-gisserver
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.1.1
|
|
4
4
|
Summary: Django speaking WFS 2.0 (exposing GeoDjango model fields)
|
|
5
5
|
Home-page: https://github.com/amsterdam/django-gisserver
|
|
6
6
|
Author: Diederik van der Boor
|
|
7
7
|
Author-email: opensource@edoburu.nl
|
|
8
8
|
License: Mozilla Public License 2.0
|
|
9
|
-
Platform: UNKNOWN
|
|
10
9
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
10
|
Classifier: Environment :: Web Environment
|
|
12
11
|
Classifier: Intended Audience :: Developers
|
|
@@ -31,8 +30,37 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
31
30
|
Requires: Django (>=3.2)
|
|
32
31
|
Requires-Python: >=3.9
|
|
33
32
|
Description-Content-Type: text/markdown
|
|
34
|
-
Provides-Extra: tests
|
|
35
33
|
License-File: LICENSE
|
|
34
|
+
Requires-Dist: Django>=3.2
|
|
35
|
+
Requires-Dist: defusedxml>=0.7.1
|
|
36
|
+
Requires-Dist: lru_dict>=1.1.7
|
|
37
|
+
Requires-Dist: orjson>=3.9.15
|
|
38
|
+
Requires-Dist: pyproj>=3.6.1
|
|
39
|
+
Provides-Extra: tests
|
|
40
|
+
Requires-Dist: django-environ>=0.4.5; extra == "tests"
|
|
41
|
+
Requires-Dist: psycopg2-binary>=2.8.4; extra == "tests"
|
|
42
|
+
Requires-Dist: lxml>=4.9.1; extra == "tests"
|
|
43
|
+
Requires-Dist: pytest>=6.2.3; extra == "tests"
|
|
44
|
+
Requires-Dist: pytest-django>=4.1.0; extra == "tests"
|
|
45
|
+
Requires-Dist: pytest-cov>=2.11.1; extra == "tests"
|
|
46
|
+
Provides-Extra: docs
|
|
47
|
+
Requires-Dist: Django~=5.0; extra == "docs"
|
|
48
|
+
Requires-Dist: sphinxcontrib-django>=2.5; extra == "docs"
|
|
49
|
+
Requires-Dist: myst-parser>=3.0.1; extra == "docs"
|
|
50
|
+
Requires-Dist: psycopg2-binary>=2.8.4; extra == "docs"
|
|
51
|
+
Dynamic: author
|
|
52
|
+
Dynamic: author-email
|
|
53
|
+
Dynamic: classifier
|
|
54
|
+
Dynamic: description
|
|
55
|
+
Dynamic: description-content-type
|
|
56
|
+
Dynamic: home-page
|
|
57
|
+
Dynamic: license
|
|
58
|
+
Dynamic: license-file
|
|
59
|
+
Dynamic: provides-extra
|
|
60
|
+
Dynamic: requires
|
|
61
|
+
Dynamic: requires-dist
|
|
62
|
+
Dynamic: requires-python
|
|
63
|
+
Dynamic: summary
|
|
36
64
|
|
|
37
65
|
[](https://django-gisserver.readthedocs.io/en/latest/?badge=latest)
|
|
38
66
|
[](https://github.com/Amsterdam/django-gisserver/actions/workflows/tests.yaml)
|
|
@@ -100,12 +128,13 @@ class Restaurant(models.Model):
|
|
|
100
128
|
Write a view that exposes this model as a WFS feature:
|
|
101
129
|
|
|
102
130
|
```python
|
|
131
|
+
from gisserver.crs import CRS, CRS84, WEB_MERCATOR
|
|
103
132
|
from gisserver.features import FeatureType, ServiceDescription
|
|
104
|
-
from gisserver.geometries import CRS, WGS84
|
|
105
133
|
from gisserver.views import WFSView
|
|
106
134
|
from .models import Restaurant
|
|
107
135
|
|
|
108
|
-
|
|
136
|
+
# As example, the local coordinate system for The Netherlands
|
|
137
|
+
RD_NEW = CRS.from_string("urn:ogc:def:crs:EPSG::28992")
|
|
109
138
|
|
|
110
139
|
|
|
111
140
|
class PlacesWFSView(WFSView):
|
|
@@ -128,7 +157,7 @@ class PlacesWFSView(WFSView):
|
|
|
128
157
|
FeatureType(
|
|
129
158
|
Restaurant.objects.all(),
|
|
130
159
|
fields="__all__",
|
|
131
|
-
other_crs=[RD_NEW]
|
|
160
|
+
other_crs=[RD_NEW, CRS84, WEB_MERCATOR]
|
|
132
161
|
),
|
|
133
162
|
]
|
|
134
163
|
```
|
|
@@ -166,5 +195,3 @@ software developed with public money is also publicly available.
|
|
|
166
195
|
|
|
167
196
|
This package is initially developed by the City of Amsterdam, but the tools
|
|
168
197
|
and concepts created in this project can be used in any city.
|
|
169
|
-
|
|
170
|
-
|
|
@@ -13,6 +13,7 @@ django_gisserver.egg-info/top_level.txt
|
|
|
13
13
|
gisserver/__init__.py
|
|
14
14
|
gisserver/compat.py
|
|
15
15
|
gisserver/conf.py
|
|
16
|
+
gisserver/crs.py
|
|
16
17
|
gisserver/db.py
|
|
17
18
|
gisserver/exceptions.py
|
|
18
19
|
gisserver/features.py
|
|
@@ -64,6 +65,7 @@ gisserver/parsers/wfs20/projection.py
|
|
|
64
65
|
gisserver/parsers/wfs20/requests.py
|
|
65
66
|
gisserver/parsers/wfs20/stored.py
|
|
66
67
|
gisserver/static/gisserver/index.css
|
|
68
|
+
gisserver/templates/gisserver/base.html
|
|
67
69
|
gisserver/templates/gisserver/index.html
|
|
68
70
|
gisserver/templates/gisserver/service_description.html
|
|
69
71
|
gisserver/templates/gisserver/wfs/feature_field.html
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.1.1" # follows PEP440
|
|
@@ -4,6 +4,8 @@ from django.conf import settings
|
|
|
4
4
|
from django.core.signals import setting_changed
|
|
5
5
|
from django.dispatch import receiver
|
|
6
6
|
|
|
7
|
+
_originals = {}
|
|
8
|
+
|
|
7
9
|
# -- feature flags
|
|
8
10
|
|
|
9
11
|
# Configure whether the <ows:WGS84BoundingBox> should be included in GetCapabilities.
|
|
@@ -30,6 +32,17 @@ GISSERVER_COUNT_NUMBER_MATCHED = getattr(settings, "GISSERVER_COUNT_NUMBER_MATCH
|
|
|
30
32
|
|
|
31
33
|
# -- output rendering
|
|
32
34
|
|
|
35
|
+
# Following https://docs.geoserver.org/stable/en/user/services/wfs/axis_order.html here:
|
|
36
|
+
# Whether the older EPSG:4326 notation (instead of the OGC recommended styles)
|
|
37
|
+
# should render in legacy longitude/latitude (x/y) ordering.
|
|
38
|
+
# This increases interoperability with legacy web clients,
|
|
39
|
+
# as others use urn:ogc:def:crs:EPSG::4326 or http://www.opengis.net/def/crs/epsg/0/4326.
|
|
40
|
+
GISSERVER_FORCE_XY_EPSG_4326 = getattr(settings, "GISSERVER_FORCE_XY_EPSG_4326", True)
|
|
41
|
+
|
|
42
|
+
# Whether the legacy CRS notation http://www.opengis.net/gml/srs/epsg.xml# should render in X/Y
|
|
43
|
+
GISSERVER_FORCE_XY_OLD_CRS = getattr(settings, "GISSERVER_FORCE_XY_OLD_CRS", True)
|
|
44
|
+
|
|
45
|
+
# Extra output formats for GetFeature (see documentation for details)
|
|
33
46
|
GISSERVER_EXTRA_OUTPUT_FORMATS = getattr(settings, "GISSERVER_EXTRA_OUTPUT_FORMATS", {})
|
|
34
47
|
GISSERVER_GET_FEATURE_OUTPUT_FORMATS = getattr(
|
|
35
48
|
settings, "GISSERVER_GET_FEATURE_OUTPUT_FORMATS", {}
|
|
@@ -59,4 +72,13 @@ def _on_settings_change(setting, value, enter, **kwargs):
|
|
|
59
72
|
if not setting.startswith("GISSERVER_"):
|
|
60
73
|
return
|
|
61
74
|
|
|
62
|
-
globals()
|
|
75
|
+
conf_module = globals()
|
|
76
|
+
if value is None and not enter:
|
|
77
|
+
# override_settings().disable() returns what the django settings module had.
|
|
78
|
+
# Revert to our defaults here instead.
|
|
79
|
+
value = _originals.get(setting)
|
|
80
|
+
else:
|
|
81
|
+
# Track defaults of this file for reverting to them
|
|
82
|
+
_originals.setdefault(setting, conf_module[setting])
|
|
83
|
+
|
|
84
|
+
conf_module[setting] = value
|