如果您有与国家/地区有关的数据,则可能需要可视化并突出显示此地理数据。经典的数据图标在这里不起作用。
幸运的是,PowerShell 可以使用免费的在线地理图表。这是您可以试试这个函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| function Show-MapGraph { param ( [Parameter(Mandatory,ValueFromPipeline)] $InputObject,
[Parameter(Mandatory)] [string] $Property,
[string] $Label = 'Items' )
begin {
$bucket = [System.Collections.ArrayList]::new() } process { $null = $bucket.Add($_) } end { $groups = $bucket | Where-Object { $_.$Property } | Group-Object -Property $Property -NoElement $data = foreach ($group in $groups) { "['{0}',{1}]" -f $group.Name, $group.Count }
$datastring = $data -join "`r`n,"
$HTMLPage = @" google.charts.load('current', { 'packages':['geochart'], }); google.charts.setOnLoadCallback(drawRegionsMap);
function drawRegionsMap() { var data = google.visualization.arrayToDataTable([ ['Country', '$Label'], $datastring ]);
var options = {
colorAxis: {colors: ['#00FF00', '#004400']}, backgroundColor: '#81d4fa', datalessRegionColor: '#AAAABB', defaultColor: '#f5f5f5', };
var chart = new google.visualization.GeoChart(document.getElementById('regions_div'));
chart.draw(data, options); } "@
$timestamp = Get-Date -Format 'HHmmss' $OutPath = "$env:temp\Graph$timestamp.html" $HTMLPage | Out-File -FilePath $OutPath -Encoding utf8 Start-Process $outpath } }
|
Show-MapGraph
基本原理是创建一个 HTML 网页,并通过适当的脚本调用填充它,然后显示它。您需要做的就是通过管道传入您的国家数据,并使用 -Property
指示对象的哪个属性包含国家名称。