杭州美食分析案例

本文通过杭州美食地图分析、杭州高性价比火锅店分析、杭州各行政区美食标签分析三个场景完成分析杭州美食分享案例,为您介绍如何使用DataV-Atlas进行可视地图分析,以快速为您分析出杭州美食的分布情况。

准备工作

案例数据源介绍

本次项目示例数据的两张表存放于Atlas演示数据库的public文件夹下:

Atlas 演示数据库:存放Atlas官方提供的一些演示案例数据,会不定期更新一些数据集供用户试用。

"public"."hangzhou_poi_sample":存储杭州餐饮、娱乐店的详细信息,包括分类、地理位置和消费者评价等字段信息。image

"public"."hangzhou_districts":杭州市行政区划数据,包括行政区划名称、行政区划代码、行政区划级别、行政区划中心点、经纬度、行政区划边界等字段信息。

image

说明

数据为样例数据,仅用于学习和交流。

案例介绍

您可以通过本文和杭州美食分享案例视频完成杭州美食分享案例。

说明

本文包含杭州美食分析案例中的杭州美食地图分析、杭州高性价比火锅店分析、杭州各行政区美食标签分析三个场景,每个场景之间相互独立,您可以自行选择一个或多个场景完成杭州美食分享案例。

  • 杭州美食地图分析:使用系统内置数据hangzhou_poi_sample,通过DataV-Atlas分析地图,筛选出杭州美食数据的分布图。使用SQL查询显示杭州500米蜂窝网格中的美食店铺数量,通过3D视图立体的展示人均消费情况。可以使用分屏视图和滑动视图,清晰地进行视图对比。完成后,您将得到类似下图的分析地图。image

  • 杭州高性价比火锅店分析:使用系统内置数据hangzhou_poi_sample,通过DataV-Atlas分析地图,查询杭州高性价比火锅的分布信息。在图层中添加交互信息,通过店名、人均消费、评分等文字标签数据,展示火锅店的具体信息,更加清晰地展示地图分析数据。完成后,您将得到类似下图的分析地图。image

  • 杭州各行政区美食标签分析:使用系统内置数据hangzhou_poi_sample、hangzhou_districts,通过DataV-Atlas分析地图,查询显示杭州各行政区的区域美食分布。使用SQL查询出杭州区域美食的标注点,在图层中添加交互信息,通过区域名称、二级分类、类型数量、标注字段标签数据,展示杭州各行政区域美食标注点的具体信息。完成后,您将得到类似下图的分析地图。image

创建项目

创建杭州美食地图分析项目。

  1. 登录DataV-Atlas控制台

  2. 在菜单栏单击我的项目,进入项目管理界面。

  3. 单击全部项目下的新建地理分析项目,输入项目名称并选择项目分组(默认全部项目)。本文示例项目名称为杭州美食地图演示,实际使用时,您也可按需自定义。

  4. 单击创建项目,完成项目创建。项目成功创建后,将自动跳转到项目数据添加界面。在该界面,您可进行后续的数据导入、分析等操作。

创建杭州美食分析案例

场景一:杭州美食地图分析

步骤一:添加并筛选美食数据

添加杭州餐饮娱乐信息表并通过SQL查询方式筛选美食数据。

  1. 在数据源添加窗口下选中已有数据集 > Atlas演示数据库 > public > hangzhou_poi_sample,单击添加到项目

  2. 系统将默认创建一个表数据源和一个对应的可视化图层。页面将展示杭州餐饮娱乐店在地图中的位置信息。

    说明

    一个数据源可以关联创建多个图层,一个图层只能对应一个数据源。

    image

  3. 在左侧导航栏中选择数据源,单击数据源右上方的image图标选择转为SQL查询。转化为SQL查询成功之后,该数据源将出现image图标。image

  4. 单击image图标,页面底部将弹出SQL查询窗口,在页面底部单击鼠标右键选择Format Document可以对SQL进行格式化操作,方便进行查看和修改。image

  5. 修改SQL语句,从杭州餐饮娱乐信息表中查询出一级分类为美食的数据。

    SQL代码如下

    SELECT
      "id",
      "店名",
      "一级分类",
      "二级分类",
      "三级分类",
      "区域",
      "商圈",
      "地址",
      "评分",
      "人均消费",
      "热度",
      "geom"
    FROM
      "public"."hangzhou_poi_sample"
      WHERE "一级分类" = '美食';
  6. 单击SQL运行窗口的预览查询结果按钮进行结果预览,确定无误后单击运行,您将获取如下数据分析地图。image

  7. 在左侧导航栏单击image图标进入图层,选择基础热力点并设置热力点的半径,单击image图标选择重命名,修改图层名称为美食热力。image

  8. 在左侧导航栏单击image图标进入地图工具,设置样式模板雅士灰,使数据可视化效果更加明显。

  9. 鼠标悬浮至图层名称上单击image图标对当前图层进行隐藏,方便后续图层查看。

