来自 USGS geojson 数据的 jqGrid

Posted

技术标签:

【中文标题】来自 USGS geojson 数据的 jqGrid【英文标题】:jqGrid from USGS geojson data 【发布时间】:2013-03-20 09:59:53 【问题描述】:

我正在尝试在 jqGrid 中读取并发布一组从 USGS 存储库中提取的地震 GeoJSON 数据。 请求被接受,但在可能满足标头元数据时显示“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');
);

你有什么解决办法吗? 提前致谢。

【问题讨论】:

你测试过JSON是否有效? 虽然 GeoJSON 是地理空间数据,但指向根是在“特征”上。我不认为有问题。也许我错了? 【参考方案1】:

我查看了 geojson 的文档,我想我找到了问题的原因。 GeoJSON(P) 似乎使用eqfeed_callback 作为回调名称(请参阅here)。所以我修复了 jqGrid 的一些选项,这些选项用于以下内容:

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

The modified demo 现在可以工作并显示如下结果

更新: The modified demo 使用 GeoJSON 的新 URL 和 free jqGrid 的新版本 (4.14.1)。

【讨论】:

伟大的奥列格,现在我更好地理解了 jquery 中的回调函数的功能。谢谢 @user2190221:不客气!如果问题现在解决了,您应该"accept" 回答。顺便here和here你可以在jqGrid中找到另一个使用JSONP的例子。

以上是关于来自 USGS geojson 数据的 jqGrid的主要内容,如果未能解决你的问题,请参考以下文章

传单 - BindPopup USGS 地震震级

来自具有 Geojson 系列的数据框的地理数据框

如何从 USGS Terra 服务器中查找四边形/名称/比例

AmCharts4:来自 GeoJSON 的自定义地图的 getPolygonById 方法?

(网络数据交互)Android解析Internet的Json资源文件

使用 Python 的 USGS 水文数据甘特图?