加载您自己的地图数据

要能够创建地图可视化,需要访问连接到应用程序中的数据的地理数据。Qlik Sense 可使用:

  • 将位置置于地图层中的字段中的名称数据。
  • 包含 WGS-84 中地理点的字段(纬度和经度)。
  • 包含来自地理图形数据源(KML 文件)的地理点、多边形或线路的字段。

  • 包含 GeoJSONLineStringMultiLineString 格式地理数据的字段。
  • 包含非 WGS-84 坐标的字段(当使用自定义地图作为基本地图时)。

当在启用了数据分析的情况下在数据管理器中加载地图数据时,数据分析服务将标识国家名称、城市名称以及纬度和经度字段,并将相应的几何体加载到新字段中。在数据加载编辑器中,出于便利您可选择将坐标字段组合到单个字段中。有关使用地图数据创建地图的更多信息,请参阅地图

对地图可视化中字段支持的名称数据

地图可视化可使用将位置置于地图层中的字段中的名称数据。可使用以下位置类型: 

  • 大洲名称
  • 国家/地区名称
  • ISO alpha 2 国家/地区代码
  • ISO alpha 3 国家/地区代码
  • 一级行政区域名称。诸如州/省名称
  • 二级行政区域名称
  • 三级行政区域名称。
  • 四级行政区域名称。
  • 城市、村庄或其他填写的地点的名称
  • 邮政编码或 ZIP 码
  • IATA 机场代码
  • ICAO 机场代码
备注:

位置的可用性按国家/地区有所不同。如果指定的位置不可用,则使用位置的坐标或区域数据。

Qlik Sense 使用从公认野外领导者那里获得的地图和位置,他们在自己的测绘工作中使用广为接受的方法和最佳实践标记国界和命名国家。Qlik Sense 可以灵活地让用户能够集成自己另外的背景地图。如果标准地图不合适,Qlik Sense 提供了加载客户提供的背景地图、边界和区域的选项。

KML 文件加载点和区域数据

您可从 KML 文件将数据添加至您在数据管理器数据加载编辑器中的地图。默认情况下,在数据选择对话框中选择全部字段,即使字段不包含任何数据,也是如此。例如,KML 文件可能包含区域数据,但不包含点数据。在您从包含空点或区域字段的 KML 文件添加数据至 Qlik Sense 时,可排除空字段而不会有在没有任何数据的情况下创建地图维度的风险。

当从 KML 字段添加字段至地图层时,如果名称字段包含有意义的名称数据,则应当作为层的维度添加。然后应当将区域或点字段作为位置字段添加。层中数据可视化的方式将没有区别,而名称字段中的文本将显示为工具提升。

备注: 如果 KML 文件不包含任何点数据、线路数据或区域数据,则不能从该文件中加载数据。如果 KML 文件已损坏,则会显示错误信息,并且不能加载数据。

通过数据分析加载地图数据

如果在启用了数据分析的情况下使用数据管理器添加数据来加载地理图形数据,Qlik Sense 将尝试识别您的数据是否包含: 

  • 来自您的数据的国家/地区以及城市名称

  • 单个位置(如城市)的地理点数据(经度和纬度)
  • 表示区域或国家/地区的区域数据(地理点的多边形)

如果识别成功,将自动创建包含地理信息的新字段。

警告: 使用添加数据时,必须启用数据分析。这是默认选择项。如果您禁用数据分析,系统不会检测地理数据,也不会创建包含地理信息的新字段。

如果在数据准备期间已识别城市,则新字段包含地理点,如果已识别国家/地区,则新字段包含区域多边形数据。该字段命名为 <data field>_GeoInfo。例如,如果数据包含名为 Office(包含城市名称)的字段,则会创建包含名为 Office_GeoInfo 的地理点的字段。

备注:

Qlik Sense 分析数据的子集以识别包含城市或国家/地区的字段。如果匹配度小于 75%,则不会创建具有地理信息的字段。如果某个字段未被识别为地理数据,您可以将字段类型手动更改为地理数据。

