jqgrid json reader для geoJson

У мене є скрипт PHP, який витягує дійсні дані GeoJSON з бази даних. Тепер я хотів би підготувати сітку даних цих даних за допомогою jqgrid, але я не можу зрозуміти правильний jsonReader для коду JavaScript.

Це мій вихід GeoJSON:

{"type":"FeatureCollection",
"total":0, 
"page":1, 
"records":117, 
"features":[
     {"geometry":{"type":"Point","coordinates":[12.3,41.70052]},
      "type":"Feature",
      "properties":{
      "data":"2006-02-22",
      "specie":"S. coeruleoalba",
      "localita":"Ostia",
      "provincia":"Roma"
     },"id":0},
    {"geometry":{
     "type":"Point","coordinates":[15.26667,40.0502]},
     "type":"Feature",
     "properties":{
        "data":"2006-03-01",
        "specie":"S. coeruleoalba",
        "localita":"Golfo di Salerno",
        "provincia":"Salerno"
     },"id":1},
    {"geometry":{"type":"Point","coordinates":[14.88333,40.56692]},
     "type":"Feature",
     "properties":{
        "data":"2006-03-03",
        "specie":"S. coeruleoalba",
        "localita":"Battipaglia",
        "provincia":"Salerno"
    },"id":2}

]}

Використовуючи цей читач, моя сітка показує правильну кількість рядків (117) та сторінок, але порожні комірки

jsonReader : { 
    root: "features", 
    page: "page", 
    total: "total", 
    records: "records", 
    repeatitems: false, 
    cell: "properties", 
    id: "id"
}

Чи може хто-небудь допомогти мені написати робочого читача? Спасибі заздалегідь

0
Які стовпці ви хочете мати в сітці? properties , здається, в основному незрозуміло. Чи всі інші записи мають ті самі властивості , "localita" і "provincia" частина даних? Просто з одного пункту важко зрозуміти, як дані будуть. Не могли б ви включити більше елементів в масиві "features" ?
додано Автор Oleg, джерело
Ви все ще не пишете, які стовпчики вам потрібно мати в сітці.
додано Автор Oleg, джерело
Дякую за відповідь, я додав деякі елементи до мого Джонса
додано Автор user781065, джерело

1 Відповіді

Ваша основна помилка полягає в тому, що ви намагаєтеся використовувати cell: "properties" , але властивість cell буде ignored у випадку використання властивості repeatitems: false .

Ви повинні просто використовувати

jsonReader: {
    root: "features",
    repeatitems: false
}

а потім визначте властивість jsonmap для кожного стовпця. Наприклад, ви можете використовувати наступне визначення стовпця:

colModel: [
    {name: 'coordX', jsonmap:'geometry.coordinates.0', width: 75, sorttype: 'number',
        formatter: 'number', formatoptions: {decimalPlaces: 5}},
    {name: 'coordY', jsonmap:'geometry.coordinates.1', width: 75, sorttype: 'number',
        formatter: 'number', formatoptions: {decimalPlaces: 5}},
    {name: 'data', jsonmap:'properties.data', width: 90, align: 'center',
        sorttype: 'date', datefmt: 'm/d/Y',
        formatter: 'date', formatoptions: {newformat: 'm/d/Y'}},
    {name: 'specie', jsonmap:'properties.specie', width: 100},
    {name: 'localita', jsonmap:'properties.localita', width: 100},
    {name: 'provincia', jsonmap:'properties.provincia', width: 80}
]

В результаті ви зможете читати ваші дані JSON до такої сітки:

enter image description here

(див. демо тут ). У ваших даних JSON я змінював лише значення total від 0 до 1, оскільки немає сенсу мати значення total менше, ніж значення page .

0
додано
@ user781065: ласкаво просимо!
додано Автор Oleg, джерело
Ukrainian PHP comunity
Ukrainian PHP comunity
885 учасників

dev-ua/php

ІТ КПІ - JavaScript
ІТ КПІ - JavaScript
504 учасників

співтовариство javascript розробників в Telegram