Carto

司机简称

CARTO

生成依赖项

利勃曲尔

这个驱动程序可以连接到实现Carto API的服务。为了编译Carto驱动程序,必须使用Curl支持构建GDAL/OGR。

驱动程序支持读写操作。

驱动程序功能

Supports Create()

This driver supports the GDALDriver::Create() operation

Supports Georeferencing

This driver supports georeferencing

数据集名称语法

打开Carto数据源的最低语法是:

Carto:[connection_name]

对于单用户帐户,连接名是帐户名。对于多用户帐户,连接名必须是用户名,而不是帐户名。可以在“:”符号后指定其他可选参数。目前支持以下功能:

  • [*tables=table_name1[,table_name2]*] *:表名列表。例如,当您需要访问公共表时,这是必需的。

如果指定了多个参数,则必须用空格分隔这些参数。

认证

大多数操作,特别是写操作,都需要经过身份验证的访问。唯一的例外是对公共表的只读访问。

通过指定Carto服务的管理接口中给定的API密钥,可以获得经过身份验证的访问。它是用CARTO_API_KEY配置选项指定的。

几何图形

OGR驱动程序将根据RFC 41报告层中可用的尽可能多的几何字段(除了“geom_webmercator”字段)。

过滤

驱动程序将转发任何空间过滤器集 OGRLayer::SetSpatialFilter() 到服务器。它还使属性过滤器设置为 SetAttributeFilter() .

分页

Features are retrieved from the server by chunks of 500 by default. This number can be altered with the CARTO_PAGE_SIZE configuration option.

写入支持

可以创建和删除表。

只有在更新模式下打开数据源时才启用写支持。

Carto服务的操作与OGR概念之间的映射如下:

  • OGRFeature::CreateFeature() <==> INSERT 操作

  • OGRFeature::SetFeature() <==> UPDATE 操作

  • OGRFeature::DeleteFeature() <==> DELETE 操作

  • OGRDataSource::CreateLayer() <==> CREATE TABLE 操作

  • OGRDataSource::DeleteLayer() <==> DROP TABLE 操作

插入新功能时 OGRFeature::CreateFeature() ,如果命令成功,OGR将获取返回的rowid并将其用作OGR FID。

默认情况下,上述操作与OGR API调用同步发布到服务器。但是,当由于许多客户机/服务器交换而发出大量命令时,这可能会导致性能下降。

所以,在新创建的层上 INSERT 属于 OGRFeature::CreateFeature() 操作被分组在一起,直到它们达到15 MB(可以使用CARTO_MAX_CHUNK_SIZE配置选项进行更改,值以MB为单位),此时它们被传输到服务器。通过将CARTO_MAX_CHUNK_SIZE设置为0,立即传输。

警告

不要使用 OGRDataSource::DeleteLayer()OGRDataSource::CreateLayer() 覆盖表。只能打电话 OGRDataSource::CreateLayer() 覆盖=是。这将避免CARTO删除依赖于此表的地图

SQL

提供给 OGRDataSource::ExecuteSQL() 调用在服务器端执行,除非指定了OGRSQL方言。您可以使用PostgreSQL+PostGIS SQL功能的全部功能。

打开选项

以下打开选项可用:

  • BATCH_INSERT =是/否:是否对批次中的要素插入进行分组。默认为“是”。仅适用于创建或更新模式。

  • COPY_MODE =是/否:对插入和读取使用COPY可以提高性能。默认为“是”。

图层创建选项

以下图层创建选项可用:

  • OVERWRITE =是/否:是否用要创建的图层名覆盖现有表。默认为否。

  • GEOMETRY_NULLABLE =是/否:几何列的值是否可以为空。默认为“是”。

  • CARTODBFY =是/否:创建的图层是否应为“cartdbifi”(即在仪表板中注册)。默认为“是”。要求:

    • SRS :输出SRS必须是EPSG:4326。你可以用 -a_srs-t_srs 在导入之前分配或转换到4326。

    • 几何类型 :必须与“无”不同。你可以用 -nlt GEOMETRY .

  • LAUNDER =是/否:这可能是“是”,以强制在此层上创建的新字段将其字段名“清洗”为与PostgreSQL更兼容的形式。这将转换为小写,并将一些特殊字符,如“-”和“#”转换为“#”。如果“否”,则保留准确的名称。默认值为“是”。如果启用,表(层)名称也将被清除。

配置选项

The following configuration options are available:

  • CARTO_API_URL: defaults to https://[account_name].carto.com/api/v2/sql. Can be used to point to another server.

  • CARTO_HTTPS: can be set to NO to use http:// protocol instead of https:// (only if CARTO_API_URL is not defined).

  • CARTO_API_KEY: see following paragraph.

  • CARTO_PAGE_SIZE: features are retrieved from the server by chunks of 500 by default. This number can be altered with the configuration option.

实例

从公共表访问数据:

ogrinfo -ro "Carto:gdalautotest2 tables=tm_world_borders_simpl_0_3"

从shapefile创建和填充表:

ogr2ogr --config CARTO_API_KEY abcdefghijklmnopqrstuvw -f Carto "Carto:myaccount" myshapefile.shp

从包含EPSG:4326上几何图形的CSV创建和填充表格:

ogr2ogr --config CARTO_API_KEY abcdefghijklmnopqrstuvw -f Carto "Carto:myaccount" file.csv -a_srs 4326 -nlt GEOMETRY

备注

这个 -a_srs-nlt 必须提供给CARTODBFY,因为信息不是从CSV中提取的。

也见