有关更多信息,请参阅更改字段类型

具有地理信息的字段不会在关联预览面板或表格视图中显示地理点或多边形数据。该数据通常被指示为 [GEO DATA]。这可提高关联表格视图的显示速度。但当您在工作表视图中创建可视化时,该数据可用。

加载数据并将数据格式化

可使用点数据(坐标)创建地图。支持两种格式:

  • 将点数据存储在两个字段中,一个字段表示纬度,一个字段表示经度。您可将字段添加至维度中的点层以及点层中的经度字段。也可将它们组合为单个字段。要将它们组合为单个字段:

    • 如果您在启用了数据分析的情况下使用添加数据来加载表格,则识别纬度和经度字段,并自动创建地理点字段。
    • 如果您使用数据加载脚本加载了数据,您可使用 GeoMakePoint() 函数创建点数据格式为 [x, y] 的单个字段。

      有关更多信息,请参阅示例:使用数据加载脚本从独立的纬度和经度列加载点数据

  • 将点数据存储在一个字段中。将每个点指定为一个 xy 坐标数组:[x, y]。使用地理空间坐标时,此数组对应于[经度, 纬度]

    当使用该格式并将数据加载到数据加载编辑器中时,建议您用 $geopoint; 标记点数据字段。

    有关更多信息:示例:使用数据加载脚本从单列加载点数据

在以下示例中,假定文件包含相同的公司办事处位置数据,但使用两种不同的格式。

示例:使用数据加载脚本从独立的纬度和经度列加载点数据

Excel 文件包含每个办事处的以下内容:

  • 办事处 (Office)
  • 纬度 (Latitude)
  • 经度 (Longitude)
  • 员工数 (Employees)

加载脚本可能如下所示:

LOAD
Office,
Latitude,
Longitude,
Employees
FROM 'lib://Maps/Offices.xls'
(biff, embedded labels, table is (Sheet1$));

 

结合使用 LatitudeLongitude 字段中的数据可为点定义新字段。

运行此脚本,然后创建一个地图可视化。将点维度添加到地图。

您可以通过在 LOAD 脚本上方添加以下字符串选择创建维度 Location

LOAD *, GeoMakePoint(Latitude, Longitude) as Location;

GeoMakePoint() 函数可用于将经度和纬度数据联接在一起。

建议您用 $geoname 标记字段 Office,从而其将被识别为地理点的名称。在 LOAD 命令的最后一个字符串后添加以下行:

TAG FIELDS Office WITH $geoname;

因而完整的脚本如下所示:

LOAD *, GeoMakePoint(Latitude, Longitude) as Location;
LOAD
Office,
Latitude,
Longitude,
Employees
FROM 'lib://Maps/Offices.xls'
(biff, embedded labels, table is (Sheet1$));
 
TAG FIELDS Office WITH $geoname;

运行此脚本,然后创建一个地图可视化。将点维度添加到地图。

示例:使用数据加载脚本从单列加载点数据

Excel 文件包含每个办事处的以下内容:

  • 办事处 (Office)
  • 位置 (Location)
  • 员工数 (Employees)

加载脚本可能如下所示:

LOAD
Office,
Location,
Employees
FROM 'lib://Maps/Offices.xls'
(biff, embedded labels, table is (Sheet1$));

 

字段 Location 包含点数据,并且建议使用 $geopoint 标记此字段,以便将其识别为点数据字段。建议您用 $geoname 标记字段 Office,从而其将被识别为地理点的名称。在 LOAD 命令的最后一个字符串后添加以下行:

TAG FIELDS Location WITH $geopoint;
TAG FIELDS Office WITH $geoname;

因而完整的脚本如下所示:

LOAD
Office,
Location,
Employees
FROM 'lib://Maps/Offices.xls'
(biff, embedded labels, table is (Sheet1$));
TAG FIELDS Location WITH $geopoint;
TAG FIELDS Office WITH $geoname;

 

运行此脚本,然后创建一个地图可视化。将点维度添加到地图。

See also: