Skip to content

Commit

Permalink
Merge pull request #1030 from okauppinen/mapfull-analysis
Browse files Browse the repository at this point in the history
Mapfull analysis json formatter
  • Loading branch information
ZakarFin authored Nov 20, 2023
2 parents f1d154e + 7a975a5 commit dd18c8e
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 99 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -354,8 +354,8 @@ public static JSONArray getFullLayerConfig(final JSONArray layersArray,

// construct layers JSON
final JSONArray prefetch = getLayersArray(struct);
appendMyPlacesLayers(prefetch, publishedMyPlaces, user, viewID, bundleIds, mapSRS, useDirectURLForMyplaces, modifyURLs, plugins);
appendAnalysisLayers(prefetch, publishedAnalysis, user, viewID, lang, bundleIds, useDirectURLForMyplaces, modifyURLs);
appendMyPlacesLayers(prefetch, publishedMyPlaces, user, viewID, lang, bundleIds, mapSRS);
appendAnalysisLayers(prefetch, publishedAnalysis, user, viewID, lang, bundleIds, mapSRS);
appendUserLayers(prefetch, publishedUserLayers, user, viewID, lang, bundleIds, mapSRS);
return prefetch;
}
Expand All @@ -366,20 +366,14 @@ private static void appendAnalysisLayers(final JSONArray layerList,
final long viewID,
final String lang,
final Set<String> bundleIds,
final boolean useDirectURL,
final boolean modifyURLs) {
final String mapSrs) {
if (publishedAnalysis.isEmpty()) {
return;
}
final boolean analyseBundlePresent = bundleIds.contains(BUNDLE_ANALYSE);
final Set<String> permissions = permissionsService.getResourcesWithGrantedPermissions(
AnalysisLayer.TYPE, user, PermissionType.VIEW_PUBLISHED.name());
LOGGER.debug("Analysis layer permissions for published view", permissions);
OskariLayer baseLayer = AnalysisDataService.getBaseLayer();
JSONObject baseOptions = new JSONObject();
if (baseLayer != null) {
baseOptions = baseLayer.getOptions();
}
for (Long id : publishedAnalysis) {
final Analysis analysis = analysisService.getAnalysisById(id);
if(analysis == null){
Expand All @@ -397,8 +391,7 @@ private static void appendAnalysisLayers(final JSONArray layerList,
viewID, "Analysis id:", id);
continue;
}
final JSONObject json = AnalysisHelper.getlayerJSON(analysis,baseOptions, lang,
useDirectURL, user.getUuid(), modifyURLs);
final JSONObject json = AnalysisDataService.parseAnalysis2JSON(analysis, mapSrs, lang);
if (json != null) {
layerList.put(json);
}
Expand All @@ -418,11 +411,9 @@ private static void appendMyPlacesLayers(final JSONArray layerList,
final List<Long> publishedMyPlaces,
final User user,
final long viewID,
final String lang,
final Set<String> bundleIds,
final String mapSrs,
final boolean useDirectURL,
final boolean modifyURLs,
final JSONArray plugins) {
final String mapSrs) {
if (publishedMyPlaces.isEmpty()) {
return;
}
Expand All @@ -445,7 +436,7 @@ private static void appendMyPlacesLayers(final JSONArray layerList,
continue;
}

JSONObject myPlaceLayer = MyPlacesService.parseLayerToJSON(mpLayer, mapSrs);
JSONObject myPlaceLayer = MyPlacesService.parseLayerToJSON(mpLayer, mapSrs, lang);
// Get as WFS layer
JSONHelper.putValue(myPlaceLayer, LayerJSONFormatter.KEY_TYPE, OskariLayer.TYPE_WFS);
layerList.put(myPlaceLayer);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,89 +76,6 @@ public static long getAnalysisIdFromLayerId(final String layerId) {
final String analysisId = layerIdSplitted[layerIdSplitted.length - 1];
return ConversionHelper.getLong(analysisId, -1);
}

/**
* Generate a layer object for frontend.
* @param al analyse object
* @return analysis layer data for front mapservice
* @throws org.json.JSONException
*/
@Deprecated
public static JSONObject getlayerJSON(final Analysis al, JSONObject baseOptions) {
return getlayerJSON(al, baseOptions, PropertyUtil.getDefaultLanguage(), false, null, false);
}
@Deprecated
public static JSONObject getlayerJSON(final Analysis al, final JSONObject baseOptions,
final String lang, final boolean useDirectURL,
final String uuid, final boolean modifyURLs) {
// TODO: make use of params, see MyPlacesServiceIbatisImpl.getCategoryAsWmsLayerJSON for example
// TODO: create layer JSON with LayerJSONFormatter
JSONObject json = new JSONObject();
// Add correct analyse layer_id to json
try {
final JSONObject analyse_js = JSONHelper.createJSONObject(al
.getAnalyse_json());
Long wpsid = al.getId();
String newid = "-1";
if (analyse_js.has(JSKEY_LAYERID)) {
if (analyse_js.getString(JSKEY_LAYERID).indexOf(LAYER_PREFIX) == 0)
// analyse in Analysislayer (prefix + base analysis wfs layer id
// +
// analysis_id)
{
newid = LAYER_PREFIX + ANALYSIS_BASELAYER_ID + "_"
+ String.valueOf(wpsid);
} else {
// analyse in wfs layer (prefix + wfs layer id +
// analysis_id)
newid = LAYER_PREFIX + analyse_js.getString(JSKEY_LAYERID)
+ "_" + String.valueOf(wpsid);
}

}

json.put(JSKEY_ID, newid);
json.put(JSKEY_TYPE, ANALYSIS_LAYERTYPE);

json.put(JSKEY_NAME, JSONHelper.getStringFromJSON(analyse_js,
JSKEY_NAME, "n/a"));

json.put(JSKEY_OPACITY, ConversionHelper.getInt(JSONHelper
.getStringFromJSON(analyse_js, JSKEY_OPACITY, "80"), 80));
json.put(JSKEY_MINSCALE, ConversionHelper.getDouble(JSONHelper
.getStringFromJSON(analyse_js, JSKEY_MINSCALE, "15000000"),
15000000));
json.put(JSKEY_MAXSCALE, ConversionHelper.getDouble(JSONHelper
.getStringFromJSON(analyse_js, JSKEY_MAXSCALE, "1"), 1));
json.put(JSKEY_ATTRIBUTES, getAttributes(al, analyse_js, lang));
json.put(JSKEY_WPSURL, ANALYSIS_RENDERING_URL);
json.put(JSKEY_WPSNAME, ANALYSIS_RENDERING_ELEMENT);
json.put(JSKEY_WPSLAYERID, wpsid);

WFSLayerOptions wfsOpts = al.getWFSLayerOptions();
wfsOpts.injectBaseLayerOptions(baseOptions);
json.put(JSKEY_OPTIONS, wfsOpts.getOptions());

if (analyse_js.has(JSKEY_BBOX)) {
JSONObject bbox = JSONHelper.getJSONObject(analyse_js, JSKEY_BBOX);
try {
String bottom = Double.toString(bbox.getDouble(JSKEY_BOTTOM));
String top = Double.toString(bbox.getDouble(JSKEY_TOP));
String left = Double.toString(bbox.getDouble(JSKEY_LEFT));
String right = Double.toString(bbox.getDouble(JSKEY_RIGHT));
String geom = "POLYGON (("+left+" "+bottom+", "+right+" "+bottom+", "+
right+" "+top+", "+left+" "+top+", "+left+" "+bottom+"))";
json.put(JSKEY_GEOM, geom);
} catch (Exception ex) {
log.debug("Unable to get analysis layer bbox", ex);
}
}
} catch (Exception ex) {
log.debug("Unable to get analysis layer json", ex);
}

return json;
}
@Deprecated
public static JSONObject getAnalysisPermissions(boolean hasPublish, boolean hasDownload) {

Expand Down

0 comments on commit dd18c8e

Please sign in to comment.