Open palmoreck opened 4 years ago
Si directamente con la funcionalidad en geonode vía línea de comando no es posible establecer styles al importar rásters o vectores (esto no he buscado) puede utilizarse geoserver-restconfig (ya instalado en geonode) como en python3_package_for_geonode/geonode_conabio/utils_docker para esto.
Probar por ejemplo con códigos como:
cat = Catalog('http://localhost:8080/geoserver/rest/', 'admin', 'geoserver') layer = cat.get_layer('agri') style = cat.get_style('test', 'style') layer._set_default_style(style) cat.save(layer) print(layer.__dict__)
Ver como ejemplos: https://github.com/GeoNode/geonode/blob/e4f4b277554068bbcc9ae11c6ada7e96d7ad5cb9/geonode/geoserver/helpers.py#L1062
Otra opción es con pycurl
style_name = 'test:style' geoserver_url = 'http://localhost:8080/geoserver' geoserver_user = 'admin' geoserver_password = 'geoserver' workspace = 'test' layername = 'agri' c = pycurl.Curl() style_xml = "<layer><defaultStyle><name>{0}</name></defaultStyle></layer>".format( style_name) c.setopt(pycurl.USERPWD, geoserver_user + ':' + geoserver_password) c.setopt( c.URL, '{0}/rest/layers/{1}:{2}'.format(geoserver_url, workspace, layername)) c.setopt(pycurl.HTTPHEADER, ["Content-type: text/xml"]) c.setopt(pycurl.POSTFIELDSIZE, len(style_xml)) c.setopt(pycurl.READFUNCTION, DataProvider(style_xml).read_cb) #c.setopt(pycurl.CUSTOMREQUEST, "PUT") c.setopt(pycurl.PUT, 1) c.perform() c.close()
Si directamente con la funcionalidad en geonode vía línea de comando no es posible establecer styles al importar rásters o vectores (esto no he buscado) puede utilizarse geoserver-restconfig (ya instalado en geonode) como en python3_package_for_geonode/geonode_conabio/utils_docker para esto.
Probar por ejemplo con códigos como:
Ver como ejemplos: https://github.com/GeoNode/geonode/blob/e4f4b277554068bbcc9ae11c6ada7e96d7ad5cb9/geonode/geoserver/helpers.py#L1062
Otra opción es con pycurl