Добавлять метки с символами к легенде в ArcMap?

10

Я создаю карту с ArcGIS Desktop v10.2.2 , показывая музеи в виде точек. Слой музеев не имеет символа, а надписи выполнены в виде круга, заполненного цветом, с идентификатором внутри, взятым с [ID]поля.

Я хочу добавить весь список музеев в легенду макета карты, имея список моих символов с их идентификаторами и описанием (их именем), взятым из [LABEL]поля, не создавая его вручную.

Я знаю, что возможным ручным решением было бы установить символику слоя на «Уникальные значения», затем добавить все значения (более 100!) И установить один раз для каждой точки одну и ту же символику метки. Но я надеюсь, что есть лучшее решение!

Посмотрите на мою карту ниже.

Слой «Musei» (Музеи) и, как вы можете видеть на легенде слева, у него нет символа. Справа вы можете увидеть символику описанной легенды, темно-серый круг с красным текстом внутри, взятый с [ID]поля. Я хочу добавить в свой макет столбец, содержащий все круги с идентификаторами и соответствующую метку.

Музеи

-- ОБНОВИТЬ --

Это настройки Field Calculator, которые я использовал в соответствии с решением, предложенным @FelixIP.

Полевой калькулятор

Но точки расположены не по вертикали, как я ожидаю. Вместо этого они немного перемещены здесь и там. Я также пытался использовать разные значения шага: 10, 100, 1000, 10000.

Чеширский кот
источник
Не могли бы вы вставить таблицу рядом с вашей легендой?
whatahitson
@whatahitson Вы имеете в виду рамку таблицы в макете?
Чеширский кот

Ответы:

6

Чтобы получить это:

введите описание изображения здесь

Я использовал 2 кадра данных:

введите описание изображения здесь

ШАГИ:

а) Создайте копию своего шейп-файла для своих музеев; b) Отметьте xMean, yMax для точек и c) Запустите это выражение калькулятора поля, многократно меняя шаг в поле Shape, пока вы не будете удовлетворены интервалом между вертикальными точками.

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

С помощью

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

Это создаст вертикальную цепочку ваших точек, которые будут отображены и помечены во 2-м кадре данных === легенда

Обновление: средняя долгота точек, которые я использовал, 1563910, максимальная долгота 5177655

FelixIP
источник
Я пытаюсь, но, возможно, я не правильно понял вашу процедуру. У меня уже есть координаты X и Y точек в двух полях таблицы музеев. Нужно ли рассчитывать новую позицию X и Y в новом поле? Я использовал Field Calculatore, добавив в него определение вашей функции с последующим вызовом функции, но я получил 999999 неопределенную ошибку и сообщение об отсутствии конца istruction.
Чеширский кот
Нет новых полей. Запустите калькулятор в поле SHAPE резервной копии. Если вы не понимаете, что делает функция, просто нарисуйте вертикальную линию на вашем виде и наведите на нее точки, fid = 0 вверху, fid = 1 внизу и т. Д.
FelixIP
Я попробовал ваше решение, пожалуйста, посмотрите на мой вопрос обновления.
Чеширский кот
1
Вы не читаете мое решение внимательно. Когда вы вызываете выражение, вы должны использовать ОДИНАРНЫЕ цифры для 3-го и 4-го параметров, а не координаты отдельных точек, хранящихся в полях. Если у вас есть 3 точки с xs 1,2,3, ваш третий параметр должен быть равен 2. Возьмите ручку и запишите AVEARAGE долготу и МАКСИМАЛЬНУЮ широту ваших точек
FelixIP
Кроме того, можно экспортировать строки из шейп-файла, который вы пытаетесь разметить, перетащить их в Excel, добавить точки x, y для ряда вертикально распределенных точек (1,9; 1,8; 1,7 и т. Д.) И поместите его в дополнительный фрейм данных с помощью «Добавить данные X, Y». Также убедитесь, что расположение меток для двух ваших шейп-файлов меток установлено надлежащим образом, т. Е. Один «ТОЛЬКО вверху справа», а другой «ТОЛЬКО вверху слева».
Карл