wri / gfw-mapbuilder

Template for the GFW Map Builder that is available through ArcGIS Online, as a stand-alone web application, & a library to build custom Forest Atlas web applications
https://my.gfw-mapbuilder.org/v1.latest/
MIT License
32 stars 10 forks source link

Metadata does not work for data layers on Portal if configured through configuration file #219

Closed richardbarad closed 5 years ago

richardbarad commented 5 years ago

General Ordering of Metadata

  1. API reference
  2. If it's an ArcGIS Online item, use the feature layer's metadata
  3. If that does not exist, then use ArcGIS Online iitem description
  4. If that does not exist, then use feature layer from ArcGIS Server
  5. If none of those exist, display the "no information available" message

Example 1

When you click on the "HCV 1/2/3 Probability (Proforest, 2017)" layer in the mappbuider application below the metadata returned is the metadata for the service. The second link shows the metadata which is returned. https://my.gfw-mapbuilder.org/v1.latest/?appid=f369d487979b42ff9afec4c25a2962ed https://tiles.arcgis.com/tiles/mKcWKyEU5Tl36xeT/arcgis/rest/services/HCV_Merged_TilePackage3/MapServer

In the previous version of mapbuilder the application returned the metadata for the tile layer, not the service as shown in the links below.

https://my.gfw-mapbuilder.org/v1.2.1/?appid=f369d487979b42ff9afec4c25a2962ed http://gfw.maps.arcgis.com/home/item.html?id=f49e1f72fc4044eab270120ecbe8f0f8

Example 2

The metadata is not working for services hosted on a GIS Portal if the layer is manually added to the configuration file. For example, if I click on the protected areas layer (layer 5) in the protected area group layer in the Georgia Forest Atlas I get a message saying no information available.

http://geo2.doesntexist.org/map?l=en

However, there is metadata specified in the layer metadata on the server as shown in the link below.

https://gis.mepa.gov.ge/server/rest/services/atlas/%E1%83%93%E1%83%90%E1%83%AA%E1%83%A3%E1%83%9A%E1%83%98_%E1%83%A2%E1%83%94%E1%83%A0%E1%83%98%E1%83%A2%E1%83%9D%E1%83%A0%E1%83%98%E1%83%94%E1%83%91%E1%83%98_protected_areas/MapServer/4

There are also errors in the console as shown in the attached screenshot.

error

SwampGuzzler commented 5 years ago

to test: https://beta.blueraster.io/mapbuilder/219-portal-metadata/external.html?l=en source code: https://github.com/wri/gfw-mapbuilder/tree/219-portal-metadata

SwampGuzzler commented 5 years ago

http://beta.blueraster.io/mapbuilder/219-metadata-updated/external.html

csphang commented 5 years ago

Metadata order: 1) API reference 2) If it's an ArcGIS Online item, use the feature layer's metadata 3) If that does not exist, then use ArcGIS Online iitem description 4) If layer is coming from ArcGIS Server, use the endpoint's summary/description info w/ layer index 5) If none of those exist, display the "no information available" message

SwampGuzzler commented 5 years ago

@SwampGuzzler --> A useful appConfig for different metadata sources is Richard's example that I pushed here

richardbarad commented 5 years ago

HI @SwampGuzzler and @csphang,

I update the mapbuilder application to include metadata from different sources in a layer group which is specified in the configuration file. When using the configuration file the metadata should come from the feature service layer unless the technical name is provided. I added a feature service from portal, a feature service from AGOL, and a layer in a web map service. We can use this map for future metadata testing: http://richard.teaches-yoga.com/map?l=fr. I have copied the json file below.

Also, I wanted to make sure task 260 gets addressed here as well since it was flagged by a user.

When you click on the information icon for HCV 1/2/3 Probability (Proforest, 2017) the metadata comes from the server instead of the ArcGIS Online item. Here is the link to the item on ArcGIS Online which has more detailed description.

http://gfw.maps.arcgis.com/home/item.html?id=f49e1f72fc4044eab270120ecbe8f0f8

Json file for testing:

