用于将GeoJSON转换为SQLite的CLI工具(可选地使用SpatiaLite)

geojson-to-sqlite的Python项目详细描述


geojson到sqlite

PyPICircleCILicense

用于将GeoJSON转换为SQLite的CLI工具(可选地使用SpatiaLite)

RFC 7946: The GeoJSON Format

如何安装

$ pip install geojson-to-sqlite

如何使用

您可以对GeoJSON文件运行此工具,如下所示:

^{pr2}$

这将把features.geojson文件中的所有特性加载到名为features的表中。在

每一行将有一个geometry列,其中包含特性几何体,以及附加到这些特性的任何properties中找到的每个键的列。在

表将在您第一次运行命令时创建。在

在随后的运行中,您可以使用--alter选项添加表中缺少的任何新列。在

如果您的特性有一个"id"属性,它将被用作表的主键。您还可以将--pk=PROPERTY与其他属性的名称一起使用,以将其用作主键。如果您不想使用"id"作为主键(可能它包含重复的值),可以使用--pk ''不指定主键。在

如果没有指定主键,将使用SQLite rowid列。在

您可以使用-作为从标准输入导入的文件名。例如:

$ curl https://eric.clst.org/assets/wiki/uploads/Stuff/gz_2010_us_040_00_20m.json \
    | geojson-to-sqlite my.db states - --pk GEO_ID

与SpatiaLite一起使用

默认情况下,geometry列将包含JSON。在

如果安装了SQLite的SpatiaLite模块,则可以将几何图形导入到地理空间索引列中。在

您可以使用--spatialite选项执行此操作,如下所示:

$ geojson-to-sqlite my.db features features.geojson --spatialite

该工具将在以下位置搜索SpatiaLite模块:

  • /usr/lib/x86_64-linux-gnu/mod_spatialite.so
  • /usr/local/lib/mod_spatialite.dylib

如果已将模块安装在其他位置,则可以使用--spatialite_mod=xxx选项指定位置:

$ geojson-to-sqlite my.db features features.geojson \
    --spatialite_mod=/usr/lib/mod_spatialite.dylib

在Datasette中使用这个

使用此工具创建的数据库可以使用Datasette进行浏览和发布。在

datasete文档包含一个关于how to use it to browse SpatiaLite databases的部分。在

datasette-leaflet-geojson插件可用于在Leaflet地图上可视化包含GeoJSON几何图形的列。在

如果使用的是SpatiaLite,则需要将几何体输出为GeoJSON,以便插件正常工作。您可以使用spitalite AsGeoJSON()函数来实现这一点,如下所示:

selectrowid,AsGeoJSON(geometry)frommytablelimit10

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JNLP无法在浏览器中正确启动(与dtjava.js一起部署)   在执行下一个方法之前,java将等待线程执行结束   java如何将另一个LayoutManager应用于JComboBox?(多栏JComboBox尝试)   使用jPBC在java中实现双线性配对   java在使用@RequestMapping注释时获取请求的值(URL)   java如何控制流量   java如何获取IFC对象的绝对坐标?   java目标服务器无法使用htmlunit和tor响应异常   java需要帮助创建一个循环结构来运行我的程序   java有可能拥有一个Android APK并在应用程序中更改构建变体吗?   在Sphinx4中运行Ant的java   Java:从ArrayList获取子列表的有效方法   java如何使在循环内部创建的数组在循环外部工作?   apache poi通过java中的XSSF表从单元格读取日期值   安卓 java自己的SeqLock实现,避免spinlock会更好吗?   java的并发底层方法。util。同时发生的预定未来   java比较方法违反了它的一般约定,如何使它具有可传递性?   使用JAVA定向指定类的DB导出子类   一个方法中的java更改特定imageView