如何根据 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 上准备好数据后,我们必须将适当的值拖放到位置、图例、值上。
我正在尝试查找经纬度国家/地区,以便在 Power BI 的世界地图中可视化该国家/地区。
请建议我在 PowerBI 或 PowerBI 工具中可用的任何 API 上查找纬度、经度的过程。
首先,我们必须使用任何 API 服务来获取经纬度
创建bingmapsportal 帐户
这里我使用的是 Microsoft bing 地图 API 服务 如果您还没有,请转到 BingMapsPortal 帐户注册帐户
SingUp 我们登录后,它将重定向到仪表板
生成密钥 到达仪表板页面后,我们必须生成密钥才能使用 restful 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
中创建新的自定义列,使用该自定义调用函数获得多个经纬度为了在鼠标悬停的情况下显示国家和计数图例,我们创建了自定义图例列 使用以下查询
语法:
State Count COLUMN = 'Table'[State]&" - "&CALCULATE(SUM('Table'[Count]), ALLEXCEPT('Table', 'Table'[State]))