在Power BI中创建形状地图可视化效果

适用于:✅ Power BI Desktop 和 Power BI 服务

使用 形状地图 可视化对象可在您定义的任何形状上显示数据,例如国家、区域、平面图、座位图或自定义边界。 根据数据为每个区域着色,以快速发现模式、比较区域之间的值,并突出显示需要注意的区域。 从常见区域的内置映射中进行选择,上传自己的 TopoJSON 或 GeoJSON 文件,或通过 URL 直接引用地图。

形状地图示例的屏幕截图。

创建形状图

可以使用内置地图测试 形状地图 控件,也可以使用自己的自定义地图,只要它满足以下部分所述的要求,即 使用自定义地图。 形状地图 视觉对象基于可在 Internet 上查找、自行创建或转换为 TopoJSON 或 GeoJSON 格式的地图。 自定义地图包括地理位置、座位安排和楼层平面图等等。

添加形状地图可视化

  1. 在Power BI桌面或Power BI 服务中打开或创建报表。
  2. 在 “可视化效果 ”窗格中,选择 “形状地图 ”图标以向画布添加空视觉对象。
  3. (可选)调整视觉对象的大小,使其足够大,可以清楚地查看区域底纹。

用于测试的示例数据

若要尝试包含示例数据的形状地图视觉对象,可以将此 TMDL 脚本添加到空白Power BI桌面文件。 此脚本创建一个表,其中包含美国州和澳大利亚州和地区,以及用于演示目的的随机值。

createOrReplace

	/// Table listing US states and Australian states and territories with random values, used for map visual demos.
	table Map

		/// Sum of RandomValue from the Map table, used for the map visual demo.
		measure 'Some value' = ```
				
				        SUM(Map[RandomValue])
				```
			formatString: #,0

		column RandomValue
			formatString: 0
			summarizeBy: sum
			isNameInferred
			sourceColumn: [RandomValue]

			annotation SummarizationSetBy = Automatic

		column 'Country or Region'
			dataCategory: Country
			summarizeBy: none
			isNameInferred
			sourceColumn: [Country or Region]

			annotation SummarizationSetBy = Automatic

		column 'State or Territory'
			dataCategory: StateOrProvince
			summarizeBy: none
			isNameInferred
			sourceColumn: [State or Territory]

			annotation SummarizationSetBy = Automatic

		partition Map = calculated
			mode: import
			source = ```
					
					VAR USAStates = 
					    DATATABLE(
					        "Country or Region", STRING,
					        "State or Territory", STRING,
					        {
					            {"USA", "Alabama"},
					            {"USA", "Alaska"},
					            {"USA", "Arizona"},
					            {"USA", "Arkansas"},
					            {"USA", "California"},
					            {"USA", "Colorado"},
					            {"USA", "Connecticut"},
					            {"USA", "Delaware"},
					            {"USA", "Florida"},
					            {"USA", "Georgia"},
					            {"USA", "Hawaii"},
					            {"USA", "Idaho"},
					            {"USA", "Illinois"},
					            {"USA", "Indiana"},
					            {"USA", "Iowa"},
					            {"USA", "Kansas"},
					            {"USA", "Kentucky"},
					            {"USA", "Louisiana"},
					            {"USA", "Maine"},
					            {"USA", "Maryland"},
					            {"USA", "Massachusetts"},
					            {"USA", "Michigan"},
					            {"USA", "Minnesota"},
					            {"USA", "Mississippi"},
					            {"USA", "Missouri"},
					            {"USA", "Montana"},
					            {"USA", "Nebraska"},
					            {"USA", "Nevada"},
					            {"USA", "New Hampshire"},
					            {"USA", "New Jersey"},
					            {"USA", "New Mexico"},
					            {"USA", "New York"},
					            {"USA", "North Carolina"},
					            {"USA", "North Dakota"},
					            {"USA", "Ohio"},
					            {"USA", "Oklahoma"},
					            {"USA", "Oregon"},
					            {"USA", "Pennsylvania"},
					            {"USA", "Rhode Island"},
					            {"USA", "South Carolina"},
					            {"USA", "South Dakota"},
					            {"USA", "Tennessee"},
					            {"USA", "Texas"},
					            {"USA", "Utah"},
					            {"USA", "Vermont"},
					            {"USA", "Virginia"},
					            {"USA", "Washington"},
					            {"USA", "West Virginia"},
					            {"USA", "Wisconsin"},
					            {"USA", "Wyoming"}
					        }
					    )
					VAR AustraliaStates = 
					    DATATABLE(
					        "Country", STRING,
					        "State", STRING,
					        {
					            {"Australia", "New South Wales"},
					            {"Australia", "Victoria"},
					            {"Australia", "Queensland"},
					            {"Australia", "Western Australia"},
					            {"Australia", "South Australia"},
					            {"Australia", "Tasmania"},
					            {"Australia", "Northern Territory"},
					            {"Australia", "Australian Capital Territory"}
					        }
					    )
					VAR AllStates = UNION(USAStates, AustraliaStates)
					RETURN
					    ADDCOLUMNS(
					        AllStates,
					        "RandomValue", RANDBETWEEN(1000, 1000000)
					    )
					```

