2016-09-26 5 views
1

Действительно ли CKAN DataStore имеет дело с GeoJson? Я не видел ни одного упоминания в документации для этого link о визуализации карт DataStore за исключением, говоря:Как работать с GeoJson в CKAN DataStore?

показывает данные, хранящиеся на DataStore в интерактивной карте. Он поддерживает построение маркеров с пары полей широты/долготы или из поля, содержащего геометрию GeoJSON.

Таким образом, я подтверждаю, что GeoJson принимается в столбцах DataStore. Во всяком случае, у меня есть not found любой тип GeoJson CKAN, поэтому, опять же, я предполагаю, что простой Json-тип должен использоваться для этой цели.

Можно ли подтвердить это? Благодаря!

EDIT 1

Я создал ресурс и хранилищу и «recline_map_view», связанный с ресурсом. Тогда я upserted значение, которое показано на этой datastore_search операции:

$ curl -X POST "https://host:port/api/3/action/datastore_search" -d '{"resource_id":"14418d40-de42-4fdd-84f7-3c51244c7469"}' -H "Authorization: xxx" -k 
{"help": "https://host:port/api/3/action/help_show?name=datastore_search", "success": true, "result": {"resource_id": "14418d40-de42-4fdd-84f7-3c51244c7469", "fields": [{"type": "int4", "id": "_id"}, {"type": "text", "id": "label"}, {"type": "json", "id": "geojson"}], "records": [{"_id": 1, "geojson": {"type": "Point", "coordinates": [48.856699999999996, 2.3508]}, "label": "Paris"}], "_links": {"start": "/api/3/action/datastore_search", "next": "/api/3/action/datastore_search?offset=100"}, "total": 1}} 

Тем не менее, ничего не показано в CKAN :(

EDIT 2

Это была проблема с мой CKAN. Я тестировал решение Ifurini на demo.ckan.org, и он работает.

ответ

1

GeoJSON - это просто (особый вид) JSON, поэтому он не имеет особой обработки в качестве поля базы данных.

Таким образом, вы можете создать ресурс с полем GeoJSON из простой CSV-файла, как это:

Name,Position 
"Paris","{""type"":""Point"",""coordinates"":[2.3508,48.8567]}" 

(обратите внимание на двойные двойные кавычки "" вместо просто одного кавычку ")

Если вы вызываете столбец «GeoJSON» (или «geojson», «gEoJsOn» и т. Д., Поскольку капитализация не важна), Map View автоматически использует это поле для маркировки данных на карте, а не просто позволяя вам вручную выбрать, какой f использовать.