Daha çox

Xarici WFS qatını REST API istifadə edərək geoserverə əlavə edin


REST API vasitəsilə geoserverimə məlumat mənbəyi kimi xarici bir WFS əlavə etməyə çalışıram. Artıq yeni bir iş sahəsi və WFS məlumat mənbəyi əlavə etdim.

İndi geoserverdə həmin WFS-dən bir qat dərc etmək istəyirəm. Eyni WMS üçün işləyir, lakin WFS xidmətləri üçün bir az fərqli və zəif sənədləşdirilmiş görünür.

Xahiş etməyə çalışdım

Http://myhost.com/geoserver/rest/workspaces/my_workspace/datastores/my_datastore/layers qoyun

bu yazıda təklif olunduğu aşağıdakı məzmun:

 my_layer VEKTOR  nöqtə  myFeature

Bu mənim üçün nəticə vermir, 500 alıram: org.geoserver.catalog.impl.LayerInfoImpl org.geoserver.catalog.DataStoreInfo-ya aktarılamıram.

İndi əvvəlcədən qat üçün bir FeatureType yaratmağın tələb olunduğuna əmin deyiləm. Qatı avtomatik olaraq WFS qatından xüsusiyyət növünü aşkarladığı geoserver UI vasitəsilə əl ilə əlavə etdim. REST API vasitəsilə eyni davranışı istərdim.

Kimsə məni düzgün yanaşmaya apara bilərmi?

RED:

Bəlkə də işləyəcək, mən bir dəfə fituretip yaratmışdım. Uyğunlaşdırmaq üçün əlimdən yaradılan təbəqədən xüsusiyyət tipi təsvirini almağa çalışdım. Ancaq xüsusən WFS-dən əl ilə featuretype.xml-ə yerləşdirməli olduğum bir çox məlumat var. DescripeFeatureType çıxışını orijinal WFS-dən bu sorğuya daxil etməyə çalışdım:

POST / geoserver / rest / workspaces / my_workspace / datastores / my_datastore / featuretypes

Lakin sintaksisdən şikayətlənir, çünki xsd: şema etiketi

Əmin deyiləm, gözlənilən FeatureType sintaksisidir?


Bir Layer yaratmadan əvvəl bir FeatureType yaratmalısınız (yəni yayımlamaq). Əgər əvvəlcədən bir test təbəqəsi yaratmısınızsa, onda bu xüsusiyyətin növünü götürün (http://geoserver.ianturton.com/rest/workspaces/topp/datastores/bgs/featuretypes/test_uk_625k_mapped_feature.xml kimi), ancaq edə bilməlisiniz bunun çoxunu silin və doldurmaq üçün GeoServer-ə buraxın.

 test_uk_625k_mapped_feature test_uk_625k_mapped_feature  topp  uk_625k_mapped_feature [email protected] (dəyər: Yalnız test üçün, lang: )  uk_625k_mapped_feature xüsusiyyətləri PROJCS ["OSGB 1936 / British National Grid", GEOGCS ["OSGB 1936", DATUM ["OSGB 1936", SPHEROID ["Airy 1830", 6377563.396, 299.3249646, Authority ["EPSG", "7001"]], TOWGS84 [ 446.448, -125.157, 542.06, 0.15, 0.247, 0.842, -20.489], YETKİ ["EPSG", "6277"]], PRIMEM ["Greenwich", 0.0, OTORITY ["EPSG", "8901"]], UNIT ["dərəcə", 0.017453292519943295], AXIS ["Geodezik uzunluq", EAST], AXIS ["Geodezik enlem", ŞİMALİ], Səlahiyyət ["EPSG", "4277"]], PROJEKSİYA ["Transverse_Mercator", YETKİ [[EPSG "," 9807 "]], PARAMETER [" central_meridian ", -2.0], PARAMETER [" enlem_origin ", 49.0], PARAMETER [" scale_factor ", 0.9996012717], PARAMETER [" false_easting ", 400000.0], PARAMETER" , -100000.0], UNIT ["m", 1.0], AXIS ["Easting", EAST], AXIS ["Northing", NORTH], Authority ["EPSG", "27700"]] EPSG: 27700  -132576.78915711527 743466.6249987332 -15669.960592884949 1248847.1762802668 EPSG: 27700  -11.801005644638966 4.349696858682689 49.5245056714837 61.11839723246307 GEOGCS ["WGS84 (DD)", DATUM ["WGS84", SPHEROID ["WGS84", 6378137.0, 298.257223563]], PRIMEM ["Greenwich", 0.0], UNIT ["derece", 0.017453292519943295], AXIS ["Geode ", EAST], AXIS [" Geodezik enlik ", ŞİMALİ]] FORCE_DECLARED doğru  bgs  0 0 yalan yalan yalan   uuid 1 1 doğru java.lang.String  lex 1 1 doğru java.lang.String  rcs 1 1 doğru java.lang.String  lex_rcs 1 1 doğru java.lang.String  the_geom 0 1 doğru com.vividsolutions.jts.geom.Geometry

Təcrübə və işləyərkən növbəti şəxs üçün sənədləri yeniləyin.


Nəhayət, iantın cavabı məni hədəfə apardı. Tamam üçün gördüklərimi göndərirəm:

Məlumat mənbəyi yaradıldıqdan sonra WFS təbəqələri haqqında əsas məlumatlar geoserverə məlumdur. Buna görə yalnız etməli idim

POST / geoserver / rest / workspaces / my_workspace / datastores / my_datastore / featuretypes

WFS qatının adı ilə yayımlamaq istədim

qat_adimi_ uzaqdan_wfs

Bütün əlavə məlumatlar geoserverin özü tərəfindən yaradılır, hətta müvafiq qat avtomatik olaraq yaradılır, buna görə də bu nöqtədə işimizi bitirdik.

Geoserver DescripeFeatureType çıxışı yeni təbəqədən çıxdığına görə bu, mənim üçün çox qarışıq idi.

http: // host / geoserver / my_workspace / wfs? service = WFS & version = 1.1.0 & request = DescripeFeatureType & featureType

gözlənilən nəticə kimi görünən bir xsd-şeması ilə cavab verir. Ancaq mən də xahiş edə bilərəm

http: //host/geoserver/rest/workspaces/my_workspace/datastores/my_datastore/featuretypes/my_layername.xml

xüsusiyyət mənbəyi haqqında əlavə məlumat daxil olmaqla xml formatında xüsusiyyət növü təsvirini qaytarır.