本文整理汇总了Python中geonode.utils.GXPMap.viewer_json方法的典型用法代码示例。如果您正苦于以下问题:Python GXPMap.viewer_json方法的具体用法?Python GXPMap.viewer_json怎么用?Python GXPMap.viewer_json使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类geonode.utils.GXPMap
的用法示例。
在下文中一共展示了GXPMap.viewer_json方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: layer_detail
# 需要导入模块: from geonode.utils import GXPMap [as 别名]
# 或者: from geonode.utils.GXPMap import viewer_json [as 别名]
def layer_detail(request, layername, template='layers/layer_detail.html'):
layer = _resolve_layer(request, layername, 'layers.view_layer', _PERMISSION_MSG_VIEW)
maplayer = GXPLayer(name = layer.typename, ows_url = ogc_server_settings.public_url + "wms", layer_params=json.dumps( layer.attribute_config()))
layer.srid_url = "http://www.spatialreference.org/ref/" + layer.srid.replace(':','/').lower() + "/"
signals.pre_save.disconnect(geoserver_pre_save, sender=Layer)
signals.post_save.disconnect(geoserver_post_save, sender=Layer)
layer.popular_count += 1
layer.save()
signals.pre_save.connect(geoserver_pre_save, sender=Layer)
signals.post_save.connect(geoserver_post_save, sender=Layer)
# center/zoom don't matter; the viewer will center on the layer bounds
map_obj = GXPMap(projection="EPSG:900913")
DEFAULT_BASE_LAYERS = default_map_config()[1]
if layer.storeType=='dataStore':
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_VECTOR)
else:
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_RASTER)
metadata = layer.link_set.metadata().filter(
name__in=settings.DOWNLOAD_FORMATS_METADATA)
return render_to_response(template, RequestContext(request, {
"layer": layer,
"viewer": json.dumps(map_obj.viewer_json(* (DEFAULT_BASE_LAYERS + [maplayer]))),
"permissions_json": _perms_info_json(layer, LAYER_LEV_NAMES),
"documents": get_related_documents(layer),
"links": links,
"metadata": metadata,
}))
示例2: layer_edit
# 需要导入模块: from geonode.utils import GXPMap [as 别名]
# 或者: from geonode.utils.GXPMap import viewer_json [as 别名]
def layer_edit(request, layername, template='layers/layer_edit.html'):
"""
The view that returns the map composer opened to
a map with the given layername.
"""
user = get_valid_user()
ogc_server_settings.DATASTORE = request.user.profile.user.username
layer = _resolve_layer(request, layername, 'layers.view_layer', _PERMISSION_MSG_VIEW)
maplayer = GXPLayer(name = layer.typename, ows_url = ogc_server_settings.public_url + "wms", layer_params=json.dumps( layer.attribute_config()))
layer.srid_url = "http://www.spatialreference.org/ref/" + layer.srid.replace(':','/').lower() + "/"
signals.pre_save.disconnect(geoserver_pre_save, sender=Layer)
signals.post_save.disconnect(geoserver_post_save, sender=Layer)
layer.popular_count += 1
layer.save()
signals.pre_save.connect(geoserver_pre_save, sender=Layer)
signals.post_save.connect(geoserver_post_save, sender=Layer)
# center/zoom don't matter; the viewer will center on the layer bounds
map_obj = GXPMap(projection="EPSG:900913")
DEFAULT_BASE_LAYERS = default_map_config()[1]
config = map_obj.viewer_json(* (DEFAULT_BASE_LAYERS + [maplayer]))
return render_to_response(template, RequestContext(request, {
'config': json.dumps(config),
'map': map_obj
}))
示例3: ncWms_detail
# 需要导入模块: from geonode.utils import GXPMap [as 别名]
# 或者: from geonode.utils.GXPMap import viewer_json [as 别名]
def ncWms_detail(request, layerpart1, layerpart2,
template='layers/ncWMS_layer_details.html'):
"""Handle Layer Details and Time Series Playback"""
layer = layerpart1+ '/' + layerpart2
wms1 = request.session['wms']
w_url = request.session['url']
wms_times = wms1[layer].timepositions
times = [time.strip() for time in wms_times]
wms_name = wms1.identification.title
#for downloading layer
download_links = ['full dataset', 'spatial subset', 'temporal subset', 'spatio-temporal subset' ]
links = opendap_links()
map_obj = GXPMap(projection="EPSG:900913")
DEFAULT_BASE_LAYERS = default_map_config()[1]
return render_to_response(template, RequestContext(request, {
"w_name": wms_name,
"w_url": w_url,
"layer": layer,
"w_times": json.dumps(times),
"links_" : download_links,
"links" : links,
"viewer": json.dumps(map_obj.viewer_json(* (DEFAULT_BASE_LAYERS + []))),
}))
示例4: get_layer_config
# 需要导入模块: from geonode.utils import GXPMap [as 别名]
# 或者: from geonode.utils.GXPMap import viewer_json [as 别名]
def get_layer_config(request, typename, permission='base.view_resourcebase',
msg=_PERMISSION_GENERIC, **kwargs):
try:
layer = _resolve_layer(request, typename, "base.view_resourcebase", _PERMISSION_VIEW )
except Exception as e:
pprint("Error on resolving layer")
pprint("Message: "+ e.message + "/nType: "+str(type(e)))
config = layer.attribute_config()
layer_bbox = layer.bbox
bbox = [float(coord) for coord in list(layer_bbox[0:4])]
srid = layer.srid
config["srs"] = srid if srid != "EPSG:4326" else "EPSG:900913"
config["bbox"] = llbbox_to_mercator([float(coord) for coord in bbox])
config["title"] = layer.title
config["queryable"] = True
if layer.storeType == "remoteStore":
service = layer.service
source_params = {
"ptype": service.ptype,
"remote": True,
"url": service.base_url,
"name": service.name}
maplayer = GXPLayer(
name=layer.typename,
ows_url=layer.ows_url,
layer_params=json.dumps(config),
source_params=json.dumps(source_params))
else:
maplayer = GXPLayer(
name=layer.typename,
ows_url=layer.ows_url,
layer_params=json.dumps(config))
map_obj = GXPMap(projection="EPSG:900913")
NON_WMS_BASE_LAYERS = [
la for la in default_map_config()[1] if la.ows_url is None]
metadata = layer.link_set.metadata().filter(
name__in=settings.DOWNLOAD_FORMATS_METADATA)
context_dict = {
"resource": layer,
"permissions_json": _perms_info_json(layer),
"metadata": metadata,
"is_layer": True,
"wps_enabled": settings.OGC_SERVER['default']['WPS_ENABLED'],
}
context_dict["viewer"] = json.dumps(
map_obj.viewer_json(request.user, * (NON_WMS_BASE_LAYERS + [maplayer])))
return context_dict
示例5: layer_detail
# 需要导入模块: from geonode.utils import GXPMap [as 别名]
# 或者: from geonode.utils.GXPMap import viewer_json [as 别名]
def layer_detail(request, layername, template='layers/layer_detail.html'):
layer = _resolve_layer(request, layername, 'base.view_resourcebase', _PERMISSION_MSG_VIEW)
layer_bbox = layer.bbox
# assert False, str(layer_bbox)
bbox = list(layer_bbox[0:4])
config = layer.attribute_config()
#Add required parameters for GXP lazy-loading
config["srs"] = layer.srid
config["title"] = layer.title
config["bbox"] = [float(coord) for coord in bbox] \
if layer.srid == "EPSG:4326" else llbbox_to_mercator([float(coord) for coord in bbox])
if layer.storeType == "remoteStore":
service = layer.service
source_params = {"ptype":service.ptype, "remote": True, "url": service.base_url, "name": service.name}
maplayer = GXPLayer(name = layer.typename, ows_url = layer.ows_url, layer_params=json.dumps( config),
source_params=json.dumps(source_params))
else:
maplayer = GXPLayer(name = layer.typename, ows_url = layer.ows_url, layer_params=json.dumps( config))
# Update count for popularity ranking.
Layer.objects.filter(id=layer.id).update(popular_count=layer.popular_count +1)
# center/zoom don't matter; the viewer will center on the layer bounds
map_obj = GXPMap(projection="EPSG:900913")
NON_WMS_BASE_LAYERS = [la for la in default_map_config()[1] if la.ows_url is None]
metadata = layer.link_set.metadata().filter(
name__in=settings.DOWNLOAD_FORMATS_METADATA)
context_dict = {
"resource": layer,
"permissions_json": _perms_info_json(layer),
"documents": get_related_documents(layer),
"metadata": metadata,
}
context_dict["viewer"] = json.dumps(map_obj.viewer_json(request.user, * (NON_WMS_BASE_LAYERS + [maplayer])))
context_dict["preview"] = getattr(settings, 'LAYER_PREVIEW_LIBRARY', 'leaflet')
if layer.storeType=='dataStore':
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_VECTOR)
else:
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_RASTER)
context_dict["links"] = links
return render_to_response(template, RequestContext(request, context_dict))
示例6: layer_detail
# 需要导入模块: from geonode.utils import GXPMap [as 别名]
# 或者: from geonode.utils.GXPMap import viewer_json [as 别名]
def layer_detail(request, layername, template='layers/layer_detail.html'):
layer = _resolve_layer(request, layername, 'layers.view_layer', _PERMISSION_MSG_VIEW)
maplayer = GXPLayer(name = layer.typename, ows_url = settings.GEOSERVER_BASE_URL + "wms", layer_params=json.dumps( layer.attribute_config()))
layer.srid_url = "http://www.spatialreference.org/ref/" + layer.srid.replace(':','/').lower() + "/"
#layer.popular_count += 1
#layer.save()
# center/zoom don't matter; the viewer will center on the layer bounds
map_obj = GXPMap(projection="EPSG:900913")
DEFAULT_BASE_LAYERS = default_map_config()[1]
return render_to_response(template, RequestContext(request, {
"layer": layer,
"viewer": json.dumps(map_obj.viewer_json(* (DEFAULT_BASE_LAYERS + [maplayer]))),
"permissions_json": _perms_info_json(layer, LAYER_LEV_NAMES),
}))
示例7: layer_detail
# 需要导入模块: from geonode.utils import GXPMap [as 别名]
# 或者: from geonode.utils.GXPMap import viewer_json [as 别名]
def layer_detail(request, layername, template='layers/layer_detail.html'):
layer = _resolve_layer(request, layername, 'layers.view_layer', _PERMISSION_MSG_VIEW)
config = layer.attribute_config()
if layer.storeType == "remoteStore" and "geonode.contrib.services" in settings.INSTALLED_APPS:
from geonode.contrib.services.models import Service
service = Service.objects.filter(layers__id=layer.id)[0]
source_params = {"ptype":service.ptype, "remote": True, "url": service.base_url, "name": service.name}
maplayer = GXPLayer(name = layer.typename, ows_url = layer.ows_url, layer_params=json.dumps( config), source_params=json.dumps(source_params))
else:
maplayer = GXPLayer(name = layer.typename, ows_url = layer.ows_url, layer_params=json.dumps( config))
# Update count for popularity ranking.
Layer.objects.filter(id=layer.id).update(popular_count=layer.popular_count +1)
# center/zoom don't matter; the viewer will center on the layer bounds
map_obj = GXPMap(projection="EPSG:900913")
NON_WMS_BASE_LAYERS = [la for la in default_map_config()[1] if la.ows_url is None]
metadata = layer.link_set.metadata().filter(
name__in=settings.DOWNLOAD_FORMATS_METADATA)
context_dict = {
"layer": layer,
"permissions_json": _perms_info_json(layer, LAYER_LEV_NAMES),
"documents": get_related_documents(layer),
"metadata": metadata,
}
context_dict["viewer"] = json.dumps(map_obj.viewer_json(* (NON_WMS_BASE_LAYERS + [maplayer])))
if layer.storeType=='dataStore':
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_VECTOR)
else:
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_RASTER)
context_dict["links"] = links
return render_to_response(template, RequestContext(request, context_dict))
示例8: layer_search_page
# 需要导入模块: from geonode.utils import GXPMap [as 别名]
# 或者: from geonode.utils.GXPMap import viewer_json [as 别名]
def layer_search_page(request, template='layers/layer_search.html'):
DEFAULT_BASE_LAYERS = default_map_config()[1]
# for non-ajax requests, render a generic search page
if request.method == 'GET':
params = request.GET
elif request.method == 'POST':
params = request.POST
else:
return HttpResponse(status=405)
map_obj = GXPMap(projection="EPSG:900913", zoom = 1, center_x = 0, center_y = 0)
return render_to_response(template, RequestContext(request, {
'init_search': json.dumps(params or {}),
'viewer_config': json.dumps(map_obj.viewer_json(*DEFAULT_BASE_LAYERS)),
"site" : settings.SITEURL,
"search_api": reverse("layer_search_api"),
"search_action": reverse("layer_search_page"),
"search_type": "layer",
}))
示例9: layer_detail
# 需要导入模块: from geonode.utils import GXPMap [as 别名]
# 或者: from geonode.utils.GXPMap import viewer_json [as 别名]
def layer_detail(request, layername, template='layers/layer_detail.html'):
layer = _resolve_layer(
request,
layername,
'base.view_resourcebase',
_PERMISSION_MSG_VIEW)
# assert False, str(layer_bbox)
config = layer.attribute_config()
#print layername
# Add required parameters for GXP lazy-loading
layer_bbox = layer.bbox
bbox = [float(coord) for coord in list(layer_bbox[0:4])]
srid = layer.srid
# Transform WGS84 to Mercator.
config["srs"] = srid if srid != "EPSG:4326" else "EPSG:900913"
config["bbox"] = llbbox_to_mercator([float(coord) for coord in bbox])
config["title"] = layer.title
config["queryable"] = True
if layer.storeType == "remoteStore":
service = layer.service
source_params = {
"ptype": service.ptype,
"remote": True,
"url": service.base_url,
"name": service.name}
maplayer = GXPLayer(
name=layer.typename,
ows_url=layer.ows_url,
layer_params=json.dumps(config),
source_params=json.dumps(source_params))
else:
maplayer = GXPLayer(
name=layer.typename,
ows_url=layer.ows_url,
layer_params=json.dumps(config))
# Update count for popularity ranking,
# but do not includes admins or resource owners
if request.user != layer.owner and not request.user.is_superuser:
Layer.objects.filter(
id=layer.id).update(popular_count=F('popular_count') + 1)
# center/zoom don't matter; the viewer will center on the layer bounds
map_obj = GXPMap(projection="EPSG:900913")
NON_WMS_BASE_LAYERS = [
la for la in default_map_config()[1] if la.ows_url is None]
metadata = layer.link_set.metadata().filter(
name__in=settings.DOWNLOAD_FORMATS_METADATA)
context_dict = {
"resource": layer,
"permissions_json": _perms_info_json(layer),
"documents": get_related_documents(layer),
"metadata": metadata,
"is_layer": True,
"wps_enabled": settings.OGC_SERVER['default']['WPS_ENABLED'],
}
context_dict["viewer"] = json.dumps(
map_obj.viewer_json(request.user, * (NON_WMS_BASE_LAYERS + [maplayer])))
context_dict["preview"] = getattr(
settings,
'LAYER_PREVIEW_LIBRARY',
'leaflet')
if request.user.has_perm('download_resourcebase', layer.get_self_resource()):
if layer.storeType == 'dataStore':
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_VECTOR)
else:
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_RASTER)
context_dict["links"] = links
if settings.SOCIAL_ORIGINS:
context_dict["social_links"] = build_social_links(request, layer)
if request.method == 'POST':
form = AnonDownloaderForm(request.POST)
out = {}
if form.is_valid():
out['success'] = True
pprint(form.cleaned_data)
anondownload = form.save()
anondownload.anon_layer = Layer.objects.get(typename = layername)
anondownload.save()
else:
errormsgs = []
for e in form.errors.values():
errormsgs.extend([escape(v) for v in e])
out['success'] = False
out['errors'] = form.errors
out['errormsgs'] = errormsgs
if out['success']:
status_code = 200
else:
#.........这里部分代码省略.........
示例10: layer_detail
# 需要导入模块: from geonode.utils import GXPMap [as 别名]
# 或者: from geonode.utils.GXPMap import viewer_json [as 别名]
#.........这里部分代码省略.........
try:
cat = gs_catalog
cat._cache.clear()
store = cat.get_store(layer.name)
coverages = cat.mosaic_coverages(store)
filter = None
try:
if request.GET["filter"]:
filter = request.GET["filter"]
except:
pass
offset = 10 * (request.page - 1)
granules = cat.mosaic_granules(coverages['coverages']['coverage'][0]['name'], store, limit=10,
offset=offset, filter=filter)
all_granules = cat.mosaic_granules(coverages['coverages']['coverage'][0]['name'], store, filter=filter)
except:
granules = {"features": []}
all_granules = {"features": []}
approve_form = ResourceApproveForm()
deny_form = ResourceDenyForm()
metadata_field_list = ['owner', 'title', 'date', 'date_type', 'edition', 'abstract', 'purpose',
'maintenance_frequency', 'regions', 'restriction_code_type', 'constraints_other', 'license',
'language', 'spatial_representation_type', 'resource_type', 'temporal_extent_start',
'temporal_extent_end', 'supplemental_information', 'data_quality_statement', 'thumbnail_url',
'elevation_regex', 'time_regex', 'keywords',
'category']
if request.user == layer.owner or request.user in layer.group.get_managers():
if not layer.attributes:
messages.info(request, 'Please update layer metadata, missing some informations')
elif not layer.metadata_author:
messages.info(request, 'Please update layer metadata, missing some informations')
else:
for field in metadata_field_list:
if not getattr(layer, layer._meta.get_field(field).name):
messages.info(request, 'Please update layer metadata, missing some informations')
break
# layer_name = layer.service_typename
# geoserver_user = OGC_SERVER['default']['USER']
# geoserver_password = OGC_SERVER['default']['PASSWORD']
# style_url = OGC_SERVER['default']['PUBLIC_LOCATION'] + "rest/layers/" + layer_name + ".json"
# response1 = requests.get(style_url, auth=HTTPBasicAuth(geoserver_user, geoserver_password))
# sld_file_name_url = response1.json()['layer']['defaultStyle']['href']
# response2 = requests.get(sld_file_name_url, auth=HTTPBasicAuth(geoserver_user, geoserver_password))
# file_name = response2.json()['style']['filename']
# sld_file_url = OGC_SERVER['default']['PUBLIC_LOCATION'] + "rest/styles/" + file_name
# sld_content = requests.get(sld_file_url, auth=HTTPBasicAuth(geoserver_user, geoserver_password)).content
#
# xlink = ''
# try:
# dict1 = xmltodict.parse(sld_content)
# dict2 = dict1['sld:StyledLayerDescriptor']['sld:NamedLayer']['sld:UserStyle']['sld:FeatureTypeStyle']\
# ['sld:Rule']['sld:PointSymbolizer']
# xlink = dict2['sld:Graphic']['sld:ExternalGraphic']['sld:OnlineResource']['@xlink:href']
# except:
# pass
xlink = style_chart_legend_color(layer)
context_dict = {
"resource": layer,
'perms_list': get_perms(request.user, layer.get_self_resource()),
"permissions_json": _perms_info_json(layer),
"documents": get_related_documents(layer),
"metadata": metadata,
"is_layer": True,
"wps_enabled": settings.OGC_SERVER['default']['WPS_ENABLED'],
"granules": granules,
"all_granules": all_granules,
"filter": filter,
"user_role": user_role,
"approve_form": approve_form,
"deny_form": deny_form,
"denied_comments": LayerAuditActivity.objects.filter(layer_submission_activity__layer=layer),
"status": layer.status,
"chart_link" : xlink
}
context_dict["viewer"] = json.dumps(
map_obj.viewer_json(request.user, * (NON_WMS_BASE_LAYERS + [maplayer])))
context_dict["preview"] = getattr(
settings,
'LAYER_PREVIEW_LIBRARY',
'leaflet')
if request.user.has_perm('download_resourcebase', layer.get_self_resource()):
if layer.storeType == 'dataStore':
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_VECTOR)
else:
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_RASTER)
context_dict["links"] = links
if settings.SOCIAL_ORIGINS:
context_dict["social_links"] = build_social_links(request, layer)
return render_to_response(template, RequestContext(request, context_dict))
示例11: layer_metadata
# 需要导入模块: from geonode.utils import GXPMap [as 别名]
# 或者: from geonode.utils.GXPMap import viewer_json [as 别名]
#.........这里部分代码省略.........
) if 'tkeywords-tkeywords' in key.lower() and 'autocomplete' not in key.lower()]
tkeywords_ids.extend(map(int, cleaned_data[0]))
except BaseException:
pass
if hasattr(settings, 'THESAURI'):
for el in settings.THESAURI:
thesaurus_name = el['name']
try:
t = Thesaurus.objects.get(
identifier=thesaurus_name)
for tk in t.thesaurus.all():
tkl = tk.keyword.filter(pk__in=tkeywords_ids)
if len(tkl) > 0:
tkeywords_to_add.append(tkl[0].keyword_id)
except BaseException:
tb = traceback.format_exc()
logger.error(tb)
layer.tkeywords.add(*tkeywords_to_add)
except BaseException:
tb = traceback.format_exc()
logger.error(tb)
return HttpResponse(json.dumps({'message': message}))
if settings.ADMIN_MODERATE_UPLOADS:
if not request.user.is_superuser:
layer_form.fields['is_published'].widget.attrs.update({'disabled': 'true'})
if not request.user.is_superuser and not request.user.is_staff:
can_change_metadata = request.user.has_perm(
'change_resourcebase_metadata',
layer.get_self_resource())
try:
is_manager = request.user.groupmember_set.all().filter(role='manager').exists()
except:
is_manager = False
if not is_manager or not can_change_metadata:
layer_form.fields['is_approved'].widget.attrs.update({'disabled': 'true'})
if poc is not None:
layer_form.fields['poc'].initial = poc.id
poc_form = ProfileForm(prefix="poc")
poc_form.hidden = True
else:
poc_form = ProfileForm(prefix="poc")
poc_form.hidden = False
if metadata_author is not None:
layer_form.fields['metadata_author'].initial = metadata_author.id
author_form = ProfileForm(prefix="author")
author_form.hidden = True
else:
author_form = ProfileForm(prefix="author")
author_form.hidden = False
if 'access_token' in request.session:
access_token = request.session['access_token']
else:
u = uuid.uuid1()
access_token = u.hex
viewer = json.dumps(map_obj.viewer_json(
request.user, access_token, * (NON_WMS_BASE_LAYERS + [maplayer])))
metadataxsl = False
if "geonode.contrib.metadataxsl" in settings.INSTALLED_APPS:
metadataxsl = True
metadata_author_groups = []
if request.user.is_superuser or request.user.is_staff:
metadata_author_groups = GroupProfile.objects.all()
else:
all_metadata_author_groups = chain(
request.user.group_list_all().distinct(),
GroupProfile.objects.exclude(access="private").exclude(access="public-invite"))
[metadata_author_groups.append(item) for item in all_metadata_author_groups
if item not in metadata_author_groups]
return render_to_response(template, RequestContext(request, {
"resource": layer,
"layer": layer,
"layer_form": layer_form,
"poc_form": poc_form,
"author_form": author_form,
"attribute_form": attribute_form,
"category_form": category_form,
"tkeywords_form": tkeywords_form,
"viewer": viewer,
"preview": getattr(settings, 'LAYER_PREVIEW_LIBRARY', 'leaflet'),
"crs": getattr(settings, 'DEFAULT_MAP_CRS', 'EPSG:900913'),
"metadataxsl": metadataxsl,
"freetext_readonly": getattr(
settings,
'FREETEXT_KEYWORDS_READONLY',
False),
"metadata_author_groups": metadata_author_groups,
"GROUP_MANDATORY_RESOURCES":
getattr(settings, 'GROUP_MANDATORY_RESOURCES', False),
}))
示例12: pdf_metadata_layer
# 需要导入模块: from geonode.utils import GXPMap [as 别名]
# 或者: from geonode.utils.GXPMap import viewer_json [as 别名]
def pdf_metadata_layer(request, layername, template='layers/pdf_metadata_layer.html'):
layer = _resolve_layer(
request,
layername,
'base.view_resourcebase',
_PERMISSION_MSG_VIEW)
layer_attribute_set = inlineformset_factory(
Layer,
Attribute,
extra=0,
form=LayerAttributeForm,
)
topic_category = layer.category
# assert False, str(layer_bbox)
config = layer.attribute_config()
# Add required parameters for GXP lazy-loading
layer_bbox = layer.bbox
bbox = [float(coord) for coord in list(layer_bbox[0:4])]
srid = layer.srid
# Transform WGS84 to Mercator.
config["srs"] = srid if srid != "EPSG:4326" else "EPSG:900913"
config["bbox"] = llbbox_to_mercator([float(coord) for coord in bbox])
config["title"] = layer.title
if layer.storeType == "remoteStore":
service = layer.service
source_params = {
"ptype": service.ptype,
"remote": True,
"url": service.base_url,
"name": service.name}
maplayer = GXPLayer(
name=layer.typename,
ows_url=layer.ows_url,
layer_params=json.dumps(config),
source_params=json.dumps(source_params))
else:
maplayer = GXPLayer(
name=layer.typename,
ows_url=layer.ows_url,
layer_params=json.dumps(config))
# center/zoom don't matter; the viewer will center on the layer bounds
map_obj = GXPMap(projection="EPSG:900913")
NON_WMS_BASE_LAYERS = [
la for la in default_map_config()[1] if la.ows_url is None]
metadata = layer.link_set.metadata().filter(
name__in=settings.DOWNLOAD_FORMATS_METADATA)
context_dict = {
"resource": layer,
"permissions_json": _perms_info_json(layer),
"documents": get_related_documents(layer),
"metadata": metadata,
"is_layer": True,
}
context_dict["viewer"] = json.dumps(
map_obj.viewer_json(request.user, * (NON_WMS_BASE_LAYERS + [maplayer])))
context_dict["preview"] = getattr(
settings,
'LAYER_PREVIEW_LIBRARY',
'leaflet')
if request.user.has_perm('download_resourcebase', layer.get_self_resource()):
if layer.storeType == 'dataStore':
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_VECTOR)
else:
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_RASTER)
context_dict["links"] = links
html = render_to_string('layers/pdf_metadata_layer.html', {
'pagesize': 'A4',
'resource': layer,
}, context_instance=RequestContext(request))
return generar_pdf(html)
示例13: layer_detail
# 需要导入模块: from geonode.utils import GXPMap [as 别名]
# 或者: from geonode.utils.GXPMap import viewer_json [as 别名]
#.........这里部分代码省略.........
if layer.storeType == "remoteStore":
service = layer.service
source_params = {
"ptype": service.ptype,
"remote": True,
"url": service.base_url,
"name": service.name}
maplayer = GXPLayer(
name=layer.typename,
ows_url=layer.ows_url,
layer_params=json.dumps(config),
source_params=json.dumps(source_params))
else:
maplayer = GXPLayer(
name=layer.typename,
ows_url=layer.ows_url,
layer_params=json.dumps(config))
# Update count for popularity ranking,
# but do not includes admins or resource owners
if request.user != layer.owner and not request.user.is_superuser:
Layer.objects.filter(
id=layer.id).update(popular_count=F('popular_count') + 1)
# center/zoom don't matter; the viewer will center on the layer bounds
map_obj = GXPMap(projection=getattr(settings, 'DEFAULT_MAP_CRS', 'EPSG:900913'))
NON_WMS_BASE_LAYERS = [
la for la in default_map_config()[1] if la.ows_url is None]
metadata = layer.link_set.metadata().filter(
name__in=settings.DOWNLOAD_FORMATS_METADATA)
granules = None
all_granules = None
filter = None
if layer.is_mosaic:
try:
cat = gs_catalog
cat._cache.clear()
store = cat.get_store(layer.name)
coverages = cat.mosaic_coverages(store)
filter = None
try:
if request.GET["filter"]:
filter = request.GET["filter"]
except:
pass
offset = 10 * (request.page - 1)
granules = cat.mosaic_granules(coverages['coverages']['coverage'][0]['name'], store, limit=10,
offset=offset, filter=filter)
all_granules = cat.mosaic_granules(coverages['coverages']['coverage'][0]['name'], store, filter=filter)
except:
granules = {"features": []}
all_granules = {"features": []}
approve_subjects_file = open("geonode/approve_comment_subjects.txt", "r")
approve_comment_subjects = [line for line in approve_subjects_file ]
deney_subjects_file = open("geonode/deny_comment_subject.txt", "r")
deney_comment_subjects = [line for line in deney_subjects_file ]
context_dict = {
"resource": layer,
'perms_list': get_perms(request.user, layer.get_self_resource()),
"permissions_json": _perms_info_json(layer),
"documents": get_related_documents(layer),
"metadata": metadata,
"is_layer": True,
"wps_enabled": settings.OGC_SERVER['default']['WPS_ENABLED'],
"granules": granules,
"all_granules": all_granules,
"filter": filter,
"user_role": user_role,
"deney_comment_subjects":deney_comment_subjects,
"approve_comment_subjects": approve_comment_subjects,
"denied_comments": LayerAuditActivity.objects.filter(layer_submission_activity__layer=layer),
"status": layer.status
}
context_dict["viewer"] = json.dumps(
map_obj.viewer_json(request.user, * (NON_WMS_BASE_LAYERS + [maplayer])))
context_dict["preview"] = getattr(
settings,
'LAYER_PREVIEW_LIBRARY',
'leaflet')
if request.user.has_perm('download_resourcebase', layer.get_self_resource()):
if layer.storeType == 'dataStore':
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_VECTOR)
else:
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_RASTER)
context_dict["links"] = links
if settings.SOCIAL_ORIGINS:
context_dict["social_links"] = build_social_links(request, layer)
return render_to_response(template, RequestContext(request, context_dict))
示例14: layer_detail
# 需要导入模块: from geonode.utils import GXPMap [as 别名]
# 或者: from geonode.utils.GXPMap import viewer_json [as 别名]
#.........这里部分代码省略.........
filter=filter)
all_granules = cat.mosaic_granules(
coverages['coverages']['coverage'][0]['name'], store, filter=filter)
except BaseException:
granules = {"features": []}
all_granules = {"features": []}
group = None
if layer.group:
try:
group = GroupProfile.objects.get(slug=layer.group.name)
except GroupProfile.DoesNotExist:
group = None
context_dict = {
'resource': layer,
'group': group,
'perms_list': get_perms(request.user, layer.get_self_resource()),
"permissions_json": _perms_info_json(layer),
"documents": get_related_documents(layer),
"metadata": metadata,
"is_layer": True,
"wps_enabled": settings.OGC_SERVER['default']['WPS_ENABLED'],
"granules": granules,
"all_granules": all_granules,
"filter": filter,
}
if 'access_token' in request.session:
access_token = request.session['access_token']
else:
u = uuid.uuid1()
access_token = u.hex
context_dict["viewer"] = json.dumps(map_obj.viewer_json(
request.user, access_token, * (NON_WMS_BASE_LAYERS + [maplayer])))
context_dict["preview"] = getattr(
settings,
'LAYER_PREVIEW_LIBRARY',
'leaflet')
context_dict["crs"] = getattr(
settings,
'DEFAULT_MAP_CRS',
'EPSG:900913')
# provide bbox in EPSG:4326 for leaflet
if context_dict["preview"] == 'leaflet':
srid, wkt = layer.geographic_bounding_box.split(';')
srid = re.findall(r'\d+', srid)
geom = GEOSGeometry(wkt, srid=int(srid[0]))
geom.transform(4326)
context_dict["layer_bbox"] = ','.join([str(c) for c in geom.extent])
if layer.storeType == 'dataStore':
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_VECTOR)
else:
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_RASTER)
links_view = [item for idx, item in enumerate(links) if
item.url and 'wms' in item.url or 'gwc' in item.url]
links_download = [item for idx, item in enumerate(
links) if item.url and 'wms' not in item.url and 'gwc' not in item.url]
for item in links_view:
if item.url and access_token and 'access_token' not in item.url:
params = {'access_token': access_token}
item.url = Request('GET', item.url, params=params).prepare().url
示例15: layer_detail
# 需要导入模块: from geonode.utils import GXPMap [as 别名]
# 或者: from geonode.utils.GXPMap import viewer_json [as 别名]
#.........这里部分代码省略.........
"name": service.name}
maplayer = GXPLayer(
name=layer.typename,
ows_url=layer.ows_url,
layer_params=json.dumps(config),
source_params=json.dumps(source_params))
else:
maplayer = GXPLayer(
name=layer.typename,
ows_url=layer.ows_url,
layer_params=json.dumps(config))
# Update count for popularity ranking,
# but do not includes admins or resource owners
if request.user != layer.owner and not request.user.is_superuser:
Layer.objects.filter(
id=layer.id).update(popular_count=F('popular_count') + 1)
# center/zoom don't matter; the viewer will center on the layer bounds
map_obj = GXPMap(projection="EPSG:900913")
NON_WMS_BASE_LAYERS = [
la for la in default_map_config()[1] if la.ows_url is None]
metadata = layer.link_set.metadata().filter(
name__in=settings.DOWNLOAD_FORMATS_METADATA)
granules = None
all_granules = None
granule_filter = None
if layer.is_mosaic:
try:
cat = gs_catalog
cat._cache.clear()
store = cat.get_store(layer.name)
coverages = cat.mosaic_coverages(store)
granule_filter = None
try:
if request.GET["filter"]:
granule_filter = request.GET["filter"]
except:
pass
schema = cat.mosaic_coverage_schema(coverages['coverages']['coverage'][0]['name'], store)
offset = 10 * (request.page - 1)
granules = cat.mosaic_granules(coverages['coverages']['coverage'][0]['name'], store, limit=10, offset=offset, filter=granule_filter)
all_granules = cat.mosaic_granules(coverages['coverages']['coverage'][0]['name'], store, filter=granule_filter)
except:
granules = {"features": []}
all_granules = {"features": []}
import traceback
traceback.print_exc()
#print (' +++++++++++++++++++++++++++++++++++++++++ \n' + str(granules) + '\n +++++++++++++++++++++++++++++++++++++++++ ')
context_dict = {
"resource": layer,
'perms_list': get_perms(request.user, layer.get_self_resource()),
"permissions_json": _perms_info_json(layer),
"documents": get_related_documents(layer),
"metadata": metadata,
"is_layer": True,
"wps_enabled": settings.OGC_SERVER['default']['WPS_ENABLED'],
"is_owner": request.user == layer.owner,
"is_superuser": request.user.is_superuser,
"granules": granules,
"all_granules": all_granules,
"filter": granule_filter,
}
context_dict["viewer"] = json.dumps(
map_obj.viewer_json(request.user, * (NON_WMS_BASE_LAYERS + [maplayer])))
context_dict["preview"] = getattr(
settings,
'LAYER_PREVIEW_LIBRARY',
'leaflet')
if request.user.has_perm('download_resourcebase', layer.get_self_resource()):
if layer.storeType == 'dataStore':
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_VECTOR)
else:
links = layer.link_set.download().filter(
name__in=settings.DOWNLOAD_FORMATS_RASTER)
context_dict["links"] = links
if settings.SOCIAL_ORIGINS:
context_dict["social_links"] = build_social_links(request, layer)
#if request.user.is_superuser:
#logger.debug("Dispatching to admin page")
#else:
#logger.debug("Dispatching to user page")
#template = 'layers/layer_detail_admin.html' if request.user.is_superuser else 'layers/layer_detail_user.html'
return render_to_response(template, RequestContext(request, context_dict))