生成形状图

  1. 选择空的形状地图视觉对象。

  2. 在 “数据 ”窗格中,将地理字段拖到 “位置 ”井(例如“州”、“区域”或“地区”)。

    Tip

    编辑语义模型时,可以通过设置 数据类别 属性将列标记为地理。

  3. 将数字度量值(例如 Sales,Population)拖到 颜色饱和 度井。

  4. 选中视觉对象后,在 “可视化效果 ”窗格中,选择“ 设置视觉对象格式 ”并展开“ 地图设置”。

  5. 从下拉列表中选择 地图类型 (例如意大利、墨西哥、美国)。

  6. 若要显示当前所选地图的地图键,请选择“查看地图类型键”。

  7. 使用“投影”下拉菜单选择将三维对象(地球)显示为二维地图的方式。

    • Equirectangular:为将地球转换为网格的圆柱投影,每个矩形单元格的大小、形状和面积都相同。
    • 墨卡托:圆柱投影,将赤道描绘为切线。 极地地区的变形比等距圆柱投影更严重。
    • 正交:从无限点投影,仿佛来自深空。 它营造出一种三维球体的幻觉。

    有关详细信息,请参阅 Esri 地图投影参考。

  8. (可选)将分类字段添加到 Legend ,按类别对地图区域进行分类。

  9. (可选)在 “可视化效果 ”窗格中,展开 “颜色 ”以调整调色板和其他颜色设置。

显示颜色和地图设置的“形状地图”格式窗格屏幕截图。

使用自定义地图

只要它满足 加载自定义地图中所述的要求,就可以使用内置地图类型或自己的自定义映射。 形状地图视觉对象基于可查找、创建或转换为 TopoJSON 或 GeoJSON 格式的地图(例如:地理区域、座位布局、平面图)。

加载自定义地图

可以通过上传文件或提供 URL 来加载自定义地图。

上传地图文件

  1. 添加或选择形状地图视觉对象。
  2. 在 “可视化效果 ”窗格中,选择“ 设置视觉对象格式 ”并展开 “地图设置”。
  3. 在 “映射类型”中,选择“ 自定义映射”。
  4. 选择 “添加地图类型”。
  5. 浏览到 .topojson 或 .geojson 文件并选择“ 打开”。
  6. (可选)选择 “查看地图类型”键 以验证区域名称或 ID 是否与 “位置” 字段值匹配。

从 URL 添加地图

还可以引用联机托管的映射文件:

  1. 添加或选择形状地图视觉对象。
  2. 在 “可视化效果 ”窗格中,选择“ 设置视觉对象格式 ”并展开 “地图设置”。
  3. 在 “类型”中,选择 URL。
  4. 将 URL 粘贴到 TopoJSON 或 GeoJSON 文件中,输入 URL,或使用 Fx 按钮指向包含 URL 的度量值。

如果要跨多个报表共享地图或使用托管在中心位置的地图,此方法非常有用。

下载和编辑自定义地图

如果之前上传了自定义地图并需要进行更改,则可以下载它:

  1. 选择使用自定义地图的形状地图视觉对象。
  2. 打开 “格式 ”窗格并展开 “地图设置”。
  3. 选择 “下载地图”。
  4. 使用文本编辑器或 GIS 工具根据需要编辑下载的文件。
  5. 使用 “上传地图文件”中的步骤上传更新的文件。

自定义地图示例