步骤二:聚合店铺数量,查看店铺分布

为了进一步分析美食地图数据,需要聚合美食店铺的数量,查看店铺的分布情况。下文将通过SQL查询方式对店铺数量和店铺分布数据进行分析。

  1. 单击image图标进入数据源页面,单击添加数据,选择SQL查询,单击添加到项目,在提示框中单击确认,完成自定义SQL查询的创建。image

  2. 添加SQL语句并执行,查询杭州范围内每个半径500米格子内的美食店铺数量。

    SQL代码如下

    --计算杭州范围500米半径蜂窝网格中每个格子内的美食店铺数量
    SELECT
      COUNT(*) AS 店铺数量,
      hexes.geom AS geom
    FROM
    --使用ST_HexagonGrid函数创建一个500米半径的蜂窝网格
      ST_HexagonGrid (
        500.0 / 111000.0,
        ST_SetSRID (
          ST_EstimatedExtent ('public', 'hangzhou_poi_sample', 'geom')::geometry,
          4326
        )
      ) AS hexes
      INNER JOIN public.hangzhou_poi_sample AS P ON ST_Intersects (p.geom, hexes.geom)
      AND 一级分类 = '美食'
    GROUP BY
      hexes.geom;
    说明
    • SQL代码首先使用ST_HexagonGrid函数创建一个500米半径的蜂窝网格。将这个网格与hangzhou_poi_sample表中一级分类为美食的数据进行交集计算,最后对每个网格计算美食店铺数量,并按照网格的几何信息分组。

    • ST_HexagonGrid函数是一个空间数据库函数,用于生成一个六边形网格,在地理信息系统(GIS)中经常用于空间分析和数据可视化。该函数接受一个中心点和一个边长作为输入参数,然后生成一个覆盖该中心点的六边形网格。这个函数可以帮助用户快速生成地理空间数据,用于分析和可视化。

  3. 在左侧导航栏单击image图标进入图层,单击image图标选择重命名,修改图层名称为500米蜂窝聚合。

  4. 选中图层,在图层配置中对颜色通过店铺数量进行映射并选择合适的色板,通过缩放底图可以很清楚的看到杭州美食的聚集区域。image

  5. 鼠标悬浮至图层名称上单击image图标对当前图层进行隐藏,方便进行后续图层的效果查看。

步骤三:查询人均消费,展示平均消费数量

通过查询展示人均消费情况完成对杭州美食地图的分析。下文将通过SQL查询方式对人均消费数据进行分析。

  1. 单击image图标进入数据源页面,单击添加数据,选择SQL查询,单击添加到项目,在提示框中单击确认,完成自定义SQL查询的创建。image

  2. 添加SQL语句并执行,查询杭州范围500半径蜂窝网格中的人均消费。

    SQL语句如下

    --查询杭州范围500半径蜂窝网格中的人均消费
    SELECT
      hexes.geom AS geom,
      AVG(人均消费) AS 人均消费
    FROM
    --使用ST_HexagonGrid函数创建一个500米半径的蜂窝网格
      ST_HexagonGrid (
        500.0 / 111000.0,
        ST_SetSRID (
          ST_EstimatedExtent ('public', 'hangzhou_poi_sample', 'geom')::geometry,
          4326
        )
      ) AS hexes
      INNER JOIN public.hangzhou_poi_sample AS P ON ST_Intersects (p.geom, hexes.geom)
      AND 一级分类 = '美食'
      AND 人均消费 IS NOT NULL ---过滤人均消费为空的数据。
    GROUP BY
      hexes.geom;
    说明

    ST_HexagonGrid函数是一个空间数据库函数,用于生成一个六边形网格,在地理信息系统(GIS)中经常用于空间分析和数据可视化。该函数接受一个中心点和一个边长作为输入参数,然后生成一个覆盖该中心点的六边形网格。这个函数可以帮助用户快速生成地理空间数据,用于分析和可视化。

  3. 在左侧导航栏单击image图标进入图层,单击image图标选择重命名,修改名称为500米蜂窝均价聚合。

  4. 选中500米蜂窝均价聚合图层,选择三维区域面进行展示,对拉伸高度和颜色通过人均消费进行映射并选择合适的色板。在地图中单击image图标切换为3D视角,立体地展示人均消费情况。image

  5. 在右侧工具栏单击image图标可以切换分屏视图滑动视图,可以更清晰地对视图进行对比。

    2024-10-12_10-13-50

