कैसे Geoserver WMS से USC अन्तरक्रियाशीलता प्राप्त करने के लिए?


12

मेरे पास भूस्वामी है जो डब्ल्यूएमएस के रूप में पत्रक में शेपफाइल्स की सेवा कर रहे हैं।

जब उपयोगकर्ता उपयोगकर्ता के WMS फीचर पर क्लिक करता है या क्लिक करता है तो मैं कैटलॉग मैप में WMS विशेषताओं के साथ पॉपअप दिखाता है।

मैंने मोम / पत्रक अन्तरक्रियाशीलता देखी है, लेकिन क्या यह WMS और पत्रक के साथ संभव है?

जवाबों:


14

आपको WMS GetFeatureInfo का उपयोग करके देखना चाहिए। यहाँ एक उदाहरण दिया गया है जिसमें ब्रेटन मैकब्राइड उपलब्ध है। GetFeatureInfo अनुरोध को ट्रिगर करने के लिए उपयोग की जाने वाली घटना है।


अब मैं Geoserver Freemarker टेम्प्लेट के साथ GetFeatureInfo डेटा फॉर्मेट करने पर काम कर रहा हूं। एक पत्रक मंडराना / माउसओवर इंटरैक्शन पर कोई विचार?
ज़र्बो

जैसा कि उदाहरण में दिखाया गया है कि आपको ऑनबोर्ड क्लिक किए गए ईवेंट को बदलने की कोशिश करनी चाहिए फ़ंक्शन: लाइन 41 »map.addEventListener ('क्लिक', ऑनपर्कक्लिक); मुझे लगता है कि आपको प्रलेखन पृष्ठ: लीफलेट.क्लाउडमाडेल.मैं.रजिस्ट्रेशन पृष्ठ पर एक नज़र डालनी चाहिए । जियोसर्वर फ्रीमार्कर टेम्प्लेट के बारे में, जिसका मैंने कभी इस्तेमाल नहीं किया, लेकिन इससे मुझे WMS GetFeatureInfo के बजाय GeoJson में फॉर्मेट किए जाने वाले रिस्पॉन्स के लिए WFS GetFeature अनुरोध करने के लिए अधिक समझ में आता है। क्लाइंट साइड में जियोसन ऑब्जेक्ट के साथ फीचर (एस) डेटा प्रदर्शित करने के लिए एक साधारण HTML मार्कअप का निर्माण करना कहीं अधिक आसान है।
पेड्रो मेंड्स

क्षमा करें .. कैटलॉग के साथ GetFeature बनाने का कोई तरीका नहीं है ..: / भले ही आप एक ही प्रभाव के लिए GeoJSON लेयर का उपयोग कर सकते हैं (फीचर की विशेषताएँ क्लाइंट पर पहले से ही उपलब्ध हैं)। लेकिन यह है कि मैं OpenLayers =) प्यार करता हूँ।
पेड्रो मेंड्स

हाय ज़ब्रो, क्या आपने इसे काम करने के लिए प्रबंधित किया है? मैं उसी को लागू करना चाहता हूं। क्या आप कुछ कोड स्निपेट साझा करना चाहेंगे?
प्रग्नेश पटेल

4
@PedroMendes उदाहरण के लिए लिंक दुर्भाग्य से टूटा हुआ है। क्या आप इसे अपडेट कर सकते हैं?
ustroetz

4

डेटासेट कितना बड़ा है, इसके आधार पर मुझे दो तरीकों से CAT अन्तरक्रियाशीलता मिलती है। मैं WMS getFeatureInfo के खिलाफ सिफारिश करूंगा, क्योंकि स्टाइल सभी सेट सर्वर-साइड है, जो कॉन्फ़िगर करने के लिए थकाऊ है। तो, यहाँ मेरे दो तरीके हैं:

  1. यदि डेटासेट छोटा है, तो बस पूरी चीज़ को एक वेक्टर के रूप में लोड करें (यदि आप कोर सक्षम हैं तो JSONP या JSON के रूप में अनुरोध करें)। उदाहरण के लिए: https://maps.gcc.tas.gov.au/dogexerciseareas.html और कोड: https://github.com/gccgisteam/maps-website/blob/master/dogexercisearear.html
  2. यदि डेटासेट बड़ा है, तो ऑनक्लिक रिक्वेस्ट करें और निकटवर्ती सुविधाओं (JSON या JSONP का उपयोग करके) के लिए वैक्टर लौटाएं। उदाहरण: https://maps.gcc.tas.gov.au/stormwater.html और कोड: https://github.com/gccgisteam/maps-website/blob/master/stormwater.html

(उस स्टॉर्मवॉटर का उदाहरण थोड़ा अधिक जटिल है क्योंकि इसे वास्तव में होने की आवश्यकता है क्योंकि मैं बदलता हूं कि क्या परतें चालू होने और बंद होने पर एक परत संवादात्मक है ...)


ध्यान दें कि WMS GetFeatureInfo अब JSON लौटा सकता है।
एलेक्स लीथ

2

यहां एक छोटा सा प्लगइन है जो इसे अच्छी तरह से प्राप्त करता है: https://gist.github.com/rclark/6908938

यदि आप 0.7.3 से अधिक लीफलेट संस्करण का उपयोग कर रहे हैं, तो WMS परतों के भीतर क्लिक पहचान करने के लिए यह एक और अच्छा प्लगइन है: https://github.com/heigeo/leaflet.wms

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.