首先,我们必须使用任何API服务来获取经纬度
创建bingmapsportal帐户
这里我使用的是Microsoft bing maps API服务,如果您还没有的话,请转到BingMapsPortal帐户到SignUP帐户
SingUp之后,我们将登录,它将重定向到仪表板
生成密钥进入信息中心页面后,我们必须生成密钥以使用静态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以可视化地图通过在表格中创建新的自定义列,使用该自定义调用函数来获取多个纬度
为了显示国家(地区)并在没有鼠标悬停的情况下计算图例,我们创建了自定义图例列使用以下查询
语法:
State Count COLUMN = 'Table'[State]&" - "&CALCULATE(SUM('Table'[Count]), ALLEXCEPT('Table', 'Table'[State]))