美国律师办事处发布了关于诉讼和案件数量数据的年度财务报告。 我们将一些区域数据转换为 .json 文件,并将其添加到此示例 PBIX。

自定义形状地图的演示 .PBIX 文件

如果要试验自定义地图,请下载此 PBIX 文件,然后按照步骤操作。

  1. 在 Power BI Desktop 中,选择文件 > 打开报表。
  2. 由于各州可以划分为多个地区,因此你需要为地区使用自定义形状地图。 通过将美国司法区的 TopoJSON 地图导入 Power BI Desktop,可以直观显示年度财政区域律师数据。

支持的地图格式

形状图支持两种地图文件格式:

  • TopoJSON:对拓扑进行编码的 GeoJSON 扩展。 TopoJSON 文件通常小于 GeoJSON 文件,因为共享边界仅存储一次。
  • GeoJSON:用于编码地理数据结构的开放标准格式。

这两种格式都适用于形状地图。 对于较小的文件大小,请使用 TopoJSON;如果是映射工具生成的,请使用 GeoJSON。

颜色格式设置选项

视觉对象格式选项中的 “颜色 ”部分根据数据配置进行调整:

  • 仅限位置:通过条件格式设置颜色,或为每个区域单独设置颜色。
  • 位置和图例:单独为每个图例值设置不同的颜色。
  • 颜色饱和度:根据“颜色饱和度”字段中的值选取渐变颜色。

还可以为与数据不匹配的区域自定义 空白区域 颜色,并调整 边框 颜色和粗细。

Tip

将 Location 与 默认颜色 条件格式(Fx)配合使用可以实现与使用 颜色饱和度相同的渐变效果。 区别在于,颜色饱和度会自动在工具提示中显示度量值及其名称。 除了渐变选项外,仅将 位置 与 默认颜色 条件格式搭配使用时,还可额外通过规则或字段值设置颜色。

示例:按区域显示渐变色

仅使用 “位置” 字段(不含图例或颜色饱和度)时,可以将条件格式与 DAX 度量值结合使用,以在每个区域中创建渐变效果。 以下度量值基于总销售额计算十六进制颜色,每个区域都使用自己的调色板。 销售额较高的州看起来更饱和,而销售较低的州则显得比较轻。

Region Gradient Color = 
VAR ScaleWithinRegion = TRUE
VAR CurrentSales = [Total Sales]

VAR ScopeMin =
    IF (
        ScaleWithinRegion,
        CALCULATE (
            MINX ( VALUES ( StateRegion[StateName] ), [Total Sales] ),
            ALLEXCEPT ( StateRegion, StateRegion[Region] )
        ),
        CALCULATE (
            MINX ( VALUES ( StateRegion[StateName] ), [Total Sales] ),
            ALL ( StateRegion )
        )
    )

VAR ScopeMax =
    IF (
        ScaleWithinRegion,
        CALCULATE (
            MAXX ( VALUES ( StateRegion[StateName] ), [Total Sales] ),
            ALLEXCEPT ( StateRegion, StateRegion[Region] )
        ),
        CALCULATE (
            MAXX ( VALUES ( StateRegion[StateName] ), [Total Sales] ),
            ALL ( StateRegion )
        )
    )

VAR Ratio =
    DIVIDE ( CurrentSales - ScopeMin, ScopeMax - ScopeMin )

VAR Region = SELECTEDVALUE ( StateRegion[Region] )

VAR EndR = SWITCH ( Region,
    "Northwest", 17,  "Northeast", 216, "Southeast", 116,
    "Southwest", 224, "Alaska", 17,     "Hawaii", 17,    128 )
VAR EndG = SWITCH ( Region,
    "Northwest", 141, "Northeast", 106, "Southeast", 78,
    "Southwest", 68,  "Alaska", 141,    "Hawaii", 141,   128 )
VAR EndB = SWITCH ( Region,
    "Northwest", 255, "Northeast", 44,  "Southeast", 194,
    "Southwest", 68,  "Alaska", 255,    "Hawaii", 255,   128 )

VAR TintStrength = 0.15
VAR StartR = 255 - ( 255 - EndR ) * TintStrength
VAR StartG = 255 - ( 255 - EndG ) * TintStrength
VAR StartB = 255 - ( 255 - EndB ) * TintStrength

VAR R01 = MIN ( 1, MAX ( 0, Ratio ) )

