Vairāk

Ģeoprocesēt karšu pakalpojumu?


Es strādāju pie lietojumprogrammas, kurā vēlamā funkcionalitāte ir lietotājiem, lai sāktu ar kopainu (ti, ar vienu kartes slāni) un pamazām pievienotu arvien jaunus nosacījumus, lai parādītu tikai apgabalu, kas tos visus apmierina (ti, visi atlasītie slāņi). Es to varēju izdarīt ar klienta Javascript, taču tam ir dažas veiktspējas problēmas, un ideālā gadījumā es vēlētos to apstrādāt serverī.

Dati, ar kuriem es strādāju, jau ir sagatavoti kā daudzstūra slāņa vai rastra slāņa karšu pakalpojumi. Vai es varu iegūt datus tieši no šiem pakalpojumiem apstrādei?


Es pieņemu, ka vēlaties izmantot ģeoprocesēšanu apkalpošana savā tīmekļa lietotnē kopā ar karšu pakalpojumu. Es pasniedzu Creating GP Services prezentāciju ESRI UC un parādu šī demonstrāciju. Es to uzskatu par vismazāk iespējamo scenāriju attiecībā uz ģimenes ārstu pakalpojumiem, kas patērē datus, tāpēc tas nav labi dokumentēts. Tas nozīmē, ka varat izmantot ģeoprocesūras pakalpojumu, lai strādātu ar funkciju pakalpojumu. Funkciju pakalpojums pārsūtīs funkcijas uz GP pakalpojumu, lai to varētu izmantot. Tas prasa noteiktu iestatīšanu gan rīkā, gan jūsu JavaScript lietojumprogrammā.

Pirmkārt, jūsu rīkam būs jāveic a virkne kā ievadi. Šī virkne attēlos URL pakalpojumam ar vaicājuma parametriem. Piemēram, tas būtu jūsu rīka sākuma kods:

inFS = arcpy.GetParameterAsText (0) featureset = arcpy.FeatureSet () featureset.load (fs) cnt = arcpy.GetCount_management (featureset) # Vai kāds rīks / darbplūsma

Tīmekļa lietotne nodos šādu URL: (ņemiet vērā, ka šeit vaicājums ir 1 = 1 un f = json ir kritisks.)

http: // serveris: 6080 / arcgis / rest / services / fs1 / FeatureServer / 0 / query? kur = 1% 3D1 & returnGeometry = true & returnIdsOnly = false & returnCountOnly = false & f = json

Pēdējā daļa ir pati tīmekļa lietotne. Ar parametru ar nosaukumu "inputFS" paša rīka iekšpusē šis kods ir JS:

vals = "url to fs ... JS kods to iestata" gp = jauns ģeoprocesors (gpServiceUrl); var params = {"inputFS": vals}; console.log (params); gp.submitJob (params, gpJobComplete, gpJobStatus, gpJobFailed);

Runājot par RASTER slāni ... jums ir jāizmanto rīks Make Image Service Layer, bet ņemiet vērā, ka šis rīks darbojas tikai ar ImageService, nevis karšu pakalpojumu ar rastru. Ievades parametrs atkal būtu virkne (pats URL).

Strādājot ar to, ņemiet vērā, ka karšu / funkciju pakalpojumam un ģimenes ārsta pakalpojumam patiešām nav nekā kopīga. Jā, jūs vēlaties, lai viņi patērē tos pašus pamatā esošos datus. Bet katrs dienests pats par sevi nezina. Tā ir tīmekļa lietotne, kas salīmē šos 2 pakalpojumus kopā, nododot URL, kamēr ģimenes ārsta pakalpojums ir pareizi iestatīts tā lietošanai.


Skatīties video: processing wheat into flour (Oktobris 2021).