From 142a4987dcd784fa9a933d5d97fc194c9f799607 Mon Sep 17 00:00:00 2001
From: m431m <m431m@tutanota.com>
Date: Thu, 31 May 2018 16:21:57 +0200
Subject: [PATCH] Improved data sql request (with srid, with unique)

---
 src/mra.py | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/mra.py b/src/mra.py
index 873b83f..03338ac 100644
--- a/src/mra.py
+++ b/src/mra.py
@@ -291,6 +291,9 @@ class Mapfile(MetadataMixin):
             self.ms.setProjection("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
             self.ms.setExtent(-180,-90,180,90)
             self.ms.units = mapscript.MS_DD
+            self.set_metadata("ows_title", "OGC Web Service")
+            self.set_metadata("ows_srs", "EPSG:4326")
+
             for ows in ("wms", "wfs", "wcs"):
                 self.set_metadata("%s_enable_request" % ows, "")
         else:
@@ -446,6 +449,11 @@ class FeatureTypeModel(LayerModel):
             connection += " ".join("%s=%s" % (p, cparam[p]) for p in ["user", "password"] if p in cparam)
             self.ms.connection = connection
             self.ms.data = '%s FROM %s."%s"' % (ds[ft_name].get_geometry_column(), cparam.get("schema", "public"), ft_name)
+            if ft.get_fid_column() is not None:
+                self.ms.data += ' USING UNIQUE %s' % ft.get_fid_column()
+            print(ft.get_authority_name(), ft.get_authority_code())
+            if ft.get_authority_code() is not None:
+                self.ms.data += ' USING SRID=%s' % ft.get_authority_code()
             # self.set_metadata("ows_extent", "%s %s %s %s" %
             #     (ft.get_extent().minX(), ft.get_extent().minY(),
             #     ft.get_extent().maxX(), ft.get_extent().maxY()))
@@ -634,7 +642,10 @@ class Workspace(Mapfile):
             copy = info
             for m in path[:-1]:
                 copy = copy.get(m)
-            del copy[path[-1]]
+            try:
+                del copy[path[-1]]
+            except:
+                pas
 
         return info
 
-- 
GitLab