Menambahkan label dengan simbol ke legenda di ArcMap?

10

Saya membuat peta dengan ArcGIS Desktop v10.2.2 , menampilkan museum sebagai titik. Lapisan museum tidak memiliki simbol dan label terbuat dari lingkaran yang diisi dengan warna dengan ID di dalamnya, yang diambil dari [ID]lapangan.

Saya ingin menambahkan seluruh daftar museum di legenda tata letak peta, memiliki daftar simbol saya dengan ID mereka dan deskripsi (nama mereka) diambil dari [LABEL]lapangan, tanpa membuatnya secara manual.

Saya tahu bahwa solusi manual yang mungkin adalah mengatur simbologi layer menjadi "Nilai unik", lalu menambahkan semua nilai (lebih dari 100!) Dan menetapkan sekali untuk setiap titik simbologi label yang sama. Tapi saya harap ada solusi yang lebih baik!

Lihatlah peta saya di bawah ini.

Lapisan itu adalah "Musei" (Museum) dan seperti yang Anda lihat pada legenda di sebelah kiri, ia tidak memiliki simbol. Di sebelah kanan Anda dapat melihat simbologi legenda yang dideskripsikan, lingkaran abu-abu gelap dengan teks Merah di dalamnya diambil dari [ID]bidang. Saya ingin menambahkan tata letak saya sebuah kolom yang berisi semua lingkaran dengan ID dan label yang sesuai.

Museum

- PEMBARUAN -

Ini adalah pengaturan Kalkulator Lapangan yang saya gunakan mengikuti solusi yang diusulkan oleh @FelixIP.

Kalkulator Bidang

Tetapi poin tidak diposisikan dalam garis vertikal seperti yang saya harapkan. Sebaliknya mereka sedikit bergerak di sana-sini. Saya juga mencoba menggunakan nilai langkah yang berbeda: 10, 100, 1000, 10000.

Kucing Cheshire
sumber
Bisakah Anda memasukkan tabel di sebelah legenda Anda?
whatahits
@whatahitson Maksud Anda bingkai tabel di tampilan tata letak?
Cheshire Cat

Jawaban:

6

Untuk mendapatkan ini:

masukkan deskripsi gambar di sini

Saya telah menggunakan 2 kerangka data:

masukkan deskripsi gambar di sini

LANGKAH:

a) Buat salinan shapefile museum Anda; b) Catatan xMean, yMax poin dan c) Jalankan ekspresi kalkulator bidang ini beberapa kali mengubah langkah pada bidang Shape hingga Anda puas dengan interval antara titik vertikal

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

Menggunakan

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

Ini akan membuat rantai vertikal poin Anda untuk ditampilkan dan dilabeli dalam dataframe ke-2 === legenda

Pembaruan: garis bujur rata-rata dari poin yang saya gunakan adalah 1563910, garis bujur maksimum 5177655

FelixIP
sumber
Saya mencoba tetapi mungkin saya tidak mengerti dengan benar prosedur Anda. Saya sudah memiliki koordinat X dan Y dari titik-titik di dua bidang tabel museum. Apakah saya perlu menghitung posisi X dan Y baru di bidang baru? Saya menggunakan Field Calculatore untuk meletakkannya, definisi fungsi Anda diikuti oleh pemanggilan fungsi tetapi saya mendapatkan pesan 999999 yang tidak terdefinisi dan pesan "missing istruction end".
Cheshire Cat
Tidak ada bidang baru. Jalankan kalkulator pada bidang SHAPE dari salinan cadangan. Jika Anda tidak mengerti apa fungsi tidak, cukup menggambar garis vertikal dalam tampilan Anda dan mengambil poin ke sana, fid = 0 di atas, fid = 1 di bawah dll
FelixIP
Saya mencoba solusi Anda, silakan lihat pembaruan pertanyaan saya.
Cheshire Cat
1
Anda tidak membaca solusi saya dengan hati-hati. Saat Anda memanggil ekspresi, Anda harus menggunakan angka SINGLE untuk parameter ke-3 dan ke-4, bukan koordinat indiv.point yang disimpan dalam bidang. Jika Anda memiliki 3 poin dengan xs 1,2,3, parameter ke-3 Anda t menjadi 2. Ambil pena dan tuliskan AVEARAGE bujur dan lintang MAKSIMUM poin Anda
FelixIP
Atau, ekspor baris dari shapefile yang Anda coba beri label, tarik mereka ke excel, tambahkan x, y poin untuk serangkaian poin yang didistribusikan secara vertikal, (1,9; 1,8; 1,7, dll.), Dan memasukkannya ke dalam kerangka data tambahan dengan "Tambahkan data X, Y". Juga pastikan bahwa penempatan label untuk dua shapefile label Anda diatur dengan tepat - yaitu, satu adalah "HANYA Kanan Atas" dan yang lain adalah "HANYA Kiri Atas."
Carl