Power BI和Google Maps API(地址查找)

在这篇文章中,我将说明如何使用Google Maps API从Google Maps中检索有用的信息。用例场景可能是从现有的纬度和经度值中获取地址,邮政编码等。数据可以通过任何类型的GPS跟踪设备生成,例如Garmin自行车GPS计算机,Fitbit手表等。我知道您可以将GPS跟踪数据加载到运动社交网络中以分析您的活动。但是,如果您想做一些更具体的数据分析,例如在骑自行车活动期间您在城市的哪个地区创造了更多的力量,那么这些网站可能不会免费提供您想要的东西。

例如,您可以将设备数据导出为CSV,然后将所有CSV文件导入并附加到Power BI模型中,并创建出色的分析报告。如何将CSV文件导入Power BI模型不在本文的讨论范围之内,因此我将其留给您进行进一步的研究。

GPS跟踪设备正在创建大量数据,包括地理坐标,这些数据可以轻松在Power BI中使用。您只需将纬度和经度放在地图可视化文件上就可以了。

使用坐标Power BI Map

您还可以连接经纬度数据,并将其用作“地图”可视化中的“位置”。

使用位置的Power BI地图

这可以通过M语言的查询编辑器来完成。

在Power BI中根据纬度和经度创建位置

但是,在某些情况下,您还需要在表中提供更多的地理信息,例如国家/地区,城市,邮政编码和街道地址。或者,您可能想在切片器中使用邮政编码。在本文中,我将向您展示如何通过将现有坐标传递给Google Maps地理编码API来从Google Maps中获取所有这些信息。

要求

为了能够执行此发布步骤,您需要:

  • 有一个Google帐号
  • 激活Google Maps Geocoding API
  • 在中找到所需的API Google开发人员指南
  • 在Power BI中使用API
  • GPS设备数据已导出到CSV文件

激活Google Maps Geocoding API

我假设您已经有一个Google帐户,或者您知道如何创建一个新帐户,因此我直接进入下一步,即激活地理编码API。为了能够开始使用Google Maps Geocoding API,您需要先获得一个API密钥。

Google Maps Geocoding API

  • 向下滚动并单击“获取密钥”

获取Google Maps API密钥

  • 这会将您导航到Google Developers Console
  • 点击“是”,然后点击“同意并继续”

获取Google Maps API密钥2

  • 输入名称,然后单击“创建”
  • 获取Google Maps API密钥3

您已成功创建API密钥。我们将在本文的下一部分中使用此密钥。

在Power BI中使用Google Maps地理编码API

现在我们有了一个API密钥,我们可以使用许多可用的Google Geocoding API 这里。如您所见,可以使用许多有用的API来利用Power BI模型。在我的示例中,我需要从我的自行车GPS计算机生成的现有坐标中检索“国家/地区”,“邮政编码”和“街道地址”。因此,我使用反向地址编码(地址查找)。这是一个示例:

https://maps.googleapis.com/maps/api/geocode/json?latlng=-36.8484213,174.7457047&key=YOUR_API_KEY

如果您将上述API复制并粘贴到网络浏览器中,则可以看到其输出,该输出是JSON,提供有关位置的详细信息。

注意: 不要忘记在API末尾复制并粘贴您的API密钥。

Google反向地理编码API的JSON输出

想法是在Power BI中定义一个功能,然后将纬度和经度传递给该功能以获取国家/地区,邮政编码和街道地址。

这个怎么运作

  • 打开Power BI桌面
  • 从网络获取数据
  • 将API粘贴到“ URL”部分,然后单击“确定”。

Power BI桌面从Web获取数据

  • 坚持默认设置,然后单击“连接”

Power BI桌面访问Web内容

  • 这将打开“查询编辑器”
  • 点击“列表”

Power BI桌面查询编辑器展开列表

  • 通过从功能区的“转换”选项卡中单击“到表格”按钮,将列表转换为表格

Power BI桌面将列表转换为表格

  • 点击展开复杂列图标(图片)以展开表格,然后勾选“ formatted_address”和“ types”列,然后单击“确定”

Power BI桌面展开复杂列

Power BI桌面展开复杂列2

  • 同时展开“类型”列

Power BI桌面查询编辑器

  • 过滤“类型”列以显示“国家”,“邮政编码”和“地址”

Power BI桌面查询编辑器过滤器列

Power BI桌面查询编辑器2

  • 我们需要将列作为行,因此需要对表进行转置。因此,转到“变换”选项卡,然后单击“移调”

Power BI桌面转置表

  • 如您所见,第二行包含列名。点击“反向行”以首先显示第二行

