GeoServer 2.3 jsonp nasıl etkinleştirilir


16

Geosonerver 2.3.0'da jsonp'u etkinleştirmek istiyorum. Docs true ENABLE_JSONP ayarlamak için söylüyorlar.

GeoServer kullanıcıları listesinden gelen bir yanıt, web.xml dosyasını düzenlemek (diyor Sistem değişkeni ENABLE_JSONP = true ve outFormat = text / javascript) diyor, ancak hangi xml etiketlerini kullanacağımı ve nereye koyacağımı bilmiyorum.

Yüklü sürümler: GeoServer 2.3.0 (Web Arşivi) tomcat 7.0.39 ile uzak bir ana bilgisayara kuruldu


"Dokümanlar" a bağlantı sağlamak için soruyu güncelleyebilir misiniz? Ayrıca GeoServer kurulumunuzun özel kaynağını da açıklamak isteyebilirsiniz (örn. Kaynak, dağıtım paketleri, bazı windows yükleyicileri vb.).
BradHards

Buradaki kaynaklarda bunun yapılması gerektiği belli değil. İşte doco atm: docs.geoserver.org/latest/en/user/services/wfs/…
user1567453

Yanıtlar:


34

GeoServer kullanıcıları listesinde biraz yardım aldım.

Bu dosyaya ekleyin: /tomcat/webapps/geoserver/WEB-INF/web.xml

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

ve hizmeti yeniden başlatın. Ardından, json isteğinizde format = text / javascript kullanın

İşte GeoServer'dan WFS özelliklerini istemek için kullandığım kod. Jquery ile birlikte Leaflet API kullanıyorum .

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);
}

Umarım bu sizi başlatır ve daha fazla bilgi istemekten çekinmeyin.


Bu sadece WMS için mi? Değilse, örnek bir bitiş noktası sağlayabilir misiniz? Bir WFS hizmeti için JSONP kullanmaya çalışıyorum ama çalışamıyor (jsonp çıktı biçimi için yanıt bulunamadı): 127.0.0.1:8080/geoserver/…
ca0v

1
@ ca0v bu yalnızca WFS için geçerlidir. WMS jsonp, AFAIK'ı döndürmez.
Alex Leith

Görünüşe göre osgeo-org.atlassian.net/browse/... bağlam parametrenizi, yaptığı değil Geoserver 2.3.0 çalışma. Yarım gün onu kovalayarak harcadım. Gerçekten güncel bir Geoserver çalıştırmam gerekiyor ...
Auspex

3

Okunabilirliği artırmak için parametreleri doğrudan AJAX çağrısına da ekleyebilirsiniz.

JSONP çağrısı ile format_options veya success parametresine ihtiyacınız olmayacak. Geri arama işlevi AJAX çağrısında jsonpCallback parametresi ile, format_options ise jsonp: 'format_options' ile ayarlanır.

    $.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'
        });
    },

Güzel bir örnek ama hemen almadım. Dokümanlar, "geri arama" seçeneklerini kullanarak geri arama adını "format_options" sorgu dizesi aracılığıyla değiştirebileceğinizi belirtir. Bu örnek, varsayılan geri aramayı "testler" olarak değiştirir: [path_to_wfs_service]? Format_options = geri arama: test
ca0v
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.