如何根据 Power BI 上的国家/地区名称查找国家/地区经纬度?

How to find Country lat, long based on Country Name on Power BI?

我正在尝试查找经纬度国家/地区,以便在 Power BI 的世界地图中可视化该国家/地区。

请建议我在 PowerBI 或 PowerBI 工具中可用的任何 API 上查找纬度、经度的过程。

首先,我们必须使用任何 API 服务来获取经纬度

创建bingmapsportal 帐户

这里我使用的是 Microsoft bing 地图 API 服务 如果您还没有,请转到 BingMapsPortal 帐户注册帐户

SingUp 我们登录后,它将重定向到仪表板

生成密钥 到达仪表板页面后,我们必须生成密钥才能使用 restful api 服务

密钥准备就绪后,请参考文档以找到 api 以根据给定国家/地区

获取纬度和经度

我们使用下面的 url 来获得 xml 格式的纬度和经度

http://dev.virtualearth.net/REST/v1/Locations/india?o=xml&key=AjvYaTSLr8dsu4eqeDt0OigOZ_xuTkdVMUQCDMc0gcDPm

使用 virtualearth API 服务获取位置的经纬度 一旦数据可用,我们就必须将其转换为表格形式

创建调用自定义函数 如果我们需要获取多个国家的仪表板,那么我们必须编写自定义调用函数,如下所示并保存。

= (location) =>

let
    Source = Xml.Tables(Web.Contents("http://dev.virtualearth.net/REST/v1/Locations/"&location&")?o=xml&key=AjvYaTSLr8dsu4eqeDt0OigOZ_xuTkdVMUQCDMc0gcDPmj2m57iWiwasSDZSCoNG")),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Copyright", type text}, {"BrandLogoUri", type text}, {"StatusCode", Int64.Type}, {"StatusDescription", type text}, {"AuthenticationResultCode", type text}, {"TraceId", type text}}),
    ResourceSets = #"Changed Type"{0}[ResourceSets],
    ResourceSet = ResourceSets{0}[ResourceSet],
    #"Changed Type1" = Table.TransformColumnTypes(ResourceSet,{{"EstimatedTotal", Int64.Type}}),
    Resources = #"Changed Type1"{0}[Resources],
    #"Expanded Location" = Table.ExpandTableColumn(Resources, "Location", {"Name", "Point", "BoundingBox", "EntityType", "Address", "Confidence", "MatchCode", "GeocodePoint"}, {"Location.Name", "Location.Point", "Location.BoundingBox", "Location.EntityType", "Location.Address", "Location.Confidence", "Location.MatchCode", "Location.GeocodePoint"}),
    #"Location Point" = #"Expanded Location"{0}[Location.Point],
    #"Changed Type2" = Table.TransformColumnTypes(#"Location Point",{{"Latitude", type number}, {"Longitude", type number}})
in
    #"Changed Type2"

使用经纬度可视化地图 通过在 table

中创建新的自定义列,使用该自定义调用函数获得多个经纬度

稍后我们必须将嵌入的 table 数据转换为列数据

为了在鼠标悬停的情况下显示国家和计数图例,我们创建了自定义图例列 使用以下查询

语法:

State Count COLUMN = 'Table'[State]&" - "&CALCULATE(SUM('Table'[Count]), ALLEXCEPT('Table', 'Table'[State]))

在 table 上准备好数据后,我们必须将适当的值拖放到位置、图例、值上。