说明

杭州美食分析场景使用渐进式色板分析数据。

  • 美食热力图层:颜色越深,店铺数量越多。

  • 500米蜂窝聚合图层:颜色越深,每个半径500米格子内的美食店铺数量越多。

  • 500米蜂窝均价聚合图层:使用3D视图,柱状体高度越高,每个半径500米格子内人均消费越高。

通过数据可视化分析可以发现,杭州美食分布是非常不均衡的。人口和GDP大区-余杭区,美食数量少且高分店铺少。鉴于余杭区是互联网公司的聚集地,网络声量最大,由此造成了“杭州是美食荒漠”的网络评论。

场景二:杭州高性价比火锅店分析

步骤一:添加杭州火锅店评分

通过SQL查询杭州高性价比火锅店分布信息,添加火锅店的评分信息。

  1. 单击image图标进入数据源页面,单击添加数据,选择SQL查询,单击添加到项目,在提示框中单击确认,完成自定义SQL查询的创建。image

  2. 添加SQL语句并执行,查询杭州评分大于4并且人均消费大于200的火锅店。

    SQL语句如下

    SELECT
      "店名",
      "人均消费",
      "评分",
      geom
    FROM
      "public"."hangzhou_poi_sample"
    WHERE
      "一级分类" = '美食'
      AND "二级分类" = '火锅'
      AND "评分" > 4
      AND "人均消费" > 200;
  3. 在左侧导航栏单击image图标进入图层,进行如下配置并单击image图标选择重命名,修改名称为火锅店评分。

  4. 选中火锅店评分图层,修改图层点颜色为绿色,对半径通过评分进行映射。image

步骤二:标注人均消费和评分信息

对火锅店人均消费和评分信息进行标注,完成杭州高性价比火锅店的数据分析。

  1. 选中火锅店评分图层,单击图层上的image图标选择复制图层,修改新图层名称为火锅店人均消费,修改图层点颜色为黄色,对图层半径通过人均消费进行映射。image

  2. 选中火锅店人均消费图层,单击图层上的image图标选择复制图层,修改新图层名称为火锅店标注,对图层点半径通过人均消费进行映射,添加店名为文字标签,对文字标签的水平偏移量、字号、字色、描边粗细进行修改。imageimage

  3. 为了更直观地显示火锅评分信息,可以给图层添加交互。单击左侧导航栏中的image图标,在点击页签中选择字段店名人均消费评分为火锅店标注图层添加点击提示交互信息。在分析地图中单击火锅店信息的分布点,查看杭州高性价比火锅店分析。

    image

说明

火锅店评分为绿色;人均消费为黄色。

  • 绿色越大:评分越高。

  • 黄色越大:消费越高。

  • 绿色大黄色小:表示性价比越高。

通过高性价比火锅店数据的分析,可以发现海鲜火锅的总体性价比较高,因此选择请客吃饭的时候可以优先考虑海鲜火锅。

场景三:杭州各行政区美食标签分析

步骤一:行政区美食标签

