REST का उपयोग करके GeoServer में एक परत बनाएँ


16

इस प्रश्न के संभावित समाधान के भाग के रूप में, मैं चाहता हूँ कि किसी यूजर के साथ SQL स्टेटमेंट की आपूर्ति करने वाले REST के माध्यम से जियोसेवर में एक परत बनाएं।

पढ़ना मुझे लगता है कि मैं एक फीचर टाइप बनाऊंगा और उसे प्रकाशित करूंगा ? मुझे यह सब REST में करने की आवश्यकता है। क्या किसी के पास कोई कोड उदाहरण हैं?


क्या ऐसा लगता है कि बाकी इंटरफ़ेस के माध्यम से एक परत जोड़ना संभव नहीं है, क्या आपने इसे अंत में हल किया था? मुझे त्रुटि मिलती है: HTTP स्थिति 405 - अनुरोधित संसाधन के लिए निर्दिष्ट HTTP विधि की अनुमति नहीं है
a1an

जवाबों:


41

कई चीजें हैं जो आप जियोस्वर रेस्ट एपीआई के साथ कर सकते हैं जो विशेष रूप से प्रलेखित नहीं हैं और इसके लिए कोड उदाहरण नहीं हैं। यहां उन लोगों से निपटने की रणनीति है।

सबसे पहले, प्रलेखन में उदाहरणों के साथ शुरू करें । सुनिश्चित करें कि आप परिचित हैं कि आप XML या JSON के साथ HTTP POST का उपयोग करके एक सरल नई परत या कार्यक्षेत्र कैसे बना सकते हैं।

फिर, जियोस्वर यूआई के माध्यम से, मैन्युअल रूप से उस वस्तु को बनाएं जिसकी आपको आवश्यकता है, जिसके लिए कोई दस्तावेज नहीं है (इस मामले में, एक सुविधा प्रकार)।

अंत में, मैन्युअल रूप से GeoServer REST इंडेक्स ( http://your-server/restया http://your-server/geoserver/rest) में ब्राउज़ करें । अनुक्रमणिका के माध्यम से ब्राउज़ करें जब तक कि आप उस सुविधा प्रकार को न खोज लें जो आपने अभी बनाया था। इस संसाधन के URL पर ".xml" या ".json" जोड़ें, और आपको इसका XML या JSON प्रतिनिधित्व दिखाई देगा।

यह प्रतिनिधित्व है कि एपीआई के माध्यम से फीचर प्रकार बनाने के लिए आपको POST की क्या आवश्यकता होगी। प्रतिनिधित्व का URL वह URL है जिसे आपको पोस्ट करने की आवश्यकता होगी (उदाहरण के लिए http://your-server/geoserver/rest/..../myFeatureTypeName.json)।

आप इस रणनीति का उपयोग यह पता लगाने के लिए कर सकते हैं कि कैसे जियोसेवर में किसी भी संसाधन को प्रोग्रामेटिक रूप से बनाया या कॉन्फ़िगर किया जाए।


2
धन्यवाद! आसान जवाब और बस मुझे एक और 2 घंटे के आसपास मज़ाक करने से बचाया
रागी यासर बुरहुम

4
इसके अलावा, बहुत सारे मापदंडों को छोड़ दिया जा सकता है, और जियोसेवर उन्हें (यूआई की तरह) पता लगाएगा। जैसे। बाउंडिंग बॉक्स
rcoup

1
वाह - यह मैंने देखा है का सबसे अच्छा वर्णन है।
कीवेली

3
जियोसर्वर 2.10.2 का उपयोग करते हुए, मैंने पाया कि मुझे featuretypesस्टोर के समापन बिंदु पर पोस्ट करने की आवश्यकता है , जैसेgeoserver/rest/workspaces/<workspacename>/datastores/<storename>/featuretypes/
स्टीफन लीड

स्पष्ट वर्कफ़्लो विवरण, प्रासंगिक लिंक शामिल थे। Upvoted! :)
टोनी गिल

10

मुझे पता है कि यह एक पुराना सवाल है, लेकिन जैसा मैं था वैसा ही किसी और में उलझा हुआ है। महत्वपूर्ण बात यह है कि आप से एक परत नहीं बना सकते है // geoserver / बाकी / परतों: http endpoint।

यदि आप एक वेक्टर परत जोड़ना चाहते हैं, तो यह सुविधा प्रकार संसाधन के माध्यम से किया जाता है:

http://docs.geoserver.org/stable/en/user/rest/api/featuretypes.html

एक पोस्ट:

/workspaces/<ws>/datastores/<ds>/featuretypes

वह कार्यक्षेत्र कहाँ है जो आप चाहते हैं कि सुविधा प्रकार के अंतर्गत रहना है, और उपयोग करने के लिए डेटा स्रोत एक नई वेक्टर सुविधा प्रकार, अर्थात परत बनाएगा।

अगर आप सोच रहे हैं कि आप POST क्या कर सकते हैं, तो @Rohan सही है, सबसे आसान तरीका है मौजूदा फीचर प्रकार के लिए क्वेरी करना, IE http http

/workspaces/<ws>/datastores/<ds>/featuretypes/<ft>.json 

जो मौजूदा फीचर प्रकार को json के रूप में लौटाएगा।


1

उपयोगकर्ता पुस्तिका में आपका सबसे अच्छा संदर्भ है। http://docs.geoserver.org/stable/en/user/rest/examples/index.html


हाँ, लेकिन SQL कथन से एक सुविधा प्रकार बनाने के लिए कोई उदाहरण नहीं है ... मुझे उम्मीद थी कि किसी के पास साझा करने के लिए उदाहरण कोड था।
CaptDragon

उस उपयोगकर्ता गाइड की भारी कमी है।
कीवेली

0

यदि आप जावा को समझते हैं, तो आप इस सरल कोड पर एक नज़र डाल सकते हैं, जो जियो सर्वर पर सभी प्रकार के संचालन करने के लिए REST का उपयोग करता है।


0

एक परत जोड़ने के लिए, एक डेटास्टोर और एक फीचर टाइप परिभाषित किया जाना चाहिए। मान लें कि वे पहले से ही साथ एक शैली के साथ मार्गदर्शिका में बताए अनुसार पर परिभाषित कर रहे हैं ( http://boundlessgeo.com/2012/10/adding-layers-to-geoserver-using-the-rest-api/ एक परत एक जोड़ने के लिए PUT अनुरोध को जियोसेवर में भेजना होगा:

http://geoserver.host/geoserver/rest/layers/NEW_LAYER_NAME

डेटा सामग्री जैसे:

<layer>
  <name>NEW_LAYER_NAME</name>
  <type>VECTOR</type>
  <defaultStyle>
    <name>myStyle</name>
  </defaultStyle>
  <resource class="featureType">
    <name>myFeature</name>
  </resource>
</layer>

वह ब्लॉग एक मौजूदा परत में एक शैली जोड़ने के बारे में बात करता है, जो समझ में आता है कि PUT के लिए क्या डिज़ाइन किया गया है। आप इस तरह एक नई परत नहीं बना सकते। यहाँ डॉक्स हैं: docs.geoserver.org/stable/en/user/rest/api/layers.html , आराम करने के लिए एक PUT / लेयर एक 405 लौटाएगा। A PUT / to / rest / layer / <मौजूदा -layer > को संशोधित करेगा। विशेष परत, एक नया नहीं बना।
५ation
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.