Daugiau

Erdvinių duomenų API kūrimas


Svarstau bandymą sukurti API, kad galėčiau kolegoms pateikti keletą erdvinių duomenų rinkinių analizei.

Dalis mano darbo buvo analizuoti ir paruošti duomenis, kuriuos vėliau kiti galėtų panaudoti tolesnei analizei. Šis darbas (nors šiuo metu yra mažesnio masto ir ne toks sudėtingas) yra panašus į „Walkscore“, tačiau apima daugybę duomenų rinkinių. Yra vis daugiau apribojimų, kaip galiu dalytis originaliais duomenimis, tačiau mano išvestinius darbus galima dalytis. Galvojau apie tai, kaip geriausia pasidalinti savo analizės rezultatais (išskyrus didelių duomenų rinkinių perdavimą) ir maniau, kad API būtų vienas iš būdų. Apie kokius dalykus turėčiau galvoti kurdamas API? Ar yra dizaino specifikacijų, kurių galėčiau laikytis?

Mano vizija skamba šiek tiek grandioziškiau, nei yra šiuo metu, tačiau manau, kad tai būtų naudinga sistema, kurią reikėtų apsvarstyti šio darbo pradžioje.


Pagal API manau, kad turite tam tikrą tinklo prieigą prie savo duomenų per HTTP POST / GET tipo reikalą, pvz., „Google Maps“ API? Ar tai bus rastriniai, ar vektoriniai duomenys? Šios diskusijos tikslais prisiimsiu vektorių. Tai iš tikrųjų yra tik komunikacijos protokolas, o ne „Application Programming Interface“.

Jums nereikės nieko kurti nuo nulio, nes yra daugybė standartinių protokolų (o ne API per se, aš turiu šiek tiek klaidos apie tai, kaip vadinti dalykus API, kai jie nėra, bet aš jums nenuobodu! ). Jei jus tiesiog domina tik skaitymo vektorinių duomenų pateikimas savo klientams, jums tiesiog reikia WFS serverio, kuris yra priešais jūsų duomenų bazę. Anksčiau naudojau „GeoServer“, bet man labiau patinka „TinyOWS“ lengvumas. Abu atlieka tą patį darbą: sukonfigūruokite juos, kad pasiektų jūsų išvestų duomenų duomenų bazę, nustatykite, kad jie veiktų kaip žiniatinklio serverio dalis („Apache“ yra įprasta, bet man labiau patinka „lighttpd“), ir jūs turite tai. QGIS gali įkelti duomenis iš WFS serverio ir, be abejo, tai gali padaryti ir „Arc“. „OpenLayers“ taip pat turi WFS pateikimo galimybes naršyklės sprendimui. Žemesniame lygyje GDAL gali būti naudojamas konvertuoti duomenis iš WFS į bet kokį vektorinį formatą, kurį palaiko OGR.

Jei norite redagavimo galimybių, tiek „GeoServer“, tiek „TinyOWS“ palaiko WFS-T, suteikdami vartotojams galimybę savo analizę įkelti atgal į jūsų serverį.

Sukūrę savo API, tikrai nesugebate turėti šių standartų visų pirma, nebent esate neįtikėtinai specializuotas ir turite konkrečių reikalavimų, tokių kaip našumas ir pan ... tai yra viskas, ką galiu sugalvoti. Nuvykti šiuo keliu be protingo išteklių kiekio yra užduotis - nors ir ne neįmanoma.


Jūs turite keletą galimybių; kurio pasirinkimas priklausys nuo jūsų duomenų modelio, teikiamų duomenų tipo, numatomo naudojimo modelio, prieigos kontrolės, taip pat nuo pristatymo platformos (žiniatinklis, HTML, „Java Server“, IIS, statinių duomenų rinkinys).

  1. Išplėskite esamą produktą, kad sunaudotumėte savo duomenų rinkinį. Galite pažvelgti į „GeoServer“ egzemplioriaus prieglobą savo kompiuteryje (arba tam skirtame?) Ir tokiu būdu pateikti savo duomenis. Jei jūsų duomenys nėra „GeoServer“ suprantamo formato, turite galimybę parašyti „Java“ paketą, kad suteiktumėte tą galimybę. Privalumas yra tas, kad turite gerai apibrėžtą erdvinės informacijos pateikimo vizualizacijai (WMS) ir funkcijų valdymui / atsisiuntimui (WFS) standartą, taip pat kitus privalumus, pvz., Geografinę talpyklą ir plytelių klojimą.
  2. Pasirinkite savo API parinktį ir galėsite visiškai kontroliuoti, kaip vartotojai sąveikauja su ja. Tai yra jūsų pirmoji užduotis, Apibrėžkite, kaip norite, kad vartotojai sąveikautų su jūsų duomenimis. Ši jūsų duomenų sąsaja bus raktas tarp sėkmės ar nesėkmės. Jei jūsų sąsaja yra per atvira, ji gali tapti sudėtinga ir netinkama naudoti, per paprasta ir ribojanti, lėta arba jos negalima visiškai pritaikyti. Bet kokiu atveju bus svarbu apibrėžti, kaip norite, kad vartotojai pasiektų jūsų duomenis, ir tai, kaip jūs manote, kad vartotojai norės naudoti jūsų duomenis.

Sėkmės, API nėra maža įmonė, nes reikia apsvarstyti išleidimo būdą ir ciklus, klaidų taisymus, testavimą. Visa tai prisideda prie naudojimo. Nesakau, kad to nedarykite, tai būtų puiki patirtis. Nors kurti esamą produktą taip pat gali būti teigiama patirtis.


Žiūrėti video įrašą: Interaktyvaus atlaso kūrimas (Spalio Mėn 2021).