datasette-leaflet-freedraw 作者 simonw

星标

Screenshot of simonw/datasette-leaflet-freedraw

README 源代码

datasette-leaflet-freedraw

PyPI Changelog Tests License

在 Datasette 地图上绘制多边形

项目背景:在地图上绘制形状以查询 SpatiaLite 数据库

安装

在 Datasette 所在的环境中安装此插件。

$ datasette install datasette-leaflet-freedraw

使用方法

如果一个表包含 SpatiaLite 的 geometry 列,此插件将为该表页面添加一个地图界面,允许用户在地图上绘制形状,以查找几何体与该形状相交的行。

此插件也可与任意 SQL 查询配合使用。在这种情况下,它会查找名称为 freedraw 或以 _freedraw 结尾的输入字段,并将其替换为地图界面。

地图界面使用了 FreeDraw Leaflet 插件。

演示

您可以试用此插件来针对 GreenInfo Network California Protected Areas Database 进行搜索。这里有一个一个示例查询,显示旧金山的迷你公园。

select
  AsGeoJSON(geometry), *
from
  CPAD_2020a_SuperUnits
where
  PARK_NAME like '%mini%' and
  Intersects(GeomFromGeoJSON(:freedraw), geometry) = 1
  and CPAD_2020a_SuperUnits.rowid in (
    select
      rowid
    from
      SpatialIndex
    where
      f_table_name = 'CPAD_2020a_SuperUnits'
      and search_frame = GeomFromGeoJSON(:freedraw)
  )

Screenshot of the plugin in action

开发

要在本地设置此插件,请首先检出代码。然后创建一个新的虚拟环境

cd datasette-leaflet-freedraw
python3 -mvenv venv
source venv/bin/activate

或者如果您正在使用 pipenv

pipenv shell

现在安装依赖项和测试

pip install -e '.[test]'

运行测试

pytest