Browse Source

Merge branch 'master' of git+ssh://git.ccss.cz/hsrs/owsproxy

Jachym Cepicky 14 năm trước cách đây
mục cha
commit
8cbb863a5b
3 tập tin đã thay đổi với 17 bổ sung2 xóa
  1. 13 2
      OWS.py
  2. 3 0
      owsproxy.cgi
  3. 1 0
      wfs/__init__.py

+ 13 - 2
OWS.py

@@ -60,7 +60,8 @@ class OWS:
         self.parsedUrl = urlparse.urlparse(self.url)
         if self.service == "WFS":
             from owslib.wfs import WebFeatureService
-            self.capabilities = WebFeatureService(url=self.url)
+            self.capabilities = WebFeatureService(url=self.url,version="1.1.0")
+            logging.debug("OWS Capabilities: %s",self.capabilities)
         elif self.service == "WCS":
             from owslib.wcs import WebCoverageService
             self.capabilities = WebCoverageService(url=self.url,version="1.0.0")
@@ -135,6 +136,9 @@ class OWS:
         if request.getValueByName("fes"):
             self.setFilter(mapobj,request)
 
+        # mapobj.getLayerByName(request.getValueByName("layers")).metadata.get("wfs_filter")
+        # here is still fine, but it fails on dispatch:
+
         res = mapobj.OWSDispatch(request)
         if mapscript.MS_DONE == res:
             raise OWSExceptions.NoValidRequest("No valid OWS Request")
@@ -243,7 +247,12 @@ class OWS:
 
             dest = osr.SpatialReference()
             if crs:
-                dest.ImportFromEPSG(int(crs.split(":")[1]))
+                try:
+                    crsSplit = crs.split(":")
+                    epsg = int(crsSplit[len(crsSplit)-1])                                
+                    dest.ImportFromEPSG(epsg)
+                except (ValueError):
+                    logging.debug("Unable to parse crs '%s'" % crs)
             else:
                 dest.ImportFromWkt(wkt)
             source = osr.SpatialReference()
@@ -273,6 +282,8 @@ class OWS:
         logging.debug("Setting filter for layer %s to %s" % (request.getValueByName("layers"),request.getValueByName("fes")))
         layerobj = mapobj.getLayerByName(request.getValueByName("layers"))
         layerobj.setMetaData("wfs_filter",request.getValueByName("fes"))
+        # layerobj.metadata.get("wfs_filter") is still fine
+        
 
 def getService():
 

+ 3 - 0
owsproxy.cgi

@@ -1,5 +1,8 @@
 #!/usr/bin/python
 
+#debugger
+#import rpdb2; rpdb2.start_embedded_debugger("lucerna")
+
 import OWS
 import logging
 import OWSExceptions

+ 1 - 0
wfs/__init__.py

@@ -59,6 +59,7 @@ class WFS(OWS):
             #if layer.abstract:
             #    lyrobj.setMetaData("ows_abstract",  layer.abstract)
             lyrobj.setMetaData("wfs_typename", name)
+            logging.debug("WFS version %s",self.capabilities.version)
             lyrobj.setMetaData("wfs_version",self.capabilities.version)
             lyrobj.setMetaData("gml_include_items","all")
             lyrobj.setMetaData("wfs_request_method","GET")