GeoServer 2.3 jsonp को इनेबल कैसे करें


16

मैं जियोसर्वर 2.3.0 पर jsonp को सक्षम करना चाहूंगा। डॉक्स को सही पर ENABLE_JSONP स्थापित करने के लिए कहते हैं।

GeoServer उपयोगकर्ताओं की सूची से एक प्रतिक्रिया web.xml, (सिस्टम वेरिएबल ENABLE_JSONP = true और outFormat = text / javascript सेट) को संपादित करने के लिए कहती है, लेकिन मुझे कोई आइडिया नहीं है कि कौन सा xml टैग इस्तेमाल करना है और कहां लगाना है।

यहां स्थापित संस्करण हैं: जियोसर्वर 2.3.0 (वेब ​​आर्काइव) को टॉमकैट 7.0.39 के साथ एक दूरस्थ होस्ट पर स्थापित किया गया है


क्या आप "डॉक्स" को लिंक प्रदान करने के लिए प्रश्न को अपडेट कर सकते हैं? आप अपने जियोसर्वर इंस्टॉल (जैसे स्रोत, डिस्ट्रो पैकेज, कुछ विंडोज़ इंस्टॉलर, आदि) के विशिष्ट स्रोत की व्याख्या करना पसंद कर सकते हैं।
ब्रैडहार्ड्स

यह वहाँ बाहर संसाधनों में स्पष्ट नहीं किया गया है कि यह किया जाना चाहिए। यहाँ डोको
user1567453

जवाबों:


34

मुझे जियोसर्वर उपयोगकर्ताओं की सूची में कुछ मदद मिली।

इस फ़ाइल में जोड़ें: /tomcat/webapps/geoserver/WEB-INF/web.xml

<context-param>
    <param-name>ENABLE_JSONP</param-name>
    <param-value>true</param-value>
</context-param>

और सेवा को पुनः आरंभ करें। फिर, अपने json अनुरोध में प्रारूप = पाठ / जावास्क्रिप्ट का उपयोग करें

यहां वह कोड है जिसका उपयोग मैंने जियो सेवर से डब्ल्यूएफएस सुविधाओं का अनुरोध करने के लिए किया था। मैं jquery के साथ USC API का उपयोग कर रहा हूं ।

var rootUrl = 'http://tomcat.capecodgis.com/geoserver/capecodgis/ows';

var defaultParameters = {
    service: 'WFS',
    version: '1.0.0',
    request: 'GetFeature',
    typeName: 'capecodgis:monitor_station',
    maxFeatures: 200,
    outputFormat: 'text/javascript',
    format_options: 'callback: getJson'

};

var parameters = L.Util.extend(defaultParameters);

$.ajax({
    url: rootUrl + L.Util.getParamString(parameters),
    dataType: 'jsonp',
    jsonpCallback: 'getJson',
    success: handleJson
});


function handleJson(data) {
    L.geoJson(data, {
        onEachFeature: onEachFeature,
        pointToLayer: function (feature, latlng) {
            return L.circleMarker(latlng, geojsonMarkerOptions);
            //return L.marker(latlng);
        }
    }).addTo(map);
}

आशा है कि यह आप शुरू कर दिया और अधिक जानकारी के लिए पूछने के लिए स्वतंत्र महसूस हो रहा है।


यह अगर WMS के लिए ही है? यदि नहीं, तो क्या आप एक उदाहरण समापन बिंदु प्रदान कर सकते हैं? मैं एक WFS सेवा के लिए JSONP का उपयोग करने की कोशिश कर रहा हूं, लेकिन यह काम नहीं कर पा रहा है (आउटपुट स्वरूप
jsonp के

1
@ ca0v यह WFS के लिए ही काम करता है। WMS ने jsonp, AFAIK को वापस नहीं किया है।
एलेक्स लेथ

जाहिरा तौर पर, ओस्गेओ-org.atlassian.net/browse/… के अनुसार , संदर्भ पैरामीटर सेट करना Geoserver 2.3.0 में काम नहीं करता था । मैंने आधे दिन बर्बाद कर दिए हैं। मुझे वास्तव में एक अप-टू-डेट जियोसेवर चलाने की आवश्यकता है ...
Austex

3

पठनीयता को बेहतर बनाने के लिए आप सीधे पैराग्राफ को AJAX कॉल में भी डाल सकते हैं।

JSONP कॉल के साथ आपको format_options या सफलता पैरामीटर की आवश्यकता नहीं होगी। कॉलबैक फ़ंक्शन को AJAX कॉल पर jsonpCallback पैरामीटर के साथ सेट किया जाएगा और format_options को jsonp: 'format_options' के साथ सेट किया जाएगा।

    $.ajax('http://demo.opengeo.org/geoserver/wfs',{
        type: 'GET',
        data: {
            service: 'WFS',
            version: '1.0.0',
            request: 'GetFeature',
            typeName: 'capecodgis:monitor_station',
            maxFeatures: 200,
            outputFormat: 'text/javascript',
            request: 'GetFeature',
            srsname: 'EPSG:3857',
            bbox: extent.join(',') + ',EPSG:3857'
            },
        dataType: 'jsonp',
        jsonpCallback:'callback:handleJson',
        jsonp:'format_options'
        });
    },

अच्छा उदाहरण है, लेकिन मैं तुरंत उस पर नहीं उठा। डॉक्स स्थिति है कि आप "कॉलबैक" विकल्पों का उपयोग करके "format_options" क्वेरी स्ट्रिंग के माध्यम से कॉलबैक नाम बदल सकते हैं। यह उदाहरण डिफ़ॉल्ट कॉलबैक को "परीक्षण" में बदल देता है: [path_to_wfs_service]; format_options = callback: test
ca0v
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.