跳转到主要内容

为具有几何列的任何查询渲染地图

项目描述

datasette-geojson-map

PyPI Changelog Tests License

为具有几何列的任何查询渲染地图

安装

将此插件安装在与Datasette相同的环境中。

$ datasette install datasette-geojson-map

使用方法

首先加载一个GIS文件。

例如,您可能使用 geojson-to-sqliteshapefile-to-sqlite邻里边界 导入SQLite数据库中。

wget -O neighborhoods.geojson https://opendata.arcgis.com/datasets/3525b0ee6e6b427f9aab5d0a1d0a1a28_0.geojson
geojson-to-sqlite boston.db neighborhoods neighborhoods.geojson

(上面的命令使用Spatialite,但这不是必需的。)

启动 datasette 并导航到 neighborhoods 表。

datasette serve boston.db

# in another terminal tab
open https://127.0.0.1:8001/boston/neighborhoods

您应该看到以波士顿为中心的地图,每个邻里的边界都被勾勒出来。点击边界将弹出一个包含该特征详细信息的弹出窗口。

Boston neighbhorhoods map

此插件依赖于(并将安装)datasette-geojson。任何包含 geometry 列的查询都将生成结果地图。这还包括单行视图。

运行包含的 demo 项目以查看其实时效果。

配置

此项目使用与datasette-cluster-map相同的地图配置。以下是您如何使用Stamen的地形瓦片

plugins:
  datasette-geojson-map:
    tile_layer: https://stamen-tiles-{s}.a.ssl.fastly.net/terrain/{z}/{x}/{y}.{ext}
    tile_layer_options:
      attribution: >-
        Map tiles by <a href="http://stamen.com">Stamen Design</a>, 
        under <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. 
        Data by <a href="http://openstreetmap.org">OpenStreetMap</a>, 
        under <a href="http://www.openstreetmap.org/copyright">ODbL</a>.
      subdomains: abcd
      minZoom: 1
      maxZoom: 16
      ext: jpg

选项

  • tile_layer:使用可以传递给Leaflet瓦片层的URL模板。
  • tile_layer_options:所有选项都将传递给瓦片层。有关可能的值,请参阅Leaflet文档

地图特征的样式

可以使用simplestyle-spec使用样式来设置地图特征。这需要在返回的行上设置特定的字段。以下是一个示例

SELECT Name, geometry, "#ff0000" as fill, "#0000ff" as stroke, 0.2 as stroke-width,  from neighborhoods

这将渲染一个邻里地图,其中每个多边形用红色填充,用蓝色勾勒,线条宽度为0.2像素。

更实用的方法是使用CASE语句根据数据着色特性

SELECT
  Name,
  geometry,
  CASE
    Name
    WHEN "Roslindale" THEN "#ff0000"
    WHEN "Dorchester" THEN "#0000ff"
    ELSE "#dddddd"
  END fill
FROM
  neighborhoods

这将用红色填充Roslindale,用蓝色填充Dorchester,以及其他所有社区用灰色填充。

开发

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

cd datasette-geojson-map
python3 -mvenv venv
source venv/bin/activate

或者如果你使用pipenv

pipenv shell

现在安装依赖项和测试依赖项

pip install -e '.[test]'

要运行测试

pytest

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

datasette-geojson-map-0.5.0.tar.gz (10.0 kB 查看哈希值)

上传时间

构建分布

datasette_geojson_map-0.5.0-py3-none-any.whl (10.9 kB 查看哈希值)

上传时间 Python 3

支持者