2

USGSリポジトリから抽出された一連の地震GeoJSONデータを読み込んでjqGridに投稿しようとしています。要求は受け入れられますが、おそらくヘッダー メタデータを満たしている場合、「Uncaught SyntaxError: Unexpected token」が表示されます。

$(function () {
    'use strict';
    $.extend($.jgrid.search, {multipleSearch: true, multipleGroup: true, overlay: 0});
    $('#grid').jqGrid({
        url: 'http://earthquake.usgs.gov/earthquakes/feed/geojson/2.5/week?callback=?',
        datatype: 'json',
        colModel: [
            {name: 'mag', label: 'MAGNITUDO', width: 150, jsonmap: 'properties.mag', sorttype: 'number',
formatter: 'number', formatoptions: {decimalPlaces: 2}},
            {name: 'place', label: 'LOCALITA', width: 150, jsonmap: 'properties.place'},
            {name: 'url', label: 'URL', width: 150, jsonmap: 'properties.url'}
        ],
        toppager: true,
        gridview: true,
        rowList: [10, 20, 50, 10000],
        rowNum: 10,
        jsonReader: {
            root: 'features',
            repeatitems: false
        },
        loadonce: true,
        ignoreCase: true,
        height: 'auto'
    }).jqGrid('navGrid', '#grid_toppager', {add: false, edit: false, del: false})
      .jqGrid('filterToolbar', {stringResult: true, defaultSearch: 'cn', searchOnEnter: false});
    $("#grid_toppager option[value=10000]").text('All');
});

解決策はありますか?前もって感謝します。

4

1 に答える 1

2

geojson のドキュメントを調べたところ、問題の原因がわかったと思います。GeoJSON(P) がeqfeed_callbackコールバック名として使用しているようです (こちらを参照)。そこで、あなたが次のように使用していた jqGrid のいくつかのオプションを修正しました。

url: 'http://earthquake.usgs.gov/earthquakes/feed/geojsonp/2.5/week',
datatype: 'jsonp',
postData: '',
ajaxGridOptions: { jsonp: false, jsonpCallback: 'eqfeed_callback', cache: true},

変更されたデモが動作し、以下のような結果が表示されます

ここに画像の説明を入力

更新: 変更されたデモでは、GeoJSON の新しい URL と無料の jqGridの新しいバージョン (4.14.1) を使用します。

于 2013-03-20T10:56:58.170 に答える