Dapatkah ubin peta kustom dikonsumsi melalui ArcObjects dalam ArcIng 10 Desktop AddIn saya?

8

Bisakah saya secara terprogram mengkonsumsi dan membuat petak peta khusus di ArcMap melalui ArcGIS 10 Desktop AddIn kami?

AddIn dibangun menggunakan ArcObjects SDK untuk C # /. NET dan ArcGIS 10. Menarik dan merender ubin peta BUKAN fungsi utama AddIn. Tetapi kami pasti ingin menerapkan fitur ini jika dapat dilakukan.

Lebih spesifik:

  • Saya menerima tip bahwa antarmuka ITiledMapServer2 terlibat tetapi tidak jelas bagi saya, dan ada kelangkaan informasi dalam dokumen ArcObjects mengenai tugas ini. Kelas yang setara dalam ArcGIS untuk Flex API adalah TiledMapServiceLayer, tetapi sekali lagi ini adalah AddIn ArcMap di ruang desktop, bukan aplikasi web.
  • Kami memiliki perangkat lunak internal untuk menghasilkan ubin kami sendiri dalam skema zoom, ubin Y, ubin X yang sama dengan Google maps JS / Flash API.
  • Kami menggunakan Apache untuk melayani petak peta dan karenanya saat ini tidak menggunakan ArcGIS Server dengan cara apa pun (yaitu mengarang ubin, menerbitkan sebagai layanan peta Server ArcGIS, dll.).
  • Saya telah memposting pertanyaan ke SO dan menerima rekomendasi untuk memposting di sini.

Terima kasih sebelumnya.

Josh
sumber
Jika semua yang Anda coba lakukan adalah mendapatkan petak peta pada ArcGIS Server, mengapa tidak menambahkan layanan sebagai layer di MXD Anda?
Michael Todd
Dia mengatakan "tidak ada server ArcGIS" - hanya Apache langsung, jika tidak, itu sederhana, seperti yang Anda katakan.
Herb
Terima kasih Michael. Karena ubin tidak ada di Server ArcGIS atau dengan cara apa pun dilayani oleh Server ArcGIS. Ini adalah ubin khusus kami yang saat ini dilayani oleh mesin yang menjalankan Apache yang dikelola oleh kami. Mengapa? Kami memiliki berbagai aplikasi web menggunakan API Google maps dan API ArcGIS untuk Flex yang menggunakan ubin ini. Dan alangkah baiknya untuk hanya membonceng kembali infrastruktur ini dalam AddIn Desktop kami. Jika melayani petak kami sebagai layanan peta yang diterbitkan melalui ArcGIS Server adalah satu-satunya cara untuk melakukan ini, tidak apa-apa - hanya ingin tahu itu di muka.
Josh
(Ups, dioleskan pada titik peluru ketiga Anda.) Anda dapat mencoba menyusun gambar sedemikian rupa sehingga Anda dapat meminta ubin sesuai kebutuhan (nama direktori X / Y, pencarian XML, dll.), Tetapi pada dasarnya Anda akan menulis "server ubin gambar" Anda sendiri dari awal. Akan jauh lebih mudah untuk membiarkan alat pra-tulis melakukan tugasnya (jika Anda memiliki akses) daripada menulisnya sendiri.
Michael Todd

Jawaban:

8

Saya pikir Anda sedang mencari mengimplementasikan lapisan kustom. Saya tidak tahu bagaimana lagi Anda akan membuat data di dalam ArcMap. Di luar latihan akademis murni, saya belum melakukannya. Ada halaman informasi pemula yang tersedia di sini , dengan daftar antarmuka minimal yang perlu Anda implementasikan. Di sisi positifnya, ada sampel pengembang. Sisi buruknya adalah Anda memasuki wilayah pengembangan yang tidak sepele. Menyenangkan, tetapi tidak sepele.

Atau Anda bisa melihat apa yang telah dilakukan oleh orang-orang di proyek codeplex ArcBruTile , yang terlihat sangat mengerikan seperti apa yang Anda coba.

Herba
sumber
Ya, lapisan khusus adalah caranya. Ini bukan hal sepele, tetapi juga bukan tugas yang menakutkan. Karena Anda akan menggambar raster dan bukan vektor, bagian yang paling sulit adalah menggambar bitmap di tempat yang tepat pada konteks perangkat Win32. Saya juga sangat merekomendasikan semacam logika cache dalam memori.
Petr Krebs
@petr_k - Tepat pada uang dengan caching menjadi penting - lalu lintas jaringan akan mematikan kinerja Anda. Orang-orang di situs codeplex direferensikan (mengklaim) telah berurusan dengan ini. Saya belum melihat-lihat kode mereka untuk melihat bagaimana mereka memutuskan berapa lama bertahan pada ubin.
Herb
Tuan-tuan, terima kasih. @Herb khususnya, terima kasih banyak untuk tautan codeplex ke proyek ArcBruTile. Memang terlihat seperti apa yang kami coba lakukan. Saya telah memindai kode, cache tampaknya ditangani dengan terlebih dahulu mencoba memuat ubin dari disk. Tidak ada? Kemudian muat di web kemudian tulis ke disk.
Josh
@Josh - Senang membantu - proyek ArcBruTile juga menyenangkan bagi saya. Maukah Anda menandai pertanyaan "dijawab"?
Herb
1

Addins adalah untuk fungsionalitas dasar dan kustomisasi seperti Layers Kustom akan memerlukan solusi COM dan dapat dilakukan dengan menggunakan ArcObjects & .NET. Namun, ini tidak dapat dilakukan menggunakan Addins.

Devdatta Tengshe
sumber
Mungkin, tapi kami bisa menyelesaikan sedikit di tingkat AddIn mengingat ArcObjects API untuk ArcGIS 10. Demo dari AddIn kami: youtube.com/watch?v=m2YRrCk3aKI
Josh