Ejemplo n.º 1
0
def saveToGeonode(payload):
    admin = Profile.objects.filter(is_superuser=True).first()
    logger.debug('Uploading layer %s to geonode' % payload['zip_name'])

    # use overwrite to make sure if a layer exists it gets updated
    uploaded = upload(payload['zipfile_path'], admin, overwrite=True)[0]
    if uploaded['status'] == 'failed':
        raise Exception("Failed layer %s with error %s " %
                        (payload['zip_name'], uploaded['error']))
    else:
        uploaded_name = uploaded['name']

    if any(s in payload['zip_name'] for s in ['_a', '_p', '_l']):
        gs_layer = gs_catalog.get_layer(name=uploaded_name)
        gs_style = gs_catalog.get_style(name=payload['style_name'])

        if not gs_style:
            #let's make sure the style is there
            gs_catalog.create_style(payload['style_name'],
                                    payload['style_body'])
            gs_style = gs_catalog.get_style(name=payload['style_name'])

        gs_layer.default_style = gs_style
        gs_catalog.save(gs_layer)
        # gs_catalog.reload()

    saved_layer = Layer.objects.get(name=uploaded_name)
    mapSetLayer = createMapSetLayer(saved_layer, payload['zip_name'])
    payload['mapset'].layers.add(mapSetLayer)

    #create_gs_thumbnail(saved_layer, overwrite=True)
    return uploaded_name
Ejemplo n.º 2
0
 def create_style(self, name, sld_body, overwrite=True, raw=True):
     name = self.get_new_style_name(name)
     sld_body = self.convert_sld_attributes(sld_body)
     gs_catalog.create_style(name,
                             sld_body,
                             overwrite=overwrite,
                             raw=True,
                             workspace=settings.DEFAULT_WORKSPACE)
     style = gs_catalog.get_style(name,
                                  workspace=settings.DEFAULT_WORKSPACE)
     return style
Ejemplo n.º 3
0
 def upload_style(self, style_name, sld_body, overwrite=False):
     name = self.get_new_name(style_name)
     gs_catalog.create_style(
         name,
         sld_body,
         overwrite=overwrite,
         raw=True,
         workspace=settings.DEFAULT_WORKSPACE)
     style_func = repeat_every()(gs_catalog.get_style)
     style = style_func(name, settings.DEFAULT_WORKSPACE)
     style_url = style.body_href
     gstyle, created = Style.objects.get_or_create(
         name=name,
         sld_title=name,
         workspace=settings.DEFAULT_WORKSPACE,
         sld_body=sld_body,
         sld_url=style_url)
     return gstyle