16 votos

GeoServer 2.3 cómo activar jsonp

Me gustaría habilitar jsonp en GeoServer 2.3.0. El docs dicen que hay que poner ENABLE_JSONP a true.

Una respuesta de la lista de usuarios de GeoServer dice que hay que editar el web.xml, (poner la variable del sistema ENABLE_JSONP=true y outFormat=text/javascript )pero no tengo ni idea de qué etiquetas xml hay que usar y dónde ponerlas.

Aquí están las versiones instaladas: GeoServer 2.3.0 (Web Archive) ha sido instalado en un host remoto con tomcat 7.0.39

0 votos

¿Puede actualizar la pregunta para proporcionar un enlace a los "documentos"? También podrías explicar la fuente específica de tu instalación de GeoServer (por ejemplo, desde el código fuente, paquetes de distro, algún instalador de Windows, etc).

0 votos

En los recursos que hay por ahí no se hace evidente la necesidad de hacerlo. Aquí está el documento en este momento: docs.geoserver.org/latest/es/usuario/servicios/wfs/

36voto

geomajor56 Puntos 1089

Conseguí ayuda en la lista de usuarios de GeoServer.

Añade a este archivo: /tomcat/webapps/geoserver/WEB-INF/web.xml

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

y reiniciar el servicio. Luego, en su solicitud json utilice format=text/javascript

Este es el código que utilicé para solicitar las características del WFS a GeoServer. Estoy utilizando el Folleto API junto con jquery.

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

Espero que esto te sirva para empezar y no dudes en pedir más información.

0 votos

¿Esto es sólo para el SGA? Si no es así, ¿puede proporcionar un ejemplo de punto final? Estoy intentando utilizar JSONP para un servicio WFS pero no consigo que funcione (Fallo al encontrar la respuesta para el formato de salida jsonp): 127.0.0.1:8080/geoserver/…

1 votos

@ca0v esto funciona sólo para WFS. WMS no devuelve jsonp, AFAIK.

0 votos

Aparentemente, según osgeo-org.atlassian.net/browse/ La configuración del parámetro de contexto hizo no funcionan en Geoserver 2.3.0. He perdido medio día persiguiendo eso. Realmente necesito tener un Geoserver actualizado funcionando...

3voto

xElx Puntos 21

Para mejorar la legibilidad también puedes poner los params directamente en la llamada AJAX.

Con la llamada JSONP no necesitarás las format_options ni el parámetro success. La función callback se establecerá con el parámetro jsonpCallback en la llamada AJAX y las format_options se establecerán con 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'
        });
    },

0 votos

Buen ejemplo, pero no lo capté inmediatamente. La documentación indica que se puede cambiar el nombre de la llamada de retorno a través de la cadena de consulta "format_options" utilizando las opciones "callback". Este ejemplo cambia el callback por defecto a "tests": [path_to_wfs_service]?format_options=callback:test

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X