瀏覽代碼

sld bug u railway linestring

Honza 5 年之前
父節點
當前提交
da9a16782b
共有 2 個文件被更改,包括 27 次插入15 次删除
  1. 27 15
      Atlas.py
  2. 二進制
      __pycache__/Atlas.cpython-37.pyc

+ 27 - 15
Atlas.py

@@ -909,7 +909,7 @@ class Atlas:
         except:
             layer = it.text()##pro listWidget
         try:
-            url = self.URI+'/rest/' +self.laymanUsername+'/layers/'+str(layer)+'/thumbnail'    
+            url = self.URI+'/rest/' +self.laymanUsername+'/layers/'+str(layer).lower()+'/thumbnail'    
             data = urlopen(url).read()
             pixmap = QPixmap(200, 200)
             pixmap.loadFromData(data)
@@ -924,7 +924,7 @@ class Atlas:
         except:
             layer = it.text()##pro listWidget
         try:
-            url = self.URI+'/rest/'+self.laymanUsername+'/layers/'+str(layer)+'/thumbnail'    
+            url = self.URI+'/rest/'+self.laymanUsername+'/layers/'+str(layer).lower()+'/thumbnail'    
             data = urlopen(url).read()
             pixmap = QPixmap(170, 170)
             pixmap.loadFromData(data)
@@ -942,7 +942,7 @@ class Atlas:
         
         try:
             map = self.removeUnacceptableChars(str(map))
-            url = self.URI+'/rest/'+self.laymanUsername+'/maps/'+str(map)+'/thumbnail'    
+            url = self.URI+'/rest/'+self.laymanUsername+'/maps/'+str(map).lower()+'/thumbnail'    
             print(url)
             data = urlopen(url).read()
             pixmap = QPixmap(100, 100)
@@ -1188,9 +1188,14 @@ class Atlas:
         name = (os.path.splitext(os.path.basename(fileName))[0])
         vlayer = QgsVectorLayer(fileName, name,"ogr")
         sldPath = os.path.splitext(fileName[:-4])[0] + ".sld"
+        qmlPath = os.path.splitext(fileName[:-4])[0] + ".qml"
         print (sldPath)
-        exists = os.path.isfile(sldPath)
-        if (exists):
+        sldExists = os.path.isfile(sldPath)
+        qmlExists = os.path.isfile(qmlPath)
+        if (qmlExists):
+            print("qml loaded")
+            vlayer.loadNamedStyle(qmlPath)
+        elif (sldExists):
             vlayer.loadSldStyle(os.path.splitext(fileName)[0]+ ".sld")
             print("sld loaded")
         QgsProject.instance().addMapLayer(vlayer)
@@ -1305,7 +1310,9 @@ class Atlas:
                 print(tempFile)
                 #QMessageBox.information(None, "Layman", "It is not possible overwrite this file. File is already open in other process.")  
                 sld_temp_filename = tempFile.replace("geojson", "sld") 
+                qml_temp_filename = tempFile.replace("geojson", "qml")
                 layer.saveSldStyle(sld_temp_filename)
+                layer.saveNamedStyle(qml_temp_filename)
                 result2 = qgis.core.QgsVectorFileWriter.writeAsVectorFormat(layer, tempFile, "utf-8", crs, ogr_driver_name)
                 print(result2)
                 if(result2[0] == 2):
@@ -1316,16 +1323,19 @@ class Atlas:
                     print(tempFile, layer_name)
                     shutil.copy(tempFile, layer_name)
                     shutil.copy(sld_temp_filename, layer_name.replace(".geojson", ".sld"))
+                    shutil.copy(sld_temp_filename, layer_name.replace(".geojson", ".qml"))
                     self.loadJsonLayer(layer_name)
                 
             else:                
-                sld_filename = layer_name.replace("geojson", "sld")             
+                sld_filename = layer_name.replace("geojson", "sld")     
+                qml_filename = layer_name.replace("geojson", "qml") 
                 result3 = False
                 layer.saveSldStyle(sld_filename)
+                layer.saveNamedStyle(qml_filename)
 
     def json_export(self, layer_name):     
 
-        filePath = self.getTempPath(layer_name)  
+        filePath = self.getTempPath(layer_name.lower())  
         ogr_driver_name = "GeoJSON"     
         project = QgsProject.instance()
         fileNames = []      
@@ -1361,7 +1371,7 @@ class Atlas:
         #    print("convert")
         #    print(main(["","-f", ogr_driver_name, "-s_srs", "EPSG:5514", "-t_srs", "EPSG:4326", out, input])) ## ogr2ogr
             ##
-            sld_filename = filePath.replace("geojson", "sld")            
+            sld_filename = filePath.replace("geojson", "sld").lower()            
             result3 = False
             layer.saveSldStyle(sld_filename)
 
@@ -1479,7 +1489,7 @@ class Atlas:
                      
             crs = layers[0].crs().authid()
             crs = "EPSG:4326"
-            data = { 'name' :  str(layer_name), 'title' : str(layer_name), 'crs' : str(crs) } 
+            data = { 'name' :  str(layer_name).lower(), 'title' : str(layer_name), 'crs' : str(crs) } 
             
             if (self.checkValidAttributes(layer_name)):
                 if (self.checkExistingLayer(layer_name)):
@@ -2048,7 +2058,8 @@ class Atlas:
         epsg = "EPSG:4326"
         urlWithParams = 'contextualWMSLegend=0&crs='+epsg+'&IgnoreReportedLayerExtents=1&dpiMode=7&featureCount=10&format=image/png&layers='+layerName+'&styles=&url=' + url
         print(urlWithParams)
-        
+        print("test")
+        print(layerNameTitle)
         rlayer = QgsRasterLayer(urlWithParams, layerNameTitle, 'wms')
         try:
             print("extents")
@@ -2108,17 +2119,18 @@ class Atlas:
         return ret
 
     def registerLayer(self, name):
-        sldPath = self.getTempPath(name).replace("geojson", "sld")
-        geoPath = self.getTempPath(name)
+        sldPath = self.getTempPath(name).replace("geojson", "sld").lower()
+        geoPath = self.getTempPath(name).lower()
 
         url = "http://layman.lesprojekt.cz/rest/"+self.laymanUsername+"/layers"
                              
         files = {'sld': (sldPath, open(sldPath, 'rb')),} # nahrávám sld
         payload = {        
-            'file': name+".geojson"
+            'file': name.lower()+".geojson",
+            'title': name
             }    
         response = requests.request("POST", url, files = files, data=payload, headers = self.authHeader)    
-       # print(response.text)
+        print(response.text)
 
     def read_in_chunks(self, file_object): ## cca 1MB chunk převzato z laymana test klienta
         chunk_size=self.CHUNK_SIZE
@@ -2146,7 +2158,7 @@ class Atlas:
         arr = []
         for piece in self.read_in_chunks(f):
             arr.append(piece)
-     
+        layer_name = layer_name.lower()
         url = self.URI+'/rest/'+self.laymanUsername+'/layers/'+layer_name+'/chunk'     
         resumableFilename = layer_name+'.geojson'
         layman_original_parameter = "file"  

二進制
__pycache__/Atlas.cpython-37.pyc