Bisakah Representasi digunakan untuk titik XY Spasial (Disperse) untuk Aplikasi Pemetaan Web?


8

Jadi saya punya sedikit masalah poin dengan x dan y yang sama yang harus saya tampilkan secara terpisah dari diri mereka sendiri. Berikut adalah beberapa sejarah masalah ini:

Saya memiliki database insiden yang terjadi di suatu daerah. Insiden-insiden ini bergabung dengan jalinan parcel dengan hubungan satu-ke-banyak. Jadi beberapa insiden terjadi pada satu paket. Saya perlu insiden ditampilkan sebagai kelas fitur titik untuk aplikasi pemetaan web. Jadi saya menambahkan x dan y centroid dari paket terkait dan membuat kelas fitur titik. Ini menghasilkan beberapa poin yang ditarik di atas satu sama lain seperti yang ditunjukkan dalam gambar ini: Gambar A

Saya mengubah simbologi menjadi representasi dengan jarak minimum 10 meter antara titik-titik yang menghasilkan apa yang saya cari seperti yang ditunjukkan dalam gambar ini: Gambar B

Sekarang ini berfungsi dengan baik di ArcMap, tetapi ketika diunggah ke aplikasi pemetaan web saya, poin hanya dapat diidentifikasi di sana asli x dan y. Jadi, ketika Anda mengidentifikasi poin yang telah diberi spasi Anda tidak mendapatkan hasil, tetapi ketika Anda mengidentifikasi pusat parsel Anda mendapatkan beberapa hasil.

Apa yang ingin saya wujudkan adalah entah bagaimana mengembalikan xy dari representasi ini dan mengubah xy dari setiap poin menjadi itu. Saya sudah mencoba beberapa solusi pemrograman, tetapi saya belum dapat menyelesaikannya.

Jawaban:


6

Saya akhirnya menemukan cara pemrograman yang cukup bagus untuk bekerja dengan ini. Saya menggunakan array untuk mengubah x dan y di tabel sebelum mengubah tabel ke titik. Array sederhana ini menempatkan titik-titik di sekitar pusat massa paket. Inilah kode:

for x in output:                  # output is a list of unique ID's of the table
    expr =  "UID like '" + str(x) + "'")
    Z = 0
    B = 1
    X = [0, 0,10,10, 10,  0,-10,-10,-10]
    Y = [0,10,10,00,-10,-10,-10,  0, 10]
    rows = arcpy.UpdateCursor("Table", expr)
    for row in rows:
        row.Northing = row.Northing + (Y[Z]*B)
        row.Easting = row.Easting + (X[Z]*B)
        Z = Z + 1
        if Z == 9:
            Z = 0
            B = B + 1
        rows.updateRow(row)

Inilah yang akhirnya terlihat seperti: Gambar C

Saya harap ini membantu orang lain. Jika Anda memiliki beberapa pertanyaan, beri tahu saya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.