Hinzufügen von Beschriftungen mit Symbolen zur Legende in ArcMap?

10

Ich erstelle eine Karte mit ArcGIS Desktop 10.2.2 und zeige Museen als Punkte. Die Ebene des Museums hat kein Symbol und die Beschriftungen bestehen aus einem Kreis, der mit Farbe gefüllt ist und dessen ID aus dem [ID]Feld stammt.

Ich möchte die gesamte Liste der Museen zur Legende der Layoutkarte hinzufügen und eine Liste meiner Symbole mit ihren IDs und der Beschreibung (ihrem Namen) aus dem [LABEL]Feld entnehmen , ohne sie manuell zu erstellen.

Ich weiß, dass eine mögliche manuelle Lösung darin besteht, die Ebenensymbologie auf "Eindeutige Werte" zu setzen, dann alle Werte (mehr als 100!) Zu addieren und für jeden Punkt einmal dieselbe Beschriftungssymbologie festzulegen. Aber ich hoffe es gibt eine bessere Lösung!

Schauen Sie sich meine Karte unten an.

Die Ebene ist "Musei" (Museen) und wie Sie in der Legende links sehen können, hat sie kein Symbol. Auf der rechten Seite sehen Sie die beschriebene Legenden-Symbologie, einen dunkelgrauen Kreis mit rotem Text aus dem [ID]Feld. Ich möchte meinem Layout eine Spalte hinzufügen, die alle Kreise mit IDs und der entsprechenden Beschriftung enthält.

Museen

- UPDATE -

Dies sind die Feldrechnereinstellungen, die ich gemäß der von @FelixIP vorgeschlagenen Lösung verwendet habe.

Feldrechner

Aber die Punkte sind nicht wie erwartet vertikal ausgerichtet. Stattdessen sind sie hier und da ein bisschen bewegt. Ich habe auch versucht, verschiedene Schrittwerte zu verwenden: 10, 100, 1000, 10000.

Cheshire Cat
quelle
Könnten Sie eine Tabelle neben Ihrer Legende einfügen?
Whatahitson
@whatahitson Meinst du einen Tabellenrahmen in der Layoutansicht?
Cheshire Cat

Antworten:

6

Um dies zu bekommen:

Geben Sie hier die Bildbeschreibung ein

Ich habe 2 Datenrahmen verwendet:

Geben Sie hier die Bildbeschreibung ein

SCHRITTE:

a) Erstellen Sie eine Kopie des Shapefiles Ihres Museums. b) Beachten Sie xMean, yMax der Punkte und c) Führen Sie diesen Feldrechnerausdruck mehrmals aus, indem Sie den Schritt im Feld Form ändern, bis Sie mit dem Intervall zwischen vertikalen Punkten zufrieden sind

def vertical(fid, shp,xMean,yMax,step):
 y=yMax-step*fid
 pNew=arcpy.Point(xMean,y)
 return pNew

Verwenden von

vertical( !FID!, !Shape!, 1563910,5177655,100)

Es wird eine vertikale Kette Ihrer Punkte erstellt, die in der Legende des 2. Datenrahmens === angezeigt und beschriftet werden

Update: Die durchschnittliche Länge der von mir verwendeten Punkte beträgt 1563910, die maximale Länge 5177655

FelixIP
quelle
Ich versuche es, aber vielleicht habe ich Ihr Verfahren nicht richtig verstanden. Ich habe bereits die X- und Y-Koordinaten der Punkte in zwei Feldern der Museumstabelle. Muss ich eine neue X- und Y-Position in einem neuen Feld berechnen? Ich habe Field Calculatore verwendet, um Ihre Funktionsdefinition gefolgt vom Funktionsaufruf darauf zu setzen, aber ich erhalte einen undefinierten 999999-Fehler und die Meldung "Fehlendes Befehlsende".
Cheshire Cat
Keine neuen Felder. Führen Sie den Rechner im Feld SHAPE der Sicherungskopie aus. Wenn Sie nicht verstehen, was die Funktion bewirkt, zeichnen Sie einfach eine vertikale Linie in Ihrer Ansicht und fangen Sie Punkte darauf, fid = 0 oben, fid = 1 unten usw.
FelixIP
Ich habe versucht, Sie Lösung, bitte werfen Sie einen Blick auf meine Frage Update.
Cheshire Cat
1
Sie lesen meine Lösung nicht sorgfältig. Wenn Sie Ausdruck aufrufen, müssen Sie EINZELNE Zahlen für den 3. und 4. Parameter verwenden, nicht die Koordinaten der in Feldern gespeicherten Einzelpunkte. Wenn Sie 3 Punkte mit xs 1,2,3 haben, muss Ihr 3. Parameter nicht 2 sein. Nehmen Sie einen Stift und notieren Sie den durchschnittlichen Längengrad und den maximalen Breitengrad Ihrer Punkte
FelixIP
Alternativ können Sie die Zeilen aus dem Shapefile exportieren, das Sie beschriften möchten, sie in Excel ziehen, x- und y-Punkte für eine Reihe vertikal verteilter Punkte hinzufügen (1,9; 1,8; 1,7 usw.) und Fügen Sie es mit "X-, Y-Daten hinzufügen" in den zusätzlichen Datenrahmen ein. Stellen Sie außerdem sicher, dass die Etikettenplatzierung für Ihre beiden Etiketten-Shapefiles richtig eingestellt ist - dh eines ist "NUR oben rechts" und das andere "NUR oben links".
Carl