Cara menggunakan ESRI JS API untuk memetakan Jenis-jenis Spasial SQL Server tanpa ArcGIS Server

8

Saya telah mendengar tentang orang yang menggunakan API Javascript ESRI untuk membuat peta web dengan data spasial dari SQL Server atau RDBMS lainnya. Dari apa yang saya tahu, mereka tidak menggunakan ArcGIS Server sebagai middleware. Secara khusus, saya baru-baru ini mendengar tentang perusahaan yang menggunakan database SQL Server dengan tipe spasial dan Kerangka Entitas untuk menghubungkan database ke aplikasi, tetapi kemudian mereka menggunakan ESRI JS API di ujung depan untuk membuat data.

Ini adalah sesuatu yang sangat menarik bagi saya karena saya telah bekerja dengan SQL Server, Entity Framework, ASP.Net, dan JS API secara terpisah dan saya tidak memiliki akses ke ArcGIS Server. Apakah ada yang tahu tentang arsitektur atau alur kerja tertentu untuk hanya menggunakan JS API sebagai ujung depan untuk backend non ESRI?

Brian
sumber
1
Jawaban singkatnya adalah mengirim data sebagai JSON dari suatu layanan. Tetapi untuk melihat apakah itu mungkin, Anda harus menjawab pertanyaan seperti: Data apa yang ingin Anda tampilkan di peta? Berapa banyak fitur? berapa banyak lapisan?
Devdatta Tengshe
1
Opsi lain adalah menggunakan Geoserver untuk menyajikan data yang disimpan dalam MS SQL Server: docs.geoserver.org/2.1.3/user/data/sqlserver.html
Devdatta Tengshe
@DevdattaTengshe - Jika saya membuat layanan JSON, apakah saya memerlukan struktur JSON saya untuk meniru struktur yang digunakan oleh JS API. Misalnya, apakah saya perlu menyajikan tabel saya sebagai FeatureLayerobjek? Sekarang saya sedang mengerjakan proyek menggunakan ArcGIS Online dan JS API. Masalahnya adalah bahwa saya tidak dapat melakukan pemrosesan dalam AGOL sehingga setiap perhitungan harus dilakukan sisi klien. Saya bekerja dengan hanya beberapa lapisan, tetapi beberapa dari mereka dapat memiliki ratusan ribu fitur.
Brian
@DevdattaTengshe - Saya pernah mendengar tentang Geoserver dan benar-benar ingin mencobanya suatu hari nanti. Saya masih tidak yakin bagaimana saya akan menggunakan Geoserver dengan aplikasi web sisi server menggunakan sesuatu seperti ASP.Net dan Entity Framework. Saya takut bahwa saya akan mengalami batasan yang sama dengan Geoserver yang saya lihat dengan AGOL.
Brian
Ya, Anda harus meniru format ERSI JSON untuk interoperabilitas yang mudah.
Devdatta Tengshe

Jawaban:

5

Hanya untuk menambahkan lebih detail, ketika Anda membuat layanan untuk mengembalikan JSON dari SQL Server, Anda kemudian akan menggunakan objek kumpulan fitur untuk membuat layer baru di peta. Dari javascript, Anda akan mengambil atribut dan komponen spasial yang dikembalikan dari layanan Anda dan memformatnya ke format geometri Esri untuk membuat kumpulan fitur.

Semakin dekat server Anda mengembalikan format seperti format Esri, semakin sedikit parsing yang harus Anda lakukan pada klien. JSON cukup mudah diurai setelah Anda terbiasa.

Koleksi fitur yang ditampilkan adalah layer grafik pada peta. Anda dapat memiliki Esri atau peta basis publik lainnya di bawahnya. Satu masalah yang akan Anda miliki adalah kinerja ketika Anda mulai mendekati ribuan fitur - terutama jika mereka memiliki banyak simpul per geometri. Layanan fitur pada server ArcGIS mengembalikan maksimum 1000 catatan secara default.

Sejauh perhitungan, Anda harus melakukannya dengan SQL (memiliki ekstensi spasial) dalam database sebelum mengembalikannya ke klien. Jika Anda mencoba untuk menampilkan ratusan ribu fitur, Anda harus menggunakan Geoserver atau UMN Mapserver dan mengembalikannya sebagai WMS atau layanan ubin - Anda tidak dapat menampilkan banyak grafik di browser.

Lihat sampel ini di mana layer dibuat dari umpan data Flickr. Tidak ada Server ArcGIS yang terlibat - http://developers.arcgis.com/en/javascript/jssamples/fl_featureCollection.html

awesomo
sumber
1
Saya tertarik pada cara membuat layanan yang mengembalikan JSON dari SQL Server yang diformat dengan baik untuk Esri JS API untuk diuraikan.
MLowry
2
Tautan ini akan membantu Anda untuk membuat layanan yang mengembalikan Json arcgis.com/home/item.html?id=6d28a606369c43fd9a6f929541ae7c93
Gunner
@Gunner itu contoh yang bagus
awesomo