VAR R = INT ( StartR + ( EndR - StartR ) * R01 )
VAR G = INT ( StartG + ( EndG - StartG ) * R01 )
VAR B = INT ( StartB + ( EndB - StartB ) * R01 )

VAR HexChars = "0123456789ABCDEF"
VAR Hex =
    "#" &
    MID ( HexChars, QUOTIENT ( R, 16 ) + 1, 1 ) & MID ( HexChars, MOD ( R, 16 ) + 1, 1 ) &
    MID ( HexChars, QUOTIENT ( G, 16 ) + 1, 1 ) & MID ( HexChars, MOD ( G, 16 ) + 1, 1 ) &
    MID ( HexChars, QUOTIENT ( B, 16 ) + 1, 1 ) & MID ( HexChars, MOD ( B, 16 ) + 1, 1 )

RETURN
    IF ( ISBLANK ( CurrentSales ), "#FFFFFF", Hex )

若要使用此度量值,

  1. 将度量值添加到语义模型。
  2. 在“形状地图”视觉对象中,将你的位置字段添加到 位置 字段槽。
  3. 在“格式”窗格中,展开 “颜色>位置”。
  4. 选择默认值旁边的 Fx 按钮。
  5. 将 格式样式 设置为 字段值,并选择 Region Gradient Color 度量。

每个州都会根据其销售额相对于同一区域内其他州的高低显示不同的颜色深浅。

形状地图的屏幕截图,其中显示了按区域着色的美国各州,并根据总销售额以渐变饱和度显示。

获取地图数据

若要将数据快速获取到模型中以测试形状地图,请复制本文末尾的其中一个表,然后选择“开始”功能区中的“输入数据”。

最上面的一行自动标识为标题。 通过在右侧的空白列中键入新列名来输入新列。 像在 Excel 中那样在每个单元格中添加值。 完成后,选择“ 加载”。 该表已添加到数据模型中。

注释

使用国家/地区时,请使用三字母缩写来确保地理编码在地图可视化效果中正常工作。 不要 使用双字母缩写,因为某些国家/地区可能无法正确识别。

如果只有两字母缩写,请参阅这篇外部博文,了解将两字母国家/地区缩写与三字母国家/地区缩写相关联的具体步骤。

注意事项和限制

使用 形状地图时,请考虑以下事项:

  • 必须为图例分类设置颜色饱和度存储桶才能正常工作。
  • 形状地图可视化最多可绘制 1,500 个数据点。

区域键

使用以下 区域键 测试 形状映射。

澳大利亚:州

ID 缩写 ISO Name 邮政
au-wa WA AU-WA Western Australia WA
au-vic Vic AU-VIC Victoria VIC
au-tas Tas AU-TAS Tasmania TAS
au-sa SA AU-SA South Australia SA
au-qld Qld AU-QLD Queensland QLD
au-nt NT AU-NT Northern Territory NT
au-nsw NSW AU-NSW New South Wales NSW
au-act ACT AU-ACT Australian Capital Territory ACT

奥地利:州

ID ISO Name 英语名称 邮政
at-wi AT-9 Wien Vienna WI
at-vo AT-8 Vorarlberg Vorarlberg VO
at-tr AT-7 Tirol Tyrol TR
at-st AT-6 Steiermark Styria ST
at-sz AT-5 Salzburg Salzburg SZ
at-oo AT-4 Oberösterreich Upper Austria OO
at-no AT-3 Niederösterreich Lower Austria NO
at-ka AT-2 Kärnten Carinthia KA
at-bu AT-1 Burgenland Burgenland BU

巴西:州

ID
Tocantins
Pernambuco
Goiás
Sergipe
São Paulo
Santa Catarina
Roraima
Rondônia
Rio Grande do Sul
Rio Grande do Norte
Rio de Janeiro
Piauí
Paraná
Paraíba
Pará
Minas Gerais
Mato Grosso
Maranhão
Mato Grosso do Sul
Distrito Federal
Ceará
Espírito Santo
Bahia
Amazonas
Amapá
Alagoas
Acre
Litigated Zone 1
Litigated Zone 2
Litigated Zone 3
Litigated Zone 4

加拿大:省