通过SQL查询方式对行政区数据表与美食兴趣点数据表进行关联分析,展示杭州各行政区域美食分布信息。

  1. 单击image图标进入数据源页面,单击添加数据,选择SQL查询,单击添加到项目,在提示框中单击确认,完成自定义SQL查询的创建。image

  2. 添加SQL语句并执行,查询每个区数量最多的二级分类类别作为该区域的标签,并排除小吃快餐、水果生鲜、面馆以及本帮江浙菜。

    SQL代码如下

    --查询每个区数量最多的二级分类类别作为该区域的标签,并排除小吃快餐、水果生鲜、面馆以及本帮江浙菜。
    WITH
      CategoryCounts AS (
        SELECT
          b.name AS 区域名称,
          p.二级分类 AS 二级分类,
          COUNT(p.二级分类) AS 类型数量,
          b.geom AS geom
        FROM
          public.hangzhou_districts b --存储杭州市行政区划信息的数据表
          --ST_Contains  查询网格对象代表的空间范围和几何对象是否是包含关系。
          JOIN public.hangzhou_poi_sample p ON ST_Contains (b.geom, p.geom)
        WHERE
          一级分类 = '美食'
          AND 二级分类 NOT IN ('小吃快餐', '水果生鲜', '面馆', '本帮浙江菜')
        GROUP BY
          b.name,
          p.二级分类,
          b.geom
      ),
      RankedCategories AS (
        SELECT
          区域名称,
          二级分类,
          类型数量,
          ROW_NUMBER() OVER (
            PARTITION BY
              区域名称
            ORDER BY
              类型数量 DESC
          ) AS RANK,
          geom
        FROM
          CategoryCounts
      )
    SELECT
      区域名称,
      二级分类,
      类型数量,
      区域名称 || '
           ' || '美食标签:' || 二级分类 AS 标注字段,
      geom
    FROM
      RankedCategories
    WHERE
      RANK = 1;
    说明
    • SQL代码中使用CTE公用表达式格式为临时命名结果集,用于简化SQL。

    • ST_ContainsGanos时空引擎的语法,详情请参见ST_Contains

  3. 在左侧导航栏单击image图标进入图层,进行如下配置并单击image图标选择重命名,修改名称为各区域美食标签区域着色。

  4. 选中图层,对颜色通过类型数量进行映射并调整色板,直观地展示杭州各行政区域美食分布信息。image

步骤二:添加标注点和图层交互显示

为杭州各区域美食分布地图添加标注点和图层交互显示,完成杭州各行政区美食标签分析。

  1. 单击image图标进入数据源页面,单击添加数据,选择SQL查询,单击添加到项目,在提示框中单击确认,完成自定义SQL查询的创建。image

  2. 添加SQL语句并执行,查询美食区域的标注点。

    SQL语句如下

    --查询杭州各行政区域美食的标注点
    WITH
      CategoryCounts AS (
        SELECT
          b.name AS 区域名称,
          p.二级分类 AS 二级分类,
          COUNT(p.二级分类) AS 类型数量,
           --通过几何对象b.geom计算出该多边形区域的一个中心点
          ST_PointOnSurface (b.geom) AS geom 
        FROM
          public.hangzhou_districts b --存储杭州市行政区划信息的数据表
          JOIN public.hangzhou_poi_sample p ON ST_Contains (b.geom, p.geom)
        WHERE
          一级分类 = '美食'
          AND 二级分类 NOT IN ('小吃快餐', '水果生鲜', '面馆', '本帮浙江菜')
        GROUP BY
          b.name,
          p.二级分类,
          b.geom --用于存储杭州市行政区划多边形区域的几何信息
      ),
      RankedCategories AS (
        SELECT
          区域名称,
          二级分类,
          类型数量,
          ROW_NUMBER() OVER (
            PARTITION BY
              区域名称
            ORDER BY
              类型数量 DESC
          ) AS RANK,
          geom
        FROM
          CategoryCounts
      )
    SELECT
      区域名称,
      二级分类,
      类型数量,
      区域名称 || '
           ' || '美食标签:' || 二级分类 AS 标注字段,
      geom
    FROM
      RankedCategories
    WHERE
      RANK = 1;
    说明

    ST_PointOnSurfaceGanos时空引擎的语法,详情请参见ST_PointOnSurface

  3. 在左侧导航栏单击image图标进入图层,进行如下配置并单击image图标选择重命名,修改名称为各区域美食标签标注。

  4. 选中图层,设置文字标签为标注字段,调整字色和字号,展示区域美食标注信息。image

  5. 为了更直观地显示区域,可以给图层添加交互。单击左侧导航栏中的image图标,在悬浮页签下选择字段区域名称二级分类类型数量标注字段为各区域美食标签标注信息添加点击提示交互信息。鼠标悬浮在分析地图中美食区域的分布点,查看杭州各行政区美食标签分析。image通过杭州各区域美食标签数据的分析,可以看出西湖区和拱墅区的咖啡厅数量很多,因此可以得出这两个地区上班族工作强度偏高的结论。

项目分享

您可将地图分析项目生成公开链接,与您的朋友分享。

  1. 单击页面左下角的预览按钮,可以新窗口查看创建好的分析地图。

  2. 单击页面左下角的分享按钮,单击分享项目即可进入项目分享页面。

  3. 单击分享链接右侧的复制图标。image

  4. 打开浏览器,将复制的链接粘贴到地址栏中,即可在线查看发布成功的分析地图。