Daha çox

ArcObejcts-də bir neçə cədvəl / xüsusiyyət sinifini tək geodatabase obyektinə necə birləşdirmək olar?

ArcObejcts-də bir neçə cədvəl / xüsusiyyət sinifini tək geodatabase obyektinə necə birləşdirmək olar?


Mənim layihəm, müəyyən bir masa və xüsusiyyət siniflərindən istifadə edən ArcGis uzantısıdır. İstəyirəm ki, bu struktur tək geodatabase verilənlər bazası kimi davransın, ona görə də istifadəçi öz sxeminin bir hissəsini silə bilməz. ArcGis-də bu funksionallıq Kadastr Parçasında mövcuddur. İstifadəçi üçün görünməyən bir neçə xüsusiyyət sinfi və cədvəl ehtiva edir. Bu, "Yeni İlişki Sınıfı dialoqunda" açıq şəkildə görülür.

Bu cür davranışı təmin etmək üçün hansı ArcObjects interfeyslərini / İş sahəsi uzantılarını tətbiq etməliyəm?


Hazırkı layihədə çalışdığımız bir neçə sinif / interfeys həll yolu kimi bir araya gəlmək üçün həyata keçirilmişdir.

Bu siniflərdən istifadə edərək aşağıdakı vəzifələri yerinə yetiririk:

  • Doğrulama / Basamaklı Davranış (Sınıf Genişləndirmə);
  • Daxili hissələri gizlətmək üçün IWorkspaceExtension;
  • ArcMap Extensions (istifadəçiyə bu cür əməliyyata davam etməyə imkan verən və ya icazə verməyən bəzi hadisələrin tutulması);
  • Kompleks yaratmaq əməliyyatları üçün Tapşırıqları redaktə edin;
  • Sinif uzantısı ilə sinxronlaşdırılan yaddaş içi önbellek (bu, yeniləmələri basarkən verilənlər bazasına gediş-gəlişi azaltmaq üçün istifadə olunur)

Şemada mövcud olduqlarını düşündüyümüz münasibətlər siniflərini istifadə etmək əvəzinə sonrakı sorğularla münasibətləri daha çox idarə edirik.

Buraya gedə biləcəyimiz maksimum məsafə, hər bir xüsusiyyət sinfi üzrə varsayılan davranışın əksəriyyətinə sahib olmaqdır, 'amma iş qaydalarımızı tətbiq edirik. Gedib kadastr şəbəkələri kimi bir məlumat növü yarada bildik, səylər nəticə verməyəcək: http://edndoc.esri.com/arcobjects/8.3/?URL=/ArcObjectsOnline/Samples/ArcMap/Layers/DatabaseLayers/DatabaseLayers.htm


Bir iş sahəsi uzantısını tətbiq edərək xüsusi cədvəlləri və / və ya əlaqə siniflərini gizlədə bilərsiniz. Daha spesifik olaraq, bu, IWorkspaceExtension.PrivateDatasetNames və IWorkspaceExtension.DataDictionaryTableNames tətbiqetmə yolu ilə uğur qazanmışdır. Konseptual iş sahəsi uzantılarına ümumi baxışı da yaxşıca oxuduğunuzdan əmin olun.

Bununla birlikdə, yeni bir məlumat dəsti tətbiq edə bilmədiyiniz üçün Cadastral Fabric-in daha çox davranışını təqlid etmək asanlıqla həyata keçirilmir. EsriDatasetType enumuna baxsanız, bunların birbaşa ArcGIS-də bişdiyini görərsiniz. Ekvivalent tətbiqetmələr təmin edəcək genişlənmə nöqtələri yoxdur.

Ən yaxşı seçiminiz, həllinizə aid məlumat dəstlərinizi gizlətmək və onlara təsir edən alətlər dəsti (ArcMap, ArcCatalog) təmin etməkdir.


Bunun üzərinə götürmək olduqca böyük bir vəzifə olacaq; saxlamağınız üçün öz interfeyslərinizi Geodatabase-ə yazmalı olduğunuza baxırsınız; həm də bütün əlaqələr məlumatlarına sahib olacaq və məlumatların bütövlüyünü qoruyacaq xüsusiyyətinizi təyin etmək üçün Həndəsəyə baxın.
ESRI-nin istifadə etdiyi Müəssisə DB-lərinin əksəriyyətində gördüyünüz kimi; heç biri DB münasibətlərinə və ya asılılıqlarına güvənmir; bu, abstraktlaşdırmağı və ümumi bir DB Access qatına sahib olmağı asanlaşdırır, buna görə də öz kodlarındakı bütün referans bütövlüyünü idarə edirlər (Kadastr / Parsel Çerçevesi kimi).
ESRI API-dən keçidləri və ya klonları istifadə edərək öz həndəsənizi yarada bilərsiniz; ancaq hər iki tərəfə də gedirsən; kodunuzda idarə etdiyiniz öz ESRI həndəsə obyektlərinizi (əsas obyektlərdən miras alacaqsınız) yaradacağınız üçün bu kiçik bir iş olmayacaq.
Mən .Net üçün əsas API sənədləri ilə qarışıq idim və sizə yaxşı bir başlanğıc nöqtəsi verə biləcəyim nümunə kodu belə yoxdur.


Videoya baxın: How to create a File Geodatabase, Feature Dataset and Feature Classes in ArcGIS Step by Step Video