Rendern einer Legende für eine Karte

Beschreibung

Gibt die vollständige Legende für eine Karte zurück, die die Kartendefinition als JSON, die Mustergröße und den MIME-Typ der Legenden angibt. Die Legende wird als einzelne Musterzeilen einschließlich eines Base64-verschlüsselten Bildes (oder URL) und einer Textbeschreibung zurückgegeben, aus denen eine vollständige Legende besteht. Für jeden Layer in der Kartendefinition werden null, einer oder mehrere Legendeneinträge zurückgegeben.

Wenn „inLineSwatch“ als „false“ weitergegeben wird, wird das JSON der Kartendefinition verwendet, um einen eindeutigen Schlüssel zu erstellen. Dieser Schlüssel wird zusammen mit dem Pfad (legends/{legendIndex}/rows/{rowindex}) in den Cache gesetzt. Dieser Schlüssel kann im getSwatch-Vorgang verwendet werden, um die Legende aus dem Cache abzurufen.

Die JSON-Textkörperdarstellung ist im GeoJSON-Format. Weitere Informationen über GeoJSON finden Sie unter geojson.org/geojson-spec.html.

ACL-Autorisierungsfluss

Um die vollständige Legende einer Karte zurückzugeben, benötigt der Benutzer (oder die Rollen, zu denen er gehört) wie folgt die Ausführungsberechtigung für die benannte Tabelle:

  • „EXECUTE“ für den Entitätstyp „Location Intelligence.Named Resources“

URL-Format von HTTP-POST-Anforderungen

Für HTTP-POST-Anforderungen wird das folgende Format verwendet:


HTTP POST:	/maps/legends.json;
POST DATA:	w=width;h=height;t=image type;
			[r=resolution]?[inlineSwatch=boolean]&[ignoreLegendRowOverrideVisibility=boolean]
POST BODY: Content-Type:application/json {map definition, containing an object of a Map, layer array, or FeatureCollection}
			

Parameter

Weitere Informationen zu den unten aufgeführten Parametertypen finden Sie unter URL-Anforderungsdatentypen.

Parameter Typ Erforderlich Beschreibung
Typ Zeichenfolge ja Der Typ der Informationen, die die Legende zurückgeben sollen (z. B. JSON)
w=Breite Ganze Zahl ja Breite des einzelnen Legendenmusters in Pixeln
h=Höhe Ganze Zahl ja Höhe des einzelnen Legendenmusters in Pixeln
t = Bildtyp Zeichenfolge ja Der Typ der Bilder, die für Legendenmuster zurückgegeben werden sollen (z. B. gif, png usw.)
r=Auflösung Ganze Zahl no Die DPI-Auflösung der Legendenmuster als ganze Zahl. DPI misst die Auflösung der Bilder in Punkten pro Zoll (die Anzahl der einzelnen Punkte, die im Bereich von einem linearen Zoll angeordnet werden können). Ist dieser Wert nicht angegeben, wird der Serverstandard verwendet.
inlineSwatch = Bool'scher Wert Boolean no Bestimmt, ob die Musterbilder als Daten oder URL zum Bildspeicherort auf dem Server zurückgegeben werden sollen. Standardmäßig werden alle Musterbilder als Base64-verschlüsselte Bilder in der JSON-Antwort zurückgegeben (inlineSwatch=true). Geben Sie „inlineSwatch=false“ an, um Musterbild-URLs für die Bilder auf dem Server zurückzugeben.
ignoreLegendRowOverrideVisibility=boolean Boolean no Ignoriert die Sichtbarkeitseinstellung von LegendRowOverride in einer benannten Ressource und gibt alle Legenden zurück.

Beispiel

Geben Sie die Legende (Muster und Informationen) für die MapWithLayer-Karte zurück, die sich im JSON-Format im Datenbankverzeichnis „/Samples/NamedMaps“ befindet. Die Muster sind 32 × 16 groß, im PNG-Format und werden als Base64-verschlüsselte Bilder zurückgegeben. Die Karte wird mithilfe eines einzelnen Layers im JSON-Textkörper definiert.


http://<hostname>:<port>/rest/Spatial/MappingService/maps/legends.json;w=16;h=32;t=png
Content-type: application/json
Authorization: <Basic or Spectrum Token>

{
   'layers':[
      {
         'type':'NamedLayer',
         'name':'/Samples/NamedLayers/UK_REGNS_Layer'
      }
   ]
}
			

Der Textkörper der Anforderung kann entweder ein Layer-Array (siehe oben), ein Map- oder ein FeatureCollection-Objekt sein. Im Folgenden sehen Sie Beispiele für Map- und FeatureCollection-Objekte:


{
    "MapDescription": {
        "version": "1.0",
        "name": "Samples/NamedMaps/WorldMap",
         "layers":[
	  {
		"type":"NamedLayer",
		"name":"/Samples/NamedLayers/USALayer"
          }
	 ]
    }
}
			

{ "type": "FeatureCollection",
    "features": [
      { "type": "Feature",
        "geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
        "properties": {"prop0": "value0"}
        },
      { "type": "Feature",
        "geometry": {
          "type": "LineString",
          "coordinates": [
            [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
            ]
          },
        "properties": {
          "prop0": "value0",
          "prop1": 0.0
          }
        },
      { "type": "Feature",
         "geometry": {
           "type": "Polygon",
           "coordinates": [
             [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
               [100.0, 1.0], [100.0, 0.0] ]
             ]
         },
         "properties": {
           "prop0": "value0",
           "prop1": {"this": "that"}
           }
         }
       ]
     }
			

Gibt zurück:

Gibt ein Array von Zeichenfolgenwerten in einem JSON-Antwortobjekt zurück, das alle Legendenmuster für eine Karte darstellt. Für jeden Layer in der Karte werden null, einer oder mehrere Legendeneinträge zurückgegeben.

In der folgenden Antwort ist „inlineSwatch“ auf „true“ eingestellt. Das Bild wird als standardmäßige Base64-verschlüsseltes Bild zurückgegeben.


	{
		"LegendResponse":[{"layerName":"UK REGNS",				
		"rows":[{
		"description":"Region","swatch":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAy
		CAYAAAAeP4ixAAAASUlEQVR42u3PQRUAAAREQf3TacRBCszu+wEm4tjqQAPJxQcBAQEBAQEBAQEBAQEBAQEB
		AQEBAQEBAQEBAQEBAQEBAQEBeQHZXgPRVfdw38uLQQAAAABJRU5ErkJggg=="
		}],
		"title":"UK REGNS",
		"type":"CARTOGRAPHIC"}]
	}
			

Die folgende Antwort ist das gleiche Muster wie oben. Es wird jedoch eine URL zum generierten Musterbild zurückgegeben (Einstellung des inlineSwatch-Parameters auf „false“).


    {
    	"LegendResponse":[{"layerName":"UK REGNS",
		rows":[{
		"description":"Region","swatch":"http://<hostname>:<port>/rest/Spatial/MappingService/maps/
		ae16d6e47ab63e2a840f8b1f205e12bb/legends/0/rows/0/swatch/50x50.png"}],
		"title":"UK REGNS","type":"CARTOGRAPHIC"}]
	}