ID ISO Name 邮政
ca-nu CA-NU Nunavut NU
ca-nt CA-NT Northwest Territories NT
ca-yt CA-YT Yukon YT
ca-sk CA-SK Saskatchewan SK
ca-qc CA-QC Quebec QC
ca-pe CA-PE Prince Edward Island PE
ca-on CA-ON Ontario ON
ca-ns CA-NS Nova Scotia NS
ca-nl CA-NL Newfoundland and Labrador NL
ca-nb CA-NB New Brunswick NB
ca-mb CA-MB Manitoba MB
ca-bc CA-BC British Columbia BC
ca-ab CA-AB Alberta AB

法国:区域

ID Name 英语名称
Auvergne-Rhone-Alpes
Bourgogne-Franche-Comte
Bretagne Bretagne
Centre-Val de Loire Centre-Val de Loire Centre-Val de Loire
Corse Corse Corsica
Grand Est
Guadeloupe
Hauts-de-France
Ile-de-France Île-de-France Ile-de-France
La Reunion
Mayotte
Normandie Normandie
Nouvelle-Aquitaine
Occitanie
Pays de la Loire Pays de la Loire Pays de la Loire
Provence-Alpes-Cote d'Azur Provence-Alpes-Côte d'Azur Provence-Alpes-Cote d'Azur

德国:州

ID ISO Name 英语名称 邮政
de-be DE-BE Berlin Berlin BE
de-th DE-TH Thüringen Thuringia TH
de-st DE-ST Sachsen-Anhalt Saxony-Anhalt ST
de-sn DE-SN Sachsen Saxony SN
de-mv DE-MV Mecklenburg-Vorpommern Mecklenburg-Vorpommern MV
de-bb DE-BB Brandenburg Brandenburg BB
de-sh DE-SH Schleswig-Holstein Schleswig-Holstein SH
de-sl DE-SL Saarland Saarland SL
de-rp DE-RP Rheinland-Pfalz Rhineland-Palatinate RP
de-nw DE-NW Nordrhein-Westfalen North Rhine-Westphalia NW
de-ni DE-NI Niedersachsen Lower Saxony NI
de-he DE-HE Hessen Hesse HE
de-hh DE-HH Hamburg Hamburg HH
de-hb DE-HB Bremen Bremen HB
de-by DE-BY Bayern Bavaria BY
de-bw DE-BW Baden-Württemberg Baden-Wurttemberg BW

爱尔兰:郡

ID
Wicklow
Wexford
Westmeath
Waterford
Sligo
Tipperary
Roscommon
Offaly
Monaghan
Meath
Mayo
Louth
Longford
Limerick
Leitrim
Laoighis
Kilkenny
Kildare
Kerry
Galway
Dublin
Donegal
Cork
Clare
Cavan
Carlow

意大利:区域

ID ISO Name 英语名称 邮政
it-vn IT-34 Veneto Veneto VN
it-vd IT-23 Valle d'Aosta Aosta Valley VD
it-um IT-55 Umbria Umbria UM
it-tt IT-32 Trentino-Alto Adige Trentino-South Tyrol TT
it-tc IT-52 Toscana Tuscany TC
it-sc IT-82 Sicilia Sicily SC
it-sd IT-88 Sardegna Sardinia SD
it-pm IT-21 Piemonte Piedmont PM
it-ml IT-67 Molise Molise ML
it-mh IT-57 Marche Marche MH
it-lm IT-25 Lombardia Lombardy LM
it-lg IT-42 Liguria Liguria LG
it-lz IT-62 Lazio Lazio LZ
it-fv IT-36 Friuli-Venezia Giulia Friuli-Venezia Giulia FV
it-er IT-45 Emilia-Romagna Emilia-Romagna ER
it-cm IT-72 Campania Campania CM
it-lb IT-78 Calabria Calabria LB
it-bc IT-77 Basilicata Basilicata BC
it-pu IT-75 Apulia Puglia PU
it-ab IT-65 Abruzzo Abruzzo AB

墨西哥:州

