#plugin #sqlite #back-end #memory #format #file #street

datagen-rs-openaddresses-plugin

datagen-rs的一个插件,支持openaddresses.io数据格式

1 个不稳定版本

0.1.0 2023年9月26日

#2030数据库接口

MIT 许可证

160KB
4K SLoC

openaddresses-plugin

openaddresses-plugin 插件可用于从 OpenAddresses 项目 生成真实地址。该插件使用项目的 geojson 文件生成地址。

用法

在使用插件之前,您需要在 plugin 选项中初始化插件。插件接受以下选项

  • files: 一个字符串或字符串数组,包含要使用的文件的路径。文件应为 geojson 格式。
  • backend: 插件有两个后端:memorysqlitememory 后端将整个文件加载到内存中,而 sqlite 后端将文件加载到 sqlite 数据库中。sqlite 后端比 memory 后端慢,但使用的内存更少。默认后端是 memory。如果使用 sqlite 后端,插件需要 sqlite 数据库文件的路径。如果数据库文件不存在,将会创建它。

初始化 memory 后端

{
  "options": {
    "plugins": {
      "openaddresses-plugin": {
        "path": "/path/to/openaddresses_plugin",
        "args": {
          "files": ["/path/to/geojson/file1", "/path/to/geojson/file2"],
          "backend": {
            "type": "memory"
          }
        }
      }
    }
  }
}

初始化 sqlite 后端

这将初始化 sqlite 后端并在 /path/to/sqlite/database.db 处创建一个 sqlite 数据库。数据库将用来自 geojson 文件的数据填充,这可能需要一些时间。如果数据库已存在,则将使用现有数据库而不是创建新数据库。

{
  "options": {
    "plugins": {
      "openaddresses-plugin": {
        "path": "/path/to/openaddresses_plugin",
        "args": {
          "files": ["/path/to/geojson/file1", "/path/to/geojson/file2"],
          "backend": {
            "type": "sqlite",
            "databaseName": "/path/to/sqlite/database.db"
          }
        }
      }
    }
  }
}

生成地址

为了使用插件,在 plugin 生成器中提供 openaddresses-plugin 插件名称。

插件接受一个对象,该对象包含要生成的属性的名称作为键,以及用作值的字段。支持以下字段类型

  • number: 要生成的地址数量。
  • street: 街道名称。
  • city: 城市名称。
  • unit:单位编号。
  • district:区域名称。
  • region:区域名称。
  • postcode:邮政编码。
  • latitude:纬度。
  • longitude:经度。

对象也可以嵌套,以创建嵌套对象。

示例

{
  "type": "plugin",
  "pluginName": "openaddresses-plugin",
  "args": {
    "street": "street",
    "houseNumber": "number",
    "city": "city",
    "coordinates": {
      "latitude": "latitude",
      "longitude": "longitude"
    }
  }
}

这将生成类似的对象

{
  "street": "Muncaster Rd",
  "houseNumber": "831",
  "city": "HAINES",
  "coordinates": {
    "latitude": 59.2442386,
    "longitude": -135.4394579
  }
}

依赖项

~6-12MB
~225K SLoC