如何在CKAN DataStore中处理GeoJson?

时间:2016-09-26 10:52:23

标签: geojson ckan

CKAN DataStore是否能够处理GeoJson?除了关于DataStore Map可视化的link之外,我在文档中没有看到任何引用,说:

  

在交互式地图中显示存储在DataStore上的数据。它支持从一对纬度/经度字段或包含几何的GeoJSON表示的字段中绘制标记。

因此,我在DataStore列中接受了GeoJson。无论如何,我not found任何GeoJson CKAN类型,因此,我猜测简单的Json类型必须用于此目的。

任何人都可以证实吗?谢谢!

编辑1

我创建了资源和数据存储区以及与资源相关联的“recline_map_view”。然后,我已经上传了一个值,该值由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没有显示任何内容:(

编辑2

我的CKAN出了问题。我在demo.ckan.org上测试过Ifurini的解决方案,但它确实有效。

1 个答案:

答案 0 :(得分:1)

GeoJSON只是一种(特定类型的)JSON,因此它没有作为数据库字段的特定处理。

因此,您可以使用简单的CSV文件创建具有GeoJSON字段的资源,如下所示:

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

(请注意 double 双引号"",而不只是双引号"

如果您拨打专栏" GeoJSON" (或" geojson"," gEoJsOn"等,因为大小写并不重要)地图视图会自动使用该字段标记地图中的数据,而不仅仅是让你手动选择要使用的字段。