2013-03-20 63 views
2

我想读取和张贴在jqGrid中的一组地震GeoJSON数据从USGS存储库中提取。 该请求被接受,但在可能符合标题元数据时显示“Uncaught SyntaxError:Unexpected token”。jqGrid from USGS geojson data

$(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'); 
}); 

你有什么解决方法吗? 在此先感谢。

+0

您是否测试过JSON有效? – Mark 2013-03-20 10:37:51

+0

虽然GeoJSON是一个地理空间数据,但指向根的是“特征”。我认为没有问题。也许我错了? – user2190221 2013-03-20 11:28:30

回答

2

我看着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作品现在并显示如下图所示

结果

enter image description here

UPDATE:The modified demo使用GeoJSON的新网址和新版本(4.14.1)free jqGrid

+0

伟大的奥列格,现在我已经更好地理解了“回调”的jQuery中的功能。谢谢 – user2190221 2013-03-20 11:29:10

+0

@ user2190221:不客气!如果问题现在得到解决,您应该[“接受”](http://meta.stackexchange.com/a/5235/147495)答案。顺便说一句[这里](http://stackoverflow.com/a/9588051/315935)和[这里](http://stackoverflow.com/a/4326986/315935)你可以找到JQGrid中使用JSONP的另一个例子。 – Oleg 2013-03-20 11:33:29