Daha çox

ArcGIS Server JavaScript: xüsusiyyətdən kopyalanan xüsusiyyət

ArcGIS Server JavaScript: xüsusiyyətdən kopyalanan xüsusiyyət


İstifadəçiyə bir nöqtə əlavə etməyə imkan verən bir tətbiq var (bu vəziyyətdə boru qırılır) və bir xəttə (su kəməri) çırpın. Nöqtə xüsusiyyətindəki atributlardan birini sətirdən sətirdən eyni atributla əvvəlcədən doldurmağım istəndi. Proqram baxımından kifayət qədər sadə, nəzəri, lakin qəliz, inanıram. Yaxşı bir proqramçı olmadığımı da qeyd etməliyəm. GitHub CMV şablonunu da istifadə edirəm, ancaq CMV aləminin xaricində olduğu üçün orada yazmadım. Bəs bunu kimsə edibmi?


Yəqin ki, ya yaxşı bir proqramçı tapmaq, ya da JS oxumağa və anlamağa başlamaq istəyəcəksiniz.

Bunu etmənin əsas yolu ya birləşdirilən xüsusiyyəti tapmaq (hadisənin mülkiyyəti ola bilər) ya da digər təbəqədəki ən yaxın xüsusiyyəti tapmaq üçün əlavə etdiyiniz xüsusiyyətdən bir məkan sorğusu aparmaqdır (məsafə = 0 hesab edin) . Bunu bir .NET tətbiqetməsində edirəm və işim budur. Yeri gəlmişkən, tam psevdokod / gibberish şəklində.

// ümumiyyətlə bir nöqtəyə və ya başqa bir şeyə tıklayaraq şeylər əlavə edirəm // Siçan vurma hadisəmi idarə edirəm, x / y (xəritə və ya ekran koordinatları) əldə edirəm // yeni xüsusiyyət yaradın ... bunu onsuz da əldə edə bilərsiniz newFeature = new Point ( x, y); // xüsusiyyəti (lər) i ən yaxın şəkildə tapın - sorğu API-sindən asılı olaraq bir // tək və ya xüsusiyyətləri toplusunu qaytarırsa, yaxınFeatures = myJoiningLayer.GetFeaturesNearest (newFeature); // toplama nearFeature = myJoiningLayer.GetNearestFeature (newFeature); // tək // bir kolleksiya varsa, ən yaxınını tapmaq üçün onu təkrarlamaq lazımdır // əlavə bir məsafə sütunu ola bilər (ESRI alətlərindən bəziləri bunu edə bilər) it) // və ya hər bir xüsusiyyəti fərdi olaraq mənbə ilə müqayisə etməyə ehtiyac ola bilər myJoiningFeature =; // bir xüsusiyyət əldə etmək üçün lazım olan hər hansı bir proses // sonra xüsusiyyətinizi alırsınız və sahə dəyərlərini birindən digərinə köçürürsünüz (obyekt) myJoiningFeature.fieldValues-dəki dəyər) {newFeature.valueField = dəyər; // bu obyektin mutatoruna necə daxil olacağınızı müəyyənləşdirməlisiniz} // xüsusiyyətinizi qeyd edin və tamamlayın

Bu bir çox səs-küylü ola bilər, ancaq sona çatmaq üçün hansı prosesi aparmalı olduğunuz barədə bir fikir verməlidir. Fərqli API kodlarını çox fərqli şəkildə gördüm. Çox güman ki, serverinizdə bir geo-işləmə xidməti qurmağı asanlaşdıracaqsınız (məlumatları yerləşdirirsinizsə) və ya köçürülmüş dəyərləri olan yeni bir xüsusiyyəti və ya təhlil edilən və yeni dəyərlər oradan çıxarılaraq köçürülən bəzi JSON-u qaytarmaq daha asan olacaq. müştəri tərəfi.

Bunu da həyata keçirmək üçün çox sayda seçim var. Yazarkən həndəsəni yeni nöqtənizdən götürüb yenidən an kimi ötürməyi düşündümIdentifyTasknövlərin və əl ilə şərh olunan qaytarma JSON-un (və ya başqa bir məlumat dəstinin) tutulması.

Ümumiyyətlə, bunu anlaya bilməyəcəksiniz və istədiyiniz atributları götürmək üçün məlumatları (məkan qoşulma) sonrakı emaldan daha asan tapa bilərsiniz. Bunu toplama proqramımda dərhal edirəm, çünki gözləmək əvəzinə bu əlaqəni qurmalıyıq, amma vəziyyətiniz fərqli ola bilər.


Videoya baxın: ArcGIS Enterprise: Managing ArcGIS Server