{
    "webmap": "627f5acea77342048f96b470abbdfa4b",
    "title": "Mapbuilder Test App",
    "subtitle": "Metadata - Legend",
    "webmapMenuName": "Land Use",
    "logoUrl": "",
    "logoLinkUrl": "",
    "printServiceUrl": "https://gis.forest-atlas.org/server/rest/services/print/ExportWebMap/GPServer/Export%20Web%20Map",
    "narrative": "This map shows the land allocation in the Democratic Republic of Congo. It is created by the Ministry of Environment, Nature Conservancy and Sustainable Development (MECNDD) with the support of the World Resources Institute (WRI).",
    "includeSubscribeButton": false,
    "includeMyGFWLogin": false,
    "navLinksInNewTab": false,
    "hideFooter": false,
    "language": "en",
    "useAlternativeLanguage": true,
    "alternativeWebmap": "6c7f106a62e84874944241d5d26c3884",
    "alternativeLanguage": "fr",
    "alternativeLanguageTitle": "Application de test Mapbuilder",
    "alternativeLanguageSubtitle": "Métadonnées - Légende",
    "alternativeMapThemes": "",
    "alternativeNarrative": "Cette carte représante l'affectation des terres en République Démocratique du Congo. Elle est crée par le Ministère de l'Environnement, Conservation de la Nature et Déloppement Durable (MECNDD) avec l'appui de World Resources Institute (WRI)",
    "alternativeWebmapMenuName": "Land Use",
    "includeDocumentsTab": true,
    "includeMeasurementTab": true,
    "iso": "COD",
    "viirsFires": true,
    "modisFires": true,
    "intactForests": true,
    "aboveGroundBiomass": true,
    "landCover": true,
    "mangroves": true,
    "sadAlerts": false,
    "gladAlerts": true,
    "terraIAlerts": true,
    "sharinghost": "https://www.arcgis.com",
    "analyticsCode": "UA-62288390-18",
    "analysisModules": [{
        "analysisId": "TC_LOSS_GAIN",
        "label": {
            "en": "Total tree cover loss/ gain",
            "fr": "Total perte/ gain en couvert arboré",
            "es": "Pérdida/ Aumento de la cobertura arbórea",
            "pt": "Perda/ Ganho de cobertura arbórea",
            "id": "Total tree cover loss/ gain",
            "zh": "森林覆盖损失/ 森林覆盖增加",
            "ka": "ხის ვარჯის კარგვა/ ნამატი"
        },
        "title": {
            "en": "Forest Loss Analysis",
            "fr": "Forest Loss Analysis",
            "es": "Forest Loss Analysis",
            "pt": "Forest Loss Analysis",
            "id": "Forest Loss Analysis",
            "zh": "Forest Loss Analysis",
            "ka": "Forest Loss Analysis"
        },
        "description": {
            "en": "Select range and tree cover density then click the run analysis button to see results",
            "fr": "Select range and tree cover density then click the run analysis button to see results",
            "es": "Select range and tree cover density then click the run analysis button to see results",
            "pt": "Select range and tree cover density then click the run analysis button to see results",
            "id": "Select range and tree cover density then click the run analysis button to see results",
            "zh": "Select range and tree cover density then click the run analysis button to see results",
            "ka": "Select range and tree cover density then click the run analysis button to see results"
        },
        "chartType": "badge",
        "valueAttribute": "data.attributes.loss",
        "analysisUrl": "https://production-api.globalforestwatch.org/v1/umd-loss-gain",
        "uiParams": [{
            "inputType": "rangeSlider",
            "startParamName": "period",
            "combineParams": true,
            "valueSeparator": ",",
            "bounds": [2001,
            2017],
            "valueType": "date",
            "label": {
                "en": "Select range for analysis",
                "fr": "Select range for analysis",
                "es": "Select range for analysis",
                "pt": "Select range for analysis",
                "id": "Select range for analysis",
                "zh": "Select range for analysis",
                "ka": "Select range for analysis"
            }
        },
        {
            "name": "thresh",
            "inputType": "tcd",
            "label": {
                "en": "Select tree cover density: ",
                "fr": "Select tree cover density: ",
                "es": "Select tree cover density: ",
                "pt": "Select tree cover density: ",
                "id": "Select tree cover density: ",
                "zh": "Select tree cover density: ",
                "ka": "Select tree cover density: "
            }
        }]
    },
    {
        "analysisId": "TC_LOSS",
        "label": {
            "en": "Annual Tree cover loss",
            "fr": "Perte en couvert arboré",
            "es": "Pérdida de la cobertura arbórea",
            "pt": "Perda de cobertura arbórea",
            "id": "Tree cover loss",
            "zh": "森林覆盖损失",
            "ka": "ხის ვარჯის კარგვა"
        },
        "title": {
            "en": "Annual Tree Cover Loss",
            "fr": "Perte en couvert arboré",
            "es": "Pérdida de la cobertura arbórea",
            "pt": "Perda de cobertura arbórea",
            "id": "Tree cover loss",
            "zh": "森林覆盖损失",
            "ka": "ხის ვარჯის კარგვა"
        },
        "description": {
            "en": "Select range and tree cover density then click the run analysis button to see results",
            "fr": "Select range and tree cover density then click the run analysis button to see results",
            "es": "Select range and tree cover density then click the run analysis button to see results",
            "pt": "Select range and tree cover density then click the run analysis button to see results",
            "id": "Select range and tree cover density then click the run analysis button to see results",
            "zh": "Select range and tree cover density then click the run analysis button to see results",
            "ka": "Select range and tree cover density then click the run analysis button to see results"
        },
        "chartBounds": [2001,
        2017],
        "useGfwWidget": true,
        "widgetId": "070dd8b2-aa32-42db-ba50-064246013163",
        "uiParams": [{
            "inputType": "rangeSlider",
            "startParamName": "period",
            "combineParams": true,
            "valueSeparator": ",",
            "bounds": [2001,
            2017],
            "valueType": "date",
            "label": {
                "en": "Select range for analysis",
                "fr": "Select range for analysis",
                "es": "Select range for analysis",
                "pt": "Select range for analysis",
                "id": "Select range for analysis",
                "zh": "Select range for analysis",
                "ka": "Select range for analysis"
            }
        },
        {
            "name": "thresh",
            "inputType": "tcd",
            "label": {
                "en": "Select tree cover density: ",
                "fr": "Select tree cover density: ",
                "es": "Select tree cover density: ",
                "pt": "Select tree cover density: ",
                "id": "Select tree cover density: ",
                "zh": "Select tree cover density: ",
                "ka": "Select tree cover density: "
            }
        }]
    },
    {
        "analysisId": "IFL",
        "label": {
            "en": "Annual Tree Cover loss in intact forest landscape",
            "fr": "Paysage forestier intact",
            "es": "Paisajes Forestales Intactos",
            "pt": "Paisagens Florestais Intactas",
            "id": "Intact Forest Landscape",
            "zh": "原生森林景观",
            "ka": "ხელუხლებელი ტყის ლანდშაფტი"
        },
        "title": {
            "en": "Annual Tree Cover Loss in Intact Forest Landscape",
            "fr": "Paysage forestier intact",
            "es": "Paisajes Forestales Intactos",
            "pt": "Paisagens Florestais Intactas",
            "id": "Intact Forest Landscape",
            "zh": "原生森林景观",
            "ka": "ხელუხლებელი ტყის ლანდშაფტი"
        },
        "description": {
            "en": "Select range and tree cover density then click the run analysis button to see results. Results will not be available if the area you selected does not include an intact forest landscape.",
            "fr": "Select range and tree cover density then click the run analysis button to see results",
            "es": "Select range and tree cover density then click the run analysis button to see results",
            "pt": "Select range and tree cover density then click the run analysis button to see results",
            "id": "Select range and tree cover density then click the run analysis button to see results",
            "zh": "Select range and tree cover density then click the run analysis button to see results",
            "ka": "Select range and tree cover density then click the run analysis button to see results"
        },
        "useGfwWidget": true,
        "widgetId": "1c0b8986-82af-4b7a-ae75-3edba0f79e68",
        "params": [{
            "name": "layer",
            "value": "ifl2000"
        }],
        "uiParams": [{
            "inputType": "rangeSlider",
            "startParamName": "period",
            "combineParams": true,
            "valueSeparator": ",",
            "bounds": [2001,
            2017],
            "valueType": "date",
            "label": {
                "en": "Select range for analysis",
                "fr": "Select range for analysis",
                "es": "Select range for analysis",
                "pt": "Select range for analysis",
                "id": "Select range for analysis",
                "zh": "Select range for analysis",
                "ka": "Select range for analysis"
                    }
        },
        {
            "name": "thresh",
            "inputType": "tcd",
            "label": {
                "en": "Select tree cover density: ",
                "fr": "Select tree cover density: ",
                "es": "Select tree cover density: ",
                "pt": "Select tree cover density: ",
                "id": "Select tree cover density: ",
                "zh": "Select tree cover density: ",
                "ka": "Select tree cover density: "
            }
        }]
    },
    {
        "analysisId": "Loss_LandCover",
        "label": {
            "en": "Annual Tree Cover loss by land cover class",
            "fr": "Paysage forestier intact",
            "es": "Paisajes Forestales Intactos",
            "pt": "Paisagens Florestais Intactas",
            "id": "Intact Forest Landscape",
            "zh": "原生森林景观",
            "ka": "ხელუხლებელი ტყის ლანდშაფტი"
        },
        "title": {
            "en": "Annual Tree Cover Loss By Land Cover Class",
            "fr": "Paysage forestier intact",
            "es": "Paisajes Forestales Intactos",
            "pt": "Paisagens Florestais Intactas",
            "id": "Intact Forest Landscape",
            "zh": "原生森林景观",
            "ka": "ხელუხლებელი ტყის ლანდშაფტი"
        },
        "description": {
            "en": "Annual Tree cover loss by land cover analysis uses land cover from the year 2000 as an input. Land Cover data is provided by the ESA. Select range and tree cover density then click the run analysis button to see results",
            "fr": "Select range and tree cover density then click the run analysis button to see results",
            "es": "Select range and tree cover density then click the run analysis button to see results",
            "pt": "Select range and tree cover density then click the run analysis button to see results",
            "id": "Select range and tree cover density then click the run analysis button to see results",
            "zh": "Select range and tree cover density then click the run analysis button to see results",
            "ka": "Select range and tree cover density then click the run analysis button to see results"
        },
        "useGfwWidget": true,
        "widgetId": "7abb8bc5-5b41-41ab-921e-5754baab9cdb",
        "params": [{
            "name": "layer",
            "value": "gfw-landcover-2015"
        }],
        "uiParams": [{
            "inputType": "rangeSlider",
            "startParamName": "period",
            "combineParams": true,
            "valueSeparator": ",",
            "bounds": [2001,
            2017],
            "valueType": "date",
            "label": {
                "en": "Select range for analysis",
                "fr": "Select range for analysis",
                "es": "Select range for analysis",
                "pt": "Select range for analysis",
                "id": "Select range for analysis",
                "zh": "Select range for analysis",
                "ka": "Select range for analysis"
            }
        },
        {
            "name": "thresh",
            "inputType": "tcd",
            "label": {
                "en": "Select tree cover density: ",
                "fr": "Select tree cover density: ",
                "es": "Select tree cover density: ",
                "pt": "Select tree cover density: ",
                "id": "Select tree cover density: ",
                "zh": "Select tree cover density: ",
                "ka": "Select tree cover density: "
            }
        }]},{
            "analysisId": "BIO_LOSS",
            "label": {
                "en": "C02 Emissions from biomass loss",
                "fr": "Densité de la biomasse aérienne vivante",
                "es": "Densidad de la biomasa viva en la superficie del suelo",
                "pt": "Densidade de biomassa viva acima do solo",
                "id": "Aboveground Live Woody Biomass Density",
                "zh": "Aboveground Live Woody Biomass Density",
                "ka": "მიწისზედა ცოცხალი ტყის ბიომასის სიხშირე"
            },
            "title": {
                "en": "Carbon dioxide emissions from above ground live woody biomass loss",
                "fr": "Densité de la biomasse aérienne vivante",
                "es": "Densidad de la biomasa viva en la superficie del suelo",
                "pt": "Densidade de biomassa viva acima do solo",
                "id": "Aboveground Live Woody Biomass Density",
                "zh": "Aboveground Live Woody Biomass Density",
                "ka": "მიწისზედა ცოცხალი ტყის ბიომასის სიხშირე"
            },
            "useGfwWidget": true,
            "widgetId": "76961fd0-8781-44f7-a99a-78efece3204c",
            "uiParams": [{
                "inputType": "rangeSlider",
                "startParamName": "period",
                "combineParams": true,
                "valueSeparator": ",",
                "bounds": [2001,
                2014],
                "valueType": "date",
                "label": {
                    "en": "Select range for analysis",
                    "fr": "Select range for analysis",
                    "es": "Select range for analysis",
                    "pt": "Select range for analysis",
                    "id": "Select range for analysis",
                    "zh": "Select range for analysis",
                    "ka": "Select range for analysis"
                }
            },
            {
                "name": "thresh",
                "inputType": "tcd",
                "label": {
                    "en": "Select tree cover density: ",
                    "fr": "Select tree cover density: ",
                    "es": "Select tree cover density: ",
                    "pt": "Select tree cover density: ",
                    "id": "Select tree cover density: ",
                    "zh": "Select tree cover density: ",
                    "ka": "Select tree cover density: "
                }
            }]
        },
        {
            "analysisId": "GLAD_ALERTS",
            "label": {
                "en": "GLAD Alerts per month",
                "fr": "Alertes GLAD",
                "es": "Alertas GLAD",
                "pt": "Alertas GLAD",
                "id": "GLAD Alerts",
                "zh": "GLAD Alerts",
                "ka": "GLAD შეტყობინებები"
            },
            "title": {
                "en": "GLAD Alerts per month",
                "fr": "Alertes GLAD",
                "es": "Alertas GLAD",
                "pt": "Alertas GLAD",
                "id": "GLAD Alerts",
                "zh": "GLAD Alerts",
                "ka": "GLAD შეტყობინებები"
            },
            "useGfwWidget": true,
            "widgetId": "6a9adace-68ad-4238-a7fb-ed913fdd6b7a",
            "uiParams": [{
                "inputType": "datepicker",
                "startParamName": "period",
                "combineParams": true,
                "valueSeparator": ",",
                "multi": true,
                "defaultStartDate": "2017-01-01",
                "minDate": "2015-01-01",
                "label": {
                    "en": "Select range for analysis",
                    "fr": "Select range for analysis",
                    "es": "Select range for analysis",
                    "pt": "Select range for analysis",
                    "id": "Select range for analysis",
                    "zh": "Select range for analysis",
                    "ka": "Select range for analysis"
                }
            }]
        },
        {
            "analysisId": "TERRAI_ALERTS",
            "label": {
                "en": "Terra-I Alerts",
                "fr": "Alertes Terra-I",
                "es": "Alertas Terra-I",
                "pt": "Alertas Terra-I",
                "id": "Terra-I Alerts",
                "zh": "Terra-I Alerts",
                "ka": "Terra-I შეტყობინებები"
            },
            "chartType": "timeSeries",
            "analysisUrl": "https://production-api.globalforestwatch.org/v1/terrai-alerts",
            "uiParams": [{
                "inputType": "datepicker",
                "startParamName": "period",
                "combineParams": true,
                "valueSeparator": ",",
                "multi": true,
                "defaultStartDate": "2006-06-20",
                "minDate": "2004-01-01",
                "maxDate": "2016-07-12",
                "label": {
                    "en": "Select date(s) for analysis",
                    "fr": "Select date(s) for analysis",
                    "es": "Select date(s) for analysis",
                    "pt": "Select date(s) for analysis",
                    "id": "Select date(s) for analysis",
                    "zh": "Select date(s) for analysis",
                    "ka": "Select date(s) for analysis"
                }
            }],
            "params": [{
                "name": "aggregate_values",
                "value": "true"
            },
            {
                "name": "aggregate_by",
                "value": "day"
            }]
        },
        {
            "analysisId": "VIIRS_FIRES",
            "label": {
                "en": "VIIRS Active Fires",
                "fr": "Feux actifs VIIRS",
                "es": "Incendios activos VIIRS",
                "pt": "Incêndios ativos VIIRS",
                "id": "VIIRS Active fires",
                "zh": "活跃火点 VIIRS",
                "ka": "VIIRS აქტიური ხანძრები"
            },
            "chartType": "badge",
            "valueAttribute": "data.attributes.value",
            "badgeLabel": {
                "en": "Active Fires",
                "fr": "Feux actifs",
                "es": "Incendios activos",
                "pt": "Incêndios ativos",
                "id": "Active fires",
                "zh": "活跃火点",
                "ka": "აქტიური ხანძრები"
            },
            "color": "#5ea1ed",
            "analysisUrl": "https://production-api.globalforestwatch.org/v1/viirs-active-fires",
            "uiParams": [{
                "inputType": "datepicker",
                "startParamName": "period",
                "combineParams": true,
                "valueSeparator": ",",
                "multi": true,
                "minDate": "2004-01-01",
                "label": {
                    "en": "Select date(s) for analysis",
                    "fr": "Select date(s) for analysis",
                    "es": "Select date(s) for analysis",
                    "pt": "Select date(s) for analysis",
                    "id": "Select date(s) for analysis",
                    "zh": "Select date(s) for analysis",
                    "ka": "Select date(s) for analysis"
                }
            }]
        },
        {
            "analysisId": "LCC",
            "label": {
                "en": "Land Cover Composition",
                "fr": "Couverture des sols",
                "es": "Cobertura terrestre",
                "pt": "Cobertura do Solo",
                "id": "Land Cover",
                "zh": "土地覆盖",
                "ka": "მიწის საფარი"
            },
            "chartType": "lccPie",
            "classes": {
                "en": ["Land Cover",
                "Agriculture",
                "Forest",
                "Grassland",
                "Shrubland",
                "Sparse vegetation",
                "Wetland",
                "Settlement",
                "Bare",
                "Water",
                "Permanent snow and ice"],
                "fr": ["Irrigated croplands",
                "Rainfed croplands",
                "Cropland forest mosaic",
                "Broadleaved evergreen or semi-deciduous forest",
                "Broadleaved deciduous forest",
                "Needleleaved evergreen or deciduous forest",
                "Mixed broadleaved and needleleaved forest",
                "Mosaic of forest, shrubland and grassland",
                "Shrubland",
                "Grassland",
                "Sparse vegetation",
                "Flooded broadleaved forest",
                "Flooded vegetation",
                "Artificial areas",
                "Bare areas",
                "Permanent snow and ice"],
                "es": ["Irrigated croplands",
                "Rainfed croplands",
                "Cropland forest mosaic",
                "Broadleaved evergreen or semi-deciduous forest",
                "Broadleaved deciduous forest",
                "Needleleaved evergreen or deciduous forest",
                "Mixed broadleaved and needleleaved forest",
                "Mosaic of forest, shrubland and grassland",
                "Shrubland",
                "Grassland",
                "Sparse vegetation",
                "Flooded broadleaved forest",
                "Flooded vegetation",
                "Artificial areas",
                "Bare areas",
                "Permanent snow and ice"],
                "pt": ["Culturas Irrigadas",
                "Rainfed croplands",
                "Mosaico de areas florestais e de cultivo",
                "Floresta verde ou semi-decídua",
                "Floresta decídua de folha larga",
                "Floresta verde de coníferas ou Floresta decídua",
                "Misto de floresta de conifera e de folha larga",
                "Mosaic of forest, shrubland and grassland ",
                "Shrubland ",
                "Grassland ",
                "Sparse vegetation ",
                "Flooded broadleaved forest ",
                "Flooded vegetation ",
                "Artificial areas ",
                "Bare areas ",
                "Permanent snow and ice "],
                "id": ["Irrigated croplands",
                "Rainfed croplands",
                "Cropland forest mosaic",
                "Broadleaved evergreen or semi-deciduous forest",
                "Broadleaved deciduous forest",
                "Needleleaved evergreen or deciduous forest",
                "Mixed broadleaved and needleleaved forest",
                "Mosaic of forest, shrubland and grassland",
                "Shrubland",
                "Grassland",
                "Sparse vegetation",
                "Flooded broadleaved forest",
                "Flooded vegetation",
                "Artificial areas",
                "Bare areas",
                "Permanent snow and ice"],
                "zh": ["Irrigated croplands",
                "Rainfed croplands",
                "Cropland forest mosaic",
                "Broadleaved evergreen or semi-deciduous forest",
                "Broadleaved deciduous forest",
                "Needleleaved evergreen or deciduous forest",
                "Mixed broadleaved and needleleaved forest",
                "Mosaic of forest, shrubland and grassland",
                "Shrubland",
                "Grassland",
                "Sparse vegetation",
                "Flooded broadleaved forest",
                "Flooded vegetation",
                "Artificial areas",
                "Bare areas",
                "Permanent snow and ice"],
                "ka": ["მორწყვადი ს/ს კულტურები",
                "წვიმით მორწყვადი კულტურები",
                "ს/ს კულტურების და ტყის მოზაიკა",
                "ფართოფოთლოვანი მარადმწვანე ან ნახევრად-ფოთოლმცვენი ტყე",
                "ფართოფოთლოვანი ფოთოლმცვენი ტყე",
                "წიწვოვანი მარადმწვანე ან ფოთოლმცვენი ტყე",
                "შერეული ფართოფოთლოვანი და წიწვოვანი ტყე",
                "ტყის, ბუჩქნარის და მინდორის მოზაიკა",
                "ბუჩქნარი",
                "მინდორი",
                "მეჩხერი მცენარეულობა",
                "დატბორილი ფართოფოთლოვანი ტყე",
                "დატბორილი მცენარეულობა",
                "სახეცვლილი (ხელოვნური) ადგილები",
                "მოშიშვლებული ადგილები",
                "მუდმივი თოვლი და ყინული"]
            },
            "colors": ["#D2A965",
            "#157764",
            "#CCDB98",
            "#596B2C",
            "#D5C998",
            "#2789D4",
            "#E9462B",
            "#F6F0EA",
            "#A3DCFF",
            "#FFFFFF"],
            "analysisUrl": "https://production-api.globalforestwatch.org/v1/loss-by-landcover",
            "uiParams": "none",
            "params": [{
                "name": "layer",
                "value": "gfw-landcover-2015"
            }]
        }],
        "layerPanel": {
            "GROUP_WEBMAP": {
                "order": 2,
                "label": {

                },
                "layers": []
            },
            "GROUP_LCD": {
                "order": 1,
                "label": {
                    "en": "Land Cover Dynamics",
                    "fr": "Evolution de la couverture des sols",
                    "es": "Dinámica de la Cobertura del Suelo",
                    "pt": "Dinâmica de cobertura da terra ",
                    "id": "Land Cover Dynamics",
                    "zh": "土地覆盖动态数据",
                    "ka": "მიწის საფარის დინამიკა"
                },
                "layers": [{
                    "order": 1,
                    "id": "TREE_COVER_LOSS",
                    "type": "loss",
                    "url": "https://storage.googleapis.com/wri-public/Hansen_16/tiles/hansen_world/v1/tc30/{z}/{x}/{y}.png",
                    "minYear": 1,
                    "maxYear": 15,
                    "technicalName": "tree_cover_loss",
                    "legendLayer": [0],
                    "label": {
                        "en": "Tree cover loss",
                        "fr": "Perte en couvert arboré",
                        "es": "Pérdida de la cobertura arbórea",
                        "pt": "Perda de cobertura arbórea",
                        "id": "Tree cover loss",
                        "zh": "森林覆盖损失",
                        "ka": "ხის ვარჯის კარგვა"
                    },
                    "sublabel": {
                        "en": "(annual, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                        "fr": "(annuel, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                        "es": "(anual, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                        "pt": "(anual, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                        "id": "(annual, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                        "zh": "(每年更新, 30米, 全球覆盖, 汉森/马里兰大学/谷歌/美国地质测量局(USGS)/美国宇航局(NASA))",
                        "ka": "(წლიური, 30მ, გლობალური, Hansen/UMD/Google/USGS/NASA)"
                    }
                },
                {
                    "order": 2,
                    "id": "TREE_COVER_GAIN",
                    "type": "gain",
                    "url": "https://earthengine.google.org/static/hansen_2013/gain_alpha/{z}/{x}/{y}.png",
                    "technicalName": "tree_cover_gain",
                    "legendLayer": [1],
                    "label": {
                        "en": "Tree cover gain",
                        "fr": "Gain en couvert arboré",
                        "es": "Aumento de la cobertura arbórea",
                        "pt": "Ganho de cobertura arbórea",
                        "id": "Tree cover gain",
                        "zh": "森林覆盖增加",
                        "ka": "ხის ვარჯის ნამატი"
                    },
                    "sublabel": {
                        "en": "(12 years, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                        "fr": "(12 ans, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                        "es": "(12 años, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                        "pt": "(12 anos, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                        "id": "(12 years, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                        "zh": "(12 年, 30米, 全球覆盖, 汉森/马里兰大学/谷歌/美国地质测量局(USGS)/美国宇航局(NASA))",
                        "ka": "(12 წელიწადი, 30მ, გლობალური, Hansen/UMD/Google/USGS/NASA)"
                    }
                },
                {
                    "order": 3,
                    "id": "IMAZON_SAD",
                    "type": "dynamic",
                    "url": "https://gis-gfw.wri.org/arcgis/rest/services/forest_change/MapServer",
                    "technicalName": "imazon_sad",
                    "layerIds": [2],
                    "label": {
                        "en": "SAD alerts",
                        "fr": "Alertes SAD",
                        "es": "Alertas SAD",
                        "pt": "Alertas SAD",
                        "id": "SAD alerts",
                        "zh": "SAD alerts",
                        "ka": "SAD შეტყობინებები"
                    },
                    "sublabel": {
                        "en": "(monthly, 250m, Brazilian Amazon, Imazon)",
                        "fr": "(mensuel, 250m, Amazonie brésilienne, Imazon)",
                        "es": "(mensual, 250m, Amazonia brasileña, Imazon)",
                        "pt": "(mensal, 250m, Amazônia brasileira, Imazon)",
                        "id": "(monthly, 250m, Brazilian Amazon, Imazon)",
                        "zh": "(monthly, 250m, Brazilian Amazon, Imazon)",
                        "ka": "(ყოველთვიური, 250მ, ბრაზილიის ამაზონია, Imazon)"
                    }
                },
                {
                    "order": 4,
                    "id": "GLAD_ALERTS",
                    "type": "glad",
                    "url": "https://wri-tiles.s3.amazonaws.com/glad_prod/tiles/{z}/{x}/{y}.png",
                    "technicalName": "umd_landsat_alerts",
                    "legendLayer": [7],
                    "minDateValue": 15e3,
                    "maxDateValue": 999999,
                    "confidence": [0,
                    1],
                    "label": {
                        "en": "GLAD Alerts",
                        "fr": "Alertes GLAD",
                        "es": "Alertas GLAD",
                        "pt": "Alertas GLAD",
                        "id": "GLAD Alerts",
                        "zh": "GLAD Alerts",
                        "ka": "GLAD შეტყობინებები"
                    },
                    "sublabel": {
                        "en": "(weekly, 30m, select countries, UMD/ GLAD)",
                        "fr": "(hebdomadaire, 30m, certains pays, UMD/ GLAD)",
                        "es": "(semanal, 30m, select countries, UMD/ GLAD)",
                        "pt": "(semanal, 30m, select countries, UMD/ GLAD)",
                        "id": "(weekly, 30m, select countries, UMD/ GLAD)",
                        "zh": "(weekly, 30m, select countries, UMD/ GLAD)",
                        "ka": "(ყოველკვირეული, 30მ, აარჩიეთ ქვეყნები, UMD/ GLAD)"
                    }
                },
                {
                    "order": 5,
                    "id": "TERRA_I_ALERTS",
                    "type": "terra",
                    "url": "https://wri-tiles.s3.amazonaws.com/terrai_prod/tiles/{z}/{x}/{y}.png",
                    "technicalName": "terra_i_alerts",
                    "legendLayer": [13],
                    "maxZoom": 10,
                    "minDateValue": 4e3,
                    "maxDateValue": 2e4,
                    "imageServer": "https://gis-gfw.wri.org/arcgis/rest/services/image_services/terrai_analysis/ImageServer",
                    "label": {
                        "en": "Terra-I Alerts",
                        "fr": "Alertes Terra-I",
                        "es": "Alertas Terra-I",
                        "pt": "Alertas Terra-I",
                        "id": "Terra-I Alerts",
                        "zh": "Terra-I Alerts",
                        "ka": "Terra-I შეტყობინებები"
                    },
                    "sublabel": {
                        "en": "(monthly, 250m, Latin America, CIAT)",
                        "fr": "(mensuel, 250m, Amérique Latine, CIAT)",
                        "es": "(mensual, 250m, Latin America, CIAT)",
                        "pt": "(Mensal, 250m, Latin America, CIAT)",
                        "id": "(monthly, 250m, Latin America, CIAT)",
                        "zh": "(monthly, 250m, Latin America, CIAT)",
                        "ka": "(ყოველთვიური, 250მ, ლათინური ამერიკა, CIAT)"
                    }
                },
                {
                    "order": 6,
                    "id": "VIIRS_ACTIVE_FIRES",
                    "type": "dynamic",
                    "url": "https://gis-gfw.wri.org/arcgis/rest/services/Fires/FIRMS_Global/MapServer",
                    "technicalName": "viirs_fires",
                    "layerIds": [8],
                    "label": {
                        "en": "VIIRS Active Fires",
                        "fr": "Feux actifs",
                        "es": "Incendios activos",
                        "pt": "Incêndios ativos",
                        "id": "Active fires",
                        "zh": "活跃火点",
                        "ka": "VIIRS აქტიური ხანძრები"
                    },
                    "sublabel": {
                        "en": "(daily, 375m, global, NASA)",
                        "fr": "(journalier, 375m, global, NASA)",
                        "es": "(Diaria, 375m, global, NASA)",
                        "pt": "(Diária, 375m, global, NASA)",
                        "id": "(daily, 375m, global, NASA)",
                        "zh": "(每天更新, 375米, 全球覆盖, 美国宇航局(NASA))",
                        "ka": "(ყოველდღიური, 375მ, გლობალური, NASA)"
                    },
                    "popup": {
                        "title": {
                            "en": "Active Fires"
                        },
                        "content": {
                            "en": [{
                                "label": "Brightness",
                                "fieldExpression": "BRIGHTNESS"
                            },
                            {
                                "label": "Confidence",
                                "fieldExpression": "CONFIDENCE"
                            },
                            {
                                "label": "Latitude",
                                "fieldExpression": "LATITUDE"
                            },
                            {
                                "label": "Longitude",
                                "fieldExpression": "LONGITUDE"
                            },
                            {
                                "label": "Acquisition Date",
                                "fieldExpression": "ACQ_DATE:DateString(hideTime:true)"
                            },
                            {
                                "label": "Acquisition Time",
                                "fieldExpression": "ACQ_TIME"
                            }]
                        },
                        "sublabel": {
                            "en": "(annual, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                            "fr": "(annuel, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                            "es": "(anual, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                            "pt": "(anual, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                            "id": "(annual, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                            "zh": "(每年更新, 30米, 全球覆盖, 汉森/马里兰大学/谷歌/美国地质测量局(USGS)/美国宇航局(NASA))",
                            "ka": "(წლიური, 30მ, გლობალური, Hansen/UMD/Google/USGS/NASA)"
                        }
                    }
                },
                {
                    "order": 7,
                    "id": "MODIS_ACTIVE_FIRES",
                    "type": "dynamic",
                    "url": "https://gis-gfw.wri.org/arcgis/rest/services/Fires/FIRMS_Global/MapServer",
                    "technicalName": "firms_active_fires",
                    "layerIds": [9],
                    "label": {
                        "en": "MODIS Active Fires",
                        "fr": "Feux actifs",
                        "es": "Incendios activos",
                        "pt": "Incêndios ativos",
                        "id": "Active fires",
                        "zh": "活跃火点",
                        "ka": "MODIS აქტიური ხანძრები"
                    },
                    "sublabel": {
                        "en": "(daily, 1km, global, NASA)",
                        "fr": "(journalier, 1km, global, NASA)",
                        "es": "(Diaria, 1km, global, NASA)",
                        "pt": "(Diária, 1km, global, NASA)",
                        "id": "(daily, 1km, global, NASA)",
                        "zh": "(每天更新, 1千米, 全球覆盖, 美国宇航局(NASA))",
                        "ka": "(ყოველდღიური, 1კმ, გლობალური, NASA)"
                    },
                    "popup": {
                        "title": {
                            "en": "Active Fires"
                        },
                        "content": {
                            "en": [{
                                "label": "Brightness",
                                "fieldExpression": "BRIGHTNESS"
                            },
                            {
                                "label": "Confidence",
                                "fieldExpression": "CONFIDENCE"
                            },
                            {
                                "label": "Latitude",
                                "fieldExpression": "LATITUDE"
                            },
                            {
                                "label": "Longitude",
                                "fieldExpression": "LONGITUDE"
                            },
                            {
                                "label": "Acquisition Date",
                                "fieldExpression": "ACQ_DATE:DateString(hideTime:true)"
                            },
                            {
                                "label": "Acquisition Time",
                                "fieldExpression": "ACQ_TIME"
                            }]
                        },
                        "sublabel": {
                            "en": "(annual, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                            "fr": "(annuel, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                            "es": "(anual, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                            "pt": "(anual, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                            "id": "(annual, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                            "zh": "(每年更新, 30米, 全球覆盖, 汉森/马里兰大学/谷歌/美国地质测量局(USGS)/美国宇航局(NASA))",
                            "ka": "(წლიური, 30მ, გლობალური, Hansen/UMD/Google/USGS/NASA)"
                        }
                    }
                }]
            },
            "GROUP_LC": {
                "order": 4,
                "label": {
                    "en": "Land Cover",
                    "fr": "Couverture des sols",
                    "es": "Cobertura vegetal",
                    "pt": "Land Cover",
                    "id": "Land Cover",
                    "zh": "土地覆盖"
                },
                "layers": [{
                    "order": 1,
                    "id": "GLOB_MANGROVE",
                    "type": "webtiled",
                    "url": "https://cartocdn-gusc.global.ssl.fastly.net/wri-01/api/v1/map/d1567282c7f1c14771faf723c39d677a:1529255467465/0/{level}/{col}/{row}.png",
                    "technicalName": "global_mangroves_gmw",
                    "legendLayer": 11,
                    "label": {
                        "en": "Mangrove Forest",
                        "fr": "Mangrove Forest",
                        "es": "Mangrove Forest",
                        "pt": "Mangrove Forest",
                        "id": "Mangrove Forest",
                        "zh": "Mangrove Forest"
                    }
                },
                {
                    "order": 2,
                    "id": "IFL",
                    "type": "dynamic",
                    "url": "https://gis-gfw.wri.org/arcgis/rest/services/forest_cover/MapServer",
                    "technicalName": "intact_forest_landscapes_change",
                    "layerIds": [0],
                    "label": {
                        "en": "Intact Forest Landscape",
                        "fr": "Paysage forestier intact",
                        "es": "Paisajes Forestales Intactos",
                        "pt": "Intact Forest Landscape",
                        "id": "Intact Forest Landscape",
                        "zh": "原生森林景观"
                    }
                },
                {
                    "order": 3,
                    "id": "AG_BIOMASS",
                    "type": "image",
                    "url": "https://gis-gfw.wri.org/arcgis/rest/services/image_services/whrc_carbon_tcd/ImageServer",
                    "technicalName": "aboveground_biomass",
                    "legendLayer": [8],
                    "label": {
                        "en": "Aboveground Live Woody Biomass Density",
                        "fr": "Densité de la biomasse aérienne vivante",
                        "es": "Densidad de la biomasa viva en la superficie del suelo",
                        "pt": "Densidade de biomassa viva acima do solo",
                        "id": "Aboveground Live Woody Biomass Density",
                        "zh": "Aboveground Live Woody Biomass Density",
                        "ka": "მიწისზედა ცოცხალი ტყის ბიომასის სიხშირე"
                    }
                },
                {
                    "order": 4,
                    "id": "LAND_COVER",
                    "type": "webtiled",
                    "url": "https://wri-tiles.s3.amazonaws.com/global-landcover/{level}/{col}/{row}.png",
                    "technicalName": "global_landcover",
                    "legendLayer": 15,
                    "rasterId": "$568",
                    "bounds": [1,
                    16],
                    "classes": {
                        "en": ["Irrigated croplands",
                        "Rainfed croplands",
                        "Cropland forest mosaic",
                        "Broadleaved evergreen or semi-deciduous forest",
                        "Broadleaved deciduous forest",
                        "Needleleaved evergreen or deciduous forest",
                        "Mixed broadleaved and needleleaved forest",
                        "Mosaic of forest, shrubland and grassland",
                        "Shrubland",
                        "Grassland",
                        "Sparse vegetation",
                        "Flooded broadleaved forest",
                        "Flooded vegetation",
                        "Artificial areas",
                        "Bare areas",
                        "Permanent snow and ice"],
                        "fr": ["Irrigated croplands",
                        "Rainfed croplands",
                        "Cropland forest mosaic",
                        "Broadleaved evergreen or semi-deciduous forest",
                        "Broadleaved deciduous forest",
                        "Needleleaved evergreen or deciduous forest",
                        "Mixed broadleaved and needleleaved forest",
                        "Mosaic of forest, shrubland and grassland",
                        "Shrubland",
                        "Grassland",
                        "Sparse vegetation",
                        "Flooded broadleaved forest",
                        "Flooded vegetation",
                        "Artificial areas",
                        "Bare areas",
                        "Permanent snow and ice"]
                    },
                    "colors": ["#825D26",
                    "#D1A969",
                    "#DED6B4",
                    "#157562",
                    "#CC7A29",
                    "#6DAD96",
                    "#968635",
                    "#C2B32F",
                    "#6F7A53",
                    "#96A36F",
                    "#CDDB93",
                    "#7DBDE8",
                    "#0D63A1",
                    "#F41E65",
                    "#FFFFFF",
                    "#DBDBDB"],
                    "label": {
                        "en": "Land cover",
                        "fr": "Couverture des sols"
                    }
                },
                {
                    "order": 5,
                    "id": "TREE_COVER",
                    "type": "image",
                    "url": "https://gis-treecover.wri.org/arcgis/rest/services/TreeCover2000/ImageServer",
                    "technicalName": "tree_cover",
                    "colormap": [[1,
                    0,
                    179,
                    0]],
                    "inputRange": [30,
                    101],
                    "outputRange": [1],
                    "opacity": 0.8,
                    "legendLayer": 2,
                    "label": {
                        "en": "Tree cover density",
                        "fr": "Densité du couvert arboré",
                        "es": "Densidad de follaje",
                        "pt": "Tree cover density",
                        "id": "Tree cover density",
                        "zh": "森林覆盖密度"
                    },
                    "sublabel": {
                        "en": "(year 2000, 30m global, Hansen/UMD/Google/USGS/NASA)",
                        "fr": "(année 2000, 30m global, Hansen/UMD/Google/USGS/NASA)",
                        "es": "(2000, 30m, global, Hansen/UMD/Google/USGS/NASA)",
                        "pt": "(year 2000, 30m global, Hansen/UMD/Google/USGS/NASA)",
                        "id": "(year 2000, 30m global, Hansen/UMD/Google/USGS/NASA)",
                        "zh": "(2000年, 30米 全球覆盖, 汉森/马里兰大学/谷歌/美国地质测量局(USGS)/美国宇航局(NASA))"
                    }
                }]
            },
            "GROUP_BASEMAP": {
                "groupType": "basemap",
                "order": 5,
                "label": {
                    "en": "Basemap",
                    "fr": "Basemap",
                    "es": "Basemap",
                    "pt": "Basemap",
                    "id": "Basemap",
                    "zh": "Basemap"
                },
                "layers": [{
                    "id": "landsat",
                    "thumbnailUrl": "https://my.gfw-mapbuilder.org/img/basemaps-sdd18a411a3-5bf18f445e58b8766f773184b7741c67.png",
                    "templateUrl": "https://d2h71bpqsyf4vw.cloudfront.net/2016/${level}/${col}/${row}.png",
                    "years": ["2000",
                    "2001",
                    "2002",
                    "2003",
                    "2004",
                    "2005",
                    "2006",
                    "2007",
                    "2008",
                    "2009",
                    "2010",
                    "2011",
                    "2012",
                    "2013",
                    "2014",
                    "2015",
                    "2016"],
                    "title": {
                        "en": "Landsat",
                        "fr": "Landsat",
                        "es": "Landsat",
                        "pt": "Landsat",
                        "id": "Landsat",
                        "zh": "Landsat"
                    }
                },
                {
                    "id": "wri_mono",
                    "thumbnailUrl": "https://my.gfw-mapbuilder.org/img/wri_mono.png",
                    "title": {
                        "en": "WRI Mono",
                        "fr": "WRI Mono",
                        "es": "WRI Mono",
                        "pt": "WRI Mono",
                        "id": "WRI Mono",
                        "zh": "WRI Mono"
                    }
                },
                {
                    "id": "wri_contextual",
                    "thumbnailUrl": "https://my.gfw-mapbuilder.org/img/wri_contextual.png",
                    "title": {
                        "en": "WRI Contextual",
                        "fr": "WRI Contextual",
                        "es": "WRI Contextual",
                        "pt": "WRI Contextual",
                        "id": "WRI Contextual",
                        "zh": "WRI Contextual"
                    }
                }]
            },"GROUP_CUSTOM": {
                "order": 4,
                "label": {
                    "en": "Custom Data Layers",
                    "fr": "Custom Data Layers"
                },
                "layers": [{
                    "order": 1,
                    "id": "Map_Service",
                    "type": "dynamic",
                    "url": "https://gis.forest-atlas.org/server/rest/services/cod/Affectation_des_terres_en/MapServer",
                    "layerIds": [101],
                    "label": {
                        "en": "Map Service Layer",
                        "fr": "Map Service Layer"
                    }},
                    {"order": 2,
                    "id": "Feature_Service_OnPortal",
                    "type": "feature",
                    "url": "https://gis.mepa.gov.ge/server/rest/services/Hosted/Emerald_Network/FeatureServer/0",
                    "label": {
                        "en": "Feature Service Layer on Portal",
                        "fr": "Feature Service Layer on Portal"
                    }},
                    {"order": 3,
                    "id": "Feature_Service_OnAGOL",
                    "type": "feature",
                    "url": "https://services2.arcgis.com/g8WusZB13b9OegfU/ArcGIS/rest/services/HostedFeatuer_AGOL_Test/FeatureServer/0",
                    "label": {
                        "en": "Feature Service Layer on AGOL",
                        "fr": "Feature Service Layer on AGOL"
                    }},
                    {"order": 4,
                    "id": "Tile_OnAGOL",
                    "type": "dynamic",
                    "url": "https://tiles.arcgis.com/tiles/g8WusZB13b9OegfU/arcgis/rest/services/TileService_Test/MapServer",
                    "layerIds": [0],
                    "label": {
                        "en": "Tile Service on AGOL",
                        "fr": "Tile Service on AGOL"
                    }}
                    ]},
            "extraLayers": [{
                "id": "MASK",
                "type": "dynamic",
                "order": 10000,
                "url": "https://gis.forest-atlas.org/server/rest/services/country_masks/country_mask_global/MapServer",
                "opacity": 0.35,
                "layerIds": [0]
            },
            {
                "id": "LEGEND_LAYER",
                "type": "dynamic",
                "url": "https://gis-gfw.wri.org/arcgis/rest/services/legends/MapServer",
                "visible": false,
                "opacity": 0,
                "layerIds": []
            },
            {
                "id": "USER_FEATURES",
                "type": "graphic",
                "visible": true
            }]
        }
    }
csphang commented 5 years ago

@richardbarad We have a fix for this up at: https://beta.blueraster.io/mapbuilder/219-metadata-remix/external.html

We are internally testing this today, but wanted to share now in case you want to take a look.

richardbarad commented 5 years ago

@csphang. Confirming that I looked at this and everything looks good!

jenboyd commented 5 years ago

Released with version 1.3.1