GeoServer 2.3 jsonp를 활성화하는 방법


15

GeoServer 2.3.0에서 jsonp를 활성화하고 싶습니다. 문서는 참으로 ENABLE_JSONP을 설정 말한다.

GeoServer 사용자 목록의 응답에 web.xml을 편집하라는 메시지가 표시되지만 (시스템 변수 ENABLE_JSONP = true 및 outFormat = text / javascript 설정) xml 태그를 사용할 위치와 배치 위치를 모릅니다.

설치된 버전은 다음과 같습니다. GeoServer 2.3.0 (Web Archive)이 tomcat 7.0.39가 설치된 원격 호스트에 설치되었습니다.


"문서"에 대한 링크를 제공하기 위해 질문을 업데이트 할 수 있습니까? GeoServer 설치의 특정 소스 (예 : 소스, 배포 패키지, 일부 Windows 설치 프로그램 등)를 설명 할 수도 있습니다.
BradHards

이 작업을 수행해야한다는 리소스가 명확하지 않습니다. docs
user1567453

답변:


33

GeoServer 사용자 목록에 대한 도움을 받았습니다.

이 파일에 추가 : /tomcat/webapps/geoserver/WEB-INF/web.xml

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

서비스를 다시 시작하십시오. 그런 다음 json 요청에서 format = text / javascript를 사용하십시오.

다음은 GeoServer에서 WFS 기능을 요청하는 데 사용한 코드입니다. jquery와 함께 Leaflet 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에 대한 응답을 찾지 못했습니다) : 127.0.0.1:8080/geoserver/…
ca0v

1
@ ca0v 이것은 WFS에서만 작동합니다. WMS는 jsonp, AFAIK를 반환하지 않습니다.
Alex Leith

osgeo-org.atlassian.net/browse/… 에 따르면 geoserver 2.3.0 에서는 컨텍스트 매개 변수 설정이 작동 하지 않았습니다 . 나는 그것을 쫓아 반나절을 낭비했다. 정말 최신 Geoserver를 실행해야합니다.
Auspex

3

가독성을 높이기 위해 매개 변수를 AJAX 호출에 직접 넣을 수도 있습니다.

JSONP 호출을 사용하면 format_options 또는 success 매개 변수가 필요하지 않습니다. 콜백 함수는 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"쿼리 문자열을 통해 콜백 이름을 변경할 수 있다고 설명합니다. 이 예에서는 기본 콜백을 "tests"로 변경합니다. [path_to_wfs_service]? format_options = callback : test
ca0v
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.