ID 缩写 ISO Name 英语名称 邮政
mx-zac Zac. MX-ZAC Zacatecas Zacatecas ZA
mx-yuc Yuc. MX-YUC Yucatán Yucatan YU
mx-ver Ver. MX-VER Veracruz Veracruz VE
mx-tla Tlax. MX-TLA Tlaxcala Tlaxcala TL
mx-tam Tamps. MX-TAM Tamaulipas Tamaulipas TM
mx-tab Tab. MX-TAB Tabasco Tabasco TB
mx-son Son. MX-SON Sonora Sonora SO
mx-sin Sin. MX-SIN Sinaloa Sinaloa SI
mx-slp S.L.P. MX-SLP San Luis Potosí San Luis Potosi SL
mx-roo Q.R. MX-ROO Quintana Roo Quintana Roo QR
mx-que Qro. MX-QUE Querétaro Queretaro QE
mx-pue Pue. MX-PUE Puebla Puebla PU
mx-oax Oax. MX-OAX Oaxaca Oaxaca OA
mx-nle N.L. MX-NLE Nuevo León Nuevo Leon NL
mx-nay Nay. MX-NAY Nayarit Nayarit NA
mx-mor Mor. MX-MOR Morelos Morelos MR
mx-mic Mich. MX-MIC Michoacán Michoacan MC
mx-mex Méx. MX-MEX Estado de México Mexico State MX
mx-jal Jal. MX-JAL Jalisco Jalisco JA
mx-hid Hgo. MX-HID Hidalgo Hidalgo HI
mx-gro Gro. MX-GRO Guerrero Guerrero GR
mx-gua Gto. MX-GUA Guanajuato Guanajuato GT
mx-dur Dgo. MX-DUR Durango Durango DU
mx-dif CDMX. MX-DIF Ciudad de México Mexico City DF
mx-col Col. MX-COL Colima Colima CL
mx-coa Coah. MX-COA Coahuila Coahuila CA
mx-chh Chih. MX-CHH Chihuahua Chihuahua CH
mx-chp Chis. MX-CHP Chiapas Chiapas CP
mx-cam Camp. MX-CAM Campeche Campeche CM
mx-bcs B.C.S. MX-BCS Baja California Sur Baja California Sur BS
mx-bcn B.C. MX-BCN Baja California Baja California BN
mx-agu Ags. MX-AGU Aguascalientes Aguascalientes AG

荷兰:省

ID ISO Name 英语名称
nl-zh NL-ZH Zuid-Holland South Holland
nl-ze NL-ZE Zeeland Zeeland
nl-ut NL-UT Utrecht Utrecht
nl-ov NL-OV Overijssel Overijssel
nl-nh NL-NH Noord-Holland North Holland
nl-nb NL-NB Noord-Brabant North Brabant
nl-li NL-LI Limburg Limburg
nl-gr NL-GR Groningen Groningen
nl-ge NL-GE Gelderland Gelderland
nl-fr NL-FR Fryslân Friesland
nl-fl NL-FL Flevoland Flevoland
nl-dr NL-DR Drenthe Drenthe

英国:国家/地区

ID ISO Name
gb-wls GB-WLS Wales
gb-sct GB-SCT Scotland
gb-nir GB-NIR Northern Ireland
gb-eng GB-ENG England

美国:州

ID Name 邮政
us-mi Michigan MI
us-ak Alaska AK
us-hi Hawaii HI
us-fl Florida FL
us-la Louisiana LA
us-ar Arkansas AR
us-sc South Carolina SC
us-ga Georgia GA
us-ms Mississippi MS
us-al Alabama AL
us-nm New Mexico NM
us-tx Texas TX
us-tn Tennessee TN
us-nc North Carolina NC
us-ok Oklahoma OK
us-az Arizona AZ
us-mo Missouri MO
us-va Virginia VA
us-ks Kansas KS
us-ky Kentucky KY
us-co Colorado CO
us-md Maryland MD
us-wv West Virginia WV
us-de Delaware DE
us-dc District of Columbia DC
us-il Illinois IL
us-oh Ohio OH
us-ca California CA
us-ut Utah UT
us-nv Nevada NV
us-in Indiana IN
us-nj New Jersey NJ
us-ri Rhode Island RI
us-ct Connecticut CT
us-pa Pennsylvania PA
us-ny New York NY
us-ne Nebraska NE
us-ma Massachusetts MA
us-ia Iowa IA
us-nh New Hampshire NH
us-or Oregon OR
us-mn Minnesota MN
us-vt Vermont VT
us-id Idaho ID
us-wi Wisconsin WI
us-wy Wyoming WY
us-sd South Dakota SD
us-nd North Dakota ND
us-me Maine ME
us-mt Montana MT
us-wa Washington WA