Power BI桌面反向行

  • 单击“将第一行用作标题”

Power BI桌面使用第一行作为标题

  • 重命名查询,然后保存模型

Power BI桌面重命名查询

从现有查询创建函数

到目前为止,我们仅加载了一个坐标的地理位置信息。现在我们需要将查询转换为一个函数,以便可以为数据集中的所有坐标调用该查询。

功能构造如下:

 

  • 点击“高级编辑器”

Power BI桌面高级编辑器

  • 根据下面的屏幕截图更改代码

Power BI桌面创建功能

1 –函数内部名称

2 &4 –输入参数

3 &5 –参数的数据类型

6 –功能体

7 –输出

注意: 用于撤销该功能的名称是查询名称,在我们的示例中为“ fn_GeoLocation”。

  • 继续如下修改代码,然后单击“完成”

Power BI桌面功能参数

  • 上面我们所做的是用参数替换了静态纬度和经度。我们用了 ”&”将源代码的两侧连接起来。
  • 单击“完成”后,Power BI会立即将查询作为功能

Power BI桌面调用功能

  • 要测试功能,只需单击“调用”,然后输入纬度和经度,然后单击“确定”。

Power BI桌面调用功能2

Power BI桌面调用功能3

  • 删除调用的功能步骤

我们成功地将查询定义为一个函数,以便我们可以随时调用它。

下一步是从CSV加载GPS数据。我正在使用之前导出为CSV格式的自行车计算机数据。

在此处下载示例CSV文件。

  • 在查询编辑器中,从“主页”选项卡中单击“新来源”,然后单击“ CSV”

Power BI CSV

  • 浏览并打开CSV文件
  • 点击确定

Power BI查询编辑器CSV

  • 在“添加列”选项卡中单击“添加自定义列”,并将其命名为“地理位置”
  • 输入以下公式以调用fn_GeoLocation函数,然后单击“确定”。

Power BI查询编辑器添加新列

注意: 我使用“ Number.ToText”函数将纬度和经度数据类型从数字转换为文本,因为我们将函数参数定义为文本。

  • 您会收到“需要有关数据隐私的信息”警告消息。点击“继续”

Power BI查询编辑器添加新列2

  • 从列表中选择所需的隐私级别,然后单击“保存”

Power BI隐私级别

注意: 在此处了解有关“隐私级别”的更多信息。

  • 向右滚动以查找新添加的列
  • 展开“地理位置”列

Power BI扩展复杂列2

瞧!我们已经获得了所有需要的信息

  • 点击“关闭”&从功能区的“主页”选项卡中应用“应用”,然后等待数据加载到模型中。

Power BI查询编辑器关闭& Apply

注意: 根据您的数据集大小,将数据加载到模型中可能需要一些时间。这是因为将坐标逐行发送到Google Maps,然后将结果加载到模型中,因此,如果您有大型数据集,则过程可能会很慢。 API的使用也有一些限制。

现在,您可以轻松地将新列用于不同目的,例如将“国家/地区”或“邮政编码”放入切片器中,创建“位置”层次结构等。因此,您可以利用从Google Maps获得的信息来做很多有趣的事情。

Power BI和Google Maps API

通用地理位置API

众所周知,并非只有Google提供地理位置API。您可以使用Microsoft Bing Map或HERE Maps执行相同的操作。

更多学习资料:

局限性

使用地址解析API不是免费的,因此在使用免费使用计划时会受到一些限制。例如,您每天只能使用2500个请求,每秒只能使用10个请求。 看看这里以了解有关API使用限制的更多信息.

Microsoft Bing Map和HERE Map等其他替代方案也有一些限制。

有关更多信息,请查看下面的链接:

4 thoughts on “Power BI和Google Maps API(地址查找)

  1. 很好的教程!与距离矩阵api一起使用时,取得了巨大的成功。

  2. 你好保存模型后,我’我收到此错误:

    “来自表wasn的Column1’t found”

    另外,当我展开表格时,它返回2 formatted_address。我应该选择哪一个?

    谢谢。

    1. 我缺少Clumn1时遇到了同样的问题,我尝试将其适合我的桌子,但仍然给我同样的错误消息-

  3. 很棒的教程非常感谢。您是否可以为Google地图方向创建类似的教程?一世’我现在为此苦苦挣扎-
    我已经完成了所有步骤,直到获得可视化效果为止。我也从调用的函数中得到正确的响应,但是我不知道’不知道以后要做什么以及如何在Power BI中将其可视化

有什么想法吗?在这里与我们分享:

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.