Saya memiliki sejumlah lapisan CAD non-georeferensi (lihat pertanyaan ini ) yang memiliki fitur anotasi teks. Saya telah membuat model untuk mengonversi teks menjadi titik, tetapi setelah mengonversi anotasi ke kelas Featureeclass, saya melihat bahwa titik jangkar teks CAD tidak sesuai dengan pusat teks CAD (di mana titik berada).
Oleh karena itu, saya ingin programatik (menggunakan ArcPy atau Modelbuilder) [pindah] fitur relatif terhadap lokasi saat ini (delta x, y) menggunakan X diukur, nilai Y yang saya akan memberikan.
Ini akan memungkinkan saya untuk memindahkan poin GIS kembali ke tempat mereka berada, alih-alih titik jangkar CAD offset.
Bagaimana saya bisa menyelesaikan tugas ini?
@PolyGeo memberikan jawaban yang bagus menggunakan SHAPE @ XY IN 10.1, tetapi saat ini saya menjalankan 10.0. Ada 10,0 ide?
sumber
Saya menghargai @ artwork21 karena telah mengarahkan saya ke solusi akhir saya. Saya benar-benar menemukan skrip yang hampir lengkap di artikel bantuan online ArcGIS 10.0 yang disebut " Calculate Field samples ", yang tercantum di bawah subkategori " Sampel kode — geometri " dan " Untuk kelas fitur titik, geser koordinat x setiap titik dengan 100 "
Script terakhir yang saya gunakan dalam alat "Menghitung Bidang" ModelBuilder adalah:
Ekspresi:
di mana ShiftX dan ShiftY adalah variabel (sebagai parameter) yang ditentukan pada kanvas ModelBuilder.
Jenis Ekspresi:
Blok Kode:
Karena semua model bekerja pada set yang dipilih, Anda juga harus dapat membuat ini sebagai alat generik yang akan bekerja bersama dengan model / alat lain di sesi pembuat model lainnya. Model yang sangat sederhana yang saya buat (sebagai "plugin" ke model lain untuk menggeser nilai koordinat) terlihat seperti ini. Dengan begitu saya bisa mengontrol shift berdasarkan per-seleksi-set (seperti yang didefinisikan dalam model lain):
Itu bekerja seperti pesona, terima kasih atas masukan Anda!
sumber
Anda juga dapat menggunakan skrip kalkulator bidang ini untuk memindahkan lokasi fitur:
XYsetVALUE (! SHAPE !,! X_COORD !,! Y_COORD!)
Anda bisa memasukkan metode Menghitung Bidang tambahan dalam model Anda menggunakan fungsi di atas.
sumber
Saya mengadaptasi solusi untuk memindahkan / menggeser titik poin ke arah tertentu (sudut) dan jarak tertentu.
Seperti:
dan dipanggil seperti shiftXYCoordinates (! SHAPE !,! Angle!, 5000), jika Anda memiliki bidang "sudut" untuk fitur poin Anda (atau dengan konstanta tentu saja). Sudut harus diberikan dalam derajat desimal. 0 akan menggeser "ke atas", 90 "ke kanan" dll. Saya mendapatkannya setelah membuat fitur indeks peta strip dan mengubahnya menjadi poin.
Juga pastikan untuk memilih Nama Bidang "Bentuk" sebelum menjalankan :)
(Solusi diuji dalam ArcMap 10.0 SP5)
sumber
Seperti yang Anda lihat, itu jauh lebih mudah di 10.1 ketika Anda mendapatkan akses ke token kursor.
sumber
Ini bekerja untuk 10.0:
sumber