【发布时间】:2020-04-16 11:50:31
【问题描述】:
【问题讨论】:
标签: powerbi visualization latitude-longitude powerbi-desktop custom-function
【问题讨论】:
标签: powerbi visualization latitude-longitude powerbi-desktop custom-function
首先,我们必须使用任何 API 服务来获取经纬度
创建 bingmapsportal 帐户
这里我使用的是 Microsoft bing maps 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"
使用 lat long 可视化地图 使用该自定义调用函数通过在表中创建新的自定义列来获得多个纬度
为了在没有鼠标悬停的情况下显示国家和计数图例,我们创建了自定义图例列 使用以下查询
语法:
State Count COLUMN = 'Table'[State]&" - "&CALCULATE(SUM('Table'[Count]), ALLEXCEPT('Table', 'Table'[State]))
【讨论】: