Merancang API untuk data spasial

10

Saya sedang mempertimbangkan untuk mencoba membuat API sehingga saya dapat membuat beberapa dataset spasial tersedia untuk kolega untuk dianalisis.

Bagian dari pekerjaan saya adalah menganalisis dan menyiapkan data yang kemudian dapat digunakan untuk analisis lebih lanjut oleh orang lain. Pekerjaan (saat ini pada skala yang lebih kecil dan kurang canggih) mirip dengan walkscore tetapi memang melibatkan beberapa set data yang sangat besar. Ada peningkatan pembatasan tentang bagaimana saya dapat membagikan data asli, tetapi karya turunan saya dapat dibagikan. Saya telah memikirkan tentang cara terbaik untuk membagikan hasil analisis saya (di luar meneruskan dataset besar) dan berpikir bahwa API akan menjadi salah satu pendekatan. Hal-hal apa saja yang harus saya pikirkan ketika membuat API? Apakah ada spesifikasi desain yang bisa saya ikuti?

Visi saya terdengar lebih muluk daripada saat ini, tetapi saya pikir itu akan menjadi kerangka kerja yang berguna untuk dipertimbangkan sejak awal dalam pekerjaan ini.

djq
sumber
1
Apakah Anda mencari API di luar kotak seperti ArcGIS flex viewer atau sesuatu yang ingin Anda sesuaikan lebih lanjut?
artwork21
Saya ingin mencoba dan menyesuaikan sesuatu (atau beberapa hal). Saat ini saya menggunakan PostGIS untuk penyimpanan dan analisis data, dan mapserver (tetapi tidak berarti seorang ahli menggunakan keduanya). Saya bertanya-tanya apa langkah selanjutnya untuk membuat ini dapat diakses oleh orang lain dan untuk mencari tahu apa yang harus saya pelajari.
djq

Jawaban:

7

Dengan API, saya kira Anda maksudkan semacam akses jaringan ke data Anda melalui hubungan jenis HTTP POST / GET seperti Google Maps API? Apakah itu data raster atau vektor? Saya akan menganggap vektor untuk keperluan diskusi ini. Ini sebenarnya hanya protokol komunikasi daripada Antarmuka Pemrograman Aplikasi.

Anda tidak perlu merancang apa pun dari awal, karena ada banyak protokol standar (daripada API per se, saya punya sedikit bugbear tentang memanggil hal-hal API ketika mereka tidak, tapi saya tidak akan membuat Anda bosan! ). Jika Anda hanya tertarik untuk menyajikan data vektor hanya-baca untuk klien Anda, Anda hanya perlu Server WFS yang berada di depan database Anda. Saya sudah pernah menggunakan GeoServer di masa lalu, tapi saya lebih suka lightweigtness dari TinyOWS . Keduanya melakukan pekerjaan yang sama: mengkonfigurasinya untuk mengakses database Anda dari data yang diturunkan, mengaturnya berjalan sebagai bagian dari server web ( Apache adalah umum, tetapi saya lebih suka lighttpd), dan di sana Anda memilikinya. QGIS dapat memuat data dari server WFS, dan tidak diragukan lagi Arc dapat. OpenLayers juga memiliki kapabilit rendering WFS untuk solusi berbasis browser. Pada level yang lebih rendah, GDAL dapat digunakan untuk mengonversi data dari WFS ke format vektor apa pun yang didukung OGR.

Jika Anda ingin kemampuan pengeditan, GeoServer dan TinyOWS mendukung WFS-T, memungkinkan pengguna Anda untuk mengunggah analisis mereka kembali ke server Anda.

Membuat API Anda sendiri benar-benar mengalahkan tujuan memiliki standar ini di tempat pertama, kecuali jika Anda sangat terspesialisasi dan Anda memiliki persyaratan khusus seperti kinerja, dan er ... hanya itu yang bisa saya pikirkan. Melewati rute ini, tanpa sumber daya yang masuk akal adalah tugas yang berat - walaupun bukan tidak mungkin -.

MerseyViking
sumber
Terima kasih atas pemikiran Anda - mungkin saya salah menggunakan API dalam pertanyaan saya. Saya tertarik pada layanan WMS dan WFS (baik raster dan vektor); Penjelasan Anda sangat berguna karena saya memikirkan hal ini lebih lanjut.
djq
6

Anda memiliki dua pilihan; pilihan yang akan tergantung pada model data Anda, jenis data yang akan dilayani, model penggunaan yang dimaksud, kontrol akses serta platform pengiriman (Web, HTML, Java Server, IIS, kumpulan data statis).

  1. Perpanjang produk yang ada untuk mengkonsumsi kumpulan data Anda. Anda bisa melihat hosting instance GeoServer di komputer Anda (atau khusus?) Dan mengirimkan data Anda dengan cara itu. Jika data Anda bukan format yang dapat dipahami GeoServer, Anda memiliki opsi untuk menulis paket Java untuk memberikan kemampuan itu. Keuntungannya, adalah Anda memiliki standar yang terdefinisi dengan baik untuk memberikan informasi spasial untuk visualisasi (WMS) dan manipulasi / pengunduhan fitur (WFS), serta manfaat lain seperti geocaching dan ubin.
  2. Ambil opsi API Anda dan Anda memiliki kontrol penuh atas bagaimana pengguna berinteraksi dengannya. Yang datang ke tugas pertama Anda, Tentukan bagaimana Anda ingin pengguna berinteraksi dengan data Anda. Antarmuka ke data Anda ini akan menjadi kunci keberhasilan atau kegagalan. Jika antarmuka Anda terlalu terbuka, itu bisa menjadi kompleks dan tidak dapat digunakan, terlalu sederhana dan membatasi, lambat atau tidak ada adopsi. Apa pun caranya, menentukan cara Anda ingin pengguna mengakses data Anda, dan cara Anda mengantisipasi pengguna ingin menggunakan data Anda akan menjadi penting.

Selamat mencoba, API bukanlah usaha kecil karena Anda perlu mempertimbangkan metode rilis dan siklus, perbaikan bug, pengujian. Semua ini berkontribusi terhadap kegunaan. Saya tidak mengatakan jangan lakukan itu, itu akan menjadi pengalaman hebat. Meskipun membangun di atas produk yang sudah ada bisa menjadi pengalaman positif juga.

OptimizePrime
sumber