GeoServer 2.3 jsonpを有効にする方法


15

GeoServer 2.3.0でjsonpを有効にしたいと思います。ドキュメントは trueにENABLE_JSONPを設定すると言います。

GeoServerユーザーリストからの応答では、web.xmlを編集するように指示されています(システム変数ENABLE_JSONP = trueおよびoutFormat = text / javascriptを設定します)が、どのxmlタグを使用し、どこに配置するかわかりません。

インストールされているバージョンは次のとおりです。GeoServer2.3.0(Web Archive)は、tomcat 7.0.39を使用してリモートホストにインストールされています。


「ドキュメント」へのリンクを提供するために質問を更新できますか?また、GeoServerインストールの特定のソース(ソース、ディストリビューションパッケージ、一部のWindowsインストーラーなど)について説明することもできます。
-BradHards

これを行う必要があることは、そこのリソースで明らかにされていません。doco atmは次のとおり
latest

回答:


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

1
@ ca0vこれはWFSでのみ機能します。WMSはjsonp、AFAIKを返しません。
アレックスリース14

どうやら、による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'
        });
    },

いい例ですが、すぐには取り上げませんでした。ドキュメントでは、「callback」オプションを使用して「format_options」クエリ文字列を介してコールバック名を変更できると述べています。テスト:?[path_to_wfs_service] format_options =コールバック:この例では、「テスト」にデフォルトのコールバックを変更する
ca0v
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.