This package contains a variety of options related to the general appearance and operation of the Map Center. When a Map Center page is loaded, nhmc.mapCenterInit checks for the presence of a global object called nhmc_config; if that object exists, its values are merged into this package before initialization proceeds, allowing for individual pages to override these options as necessary.
Object
This contains the dimensions of the original SVG images on which the Map Center views are based. Several scaling calculations take these dimensions into account.
Caution
These dimensions should not be changed unless the source vector imagery on which the Map Center views are based also have changed. If you’re attempting to change the size of the map, do so by setting the size of the #map element in CSS.
Object
The Map Center renders maps containing counties gradually to avoid locking up users’ browsers and giving them the dreaded “browser unresponsive” error. To do this, we take the set of counties to be drawn and divide it into several subsets of counties so the browser can catch its breath between subsets. (For more, see nhmc.ctrl.zoomToState.)
This object sets how many subsets should be used. nhmc.config.countySteps.state is used for statewide county maps, and nhmc.config.countySteps.national is used for the nationwide county map. Their values have been reached through some trial and error in performance testing, and we don’t recommend changing them.
Object
This object contains an assortment of named colors for use in various modules. It’s not used much, but it’s there in case it comes in handy.
Object
This object contains the default fill and stroke colors for state and county paths.
Object
This object contains options for the city labels on statewide county maps.
City labels contain three components:
The label is a text element containing the city’s name. It has three configuration options in nhmc.config.cityLabels:
The marker is a black circle placed at the city’s location on the map. It has two configuration options in nhmc.config.cityLabels:
The background is an optional white box that sits behind the label and marker to better distinguish them from the map behind them. This isn’t currently used anywhere in the Map Center, but it has three configuration options in nhmc.config.cityLabels:
backgroundOpacity sets the background’s opacity and may be set to any value from 0 to 1 inclusive; a backgroundOpacity of 1 makes all city label backgrounds completely opaque.
backgroundPadding sets the amount of extra space on each side of the label/marker combination that should be backed by the background element. This property is an array in standard CSS order; that is, the four values in this array are used for the top, right, bottom and left of the city label, in that order.
City labels typically are drawn such that the label is placed to the right of the marker. When this is impractical (either because such a placement would leave the label cut off by the right edge of the map surface or because this label placement would overlap with the label text of another city), though, the label is placed to the left of the marker instead. Because of this, “right” and left” have special meanings in the backgroundPadding property: “right” always refers to the end of the background farthest from the marker, and “left” always refers to the end of the background closest to the marker.
hideBackgrounds should be set to true if backgrounds should not be drawn or false if they should be drawn.
lib/map_center/usps_fips.js contains a few useful sets of identifiers that get used frequently.
Two objects contain mappings to and from USPS state abbreviations:
Some states did not report Republican presidential primary results by county in 2012; these states have additional abbreviations listed for maps with one area for the entire state. For example, the single-area map of Maine corresponds to a state name of Maine (statewide) and an abbreviation of ME_EMPTY.
Two objects contain mappings to and from five-digit FIPS county codes:
nhmc.config.countyToFIPS has full state names as keys and objects as values. Those objects in turn have full county (or county-equivalent) names as keys and FIPS county codes as values. For example:
nhmc.config.countyToFIPS["Virginia"]["Arlington County"] === "51013"
To accommodate the single-area statewide maps described above, there are also sub-objects for each state that has such a map, using the pseudo-FIPS code consisting of the state’s two-digit FIPS code followed by 000 for the “county” comprising the entire state. For example:
nhmc.config.countyToFIPS["Maine (statewide)"]["Maine"] === "23000"
nhmc.config.FIPSToCounty has FIPS county codes as keys and arrays as values. Each array contains two elements: The first is the full state name, and the second is the full county name. For example:
nhmc.config.FIPSToCounty["51013"] === ["Virginia", "Arlington County"]
nhmc.config.FIPSToCounty["23000"] === ["Maine (statewide)", "Maine"]
Object
This object controls the format of values used in a page’s fragment identifier to let users link to specific map views within particular modules or other initial states of module code. (For example, it could be used to share users’ predictions of Electoral College outcomes.) nhmc.ctrl.hashParams handles the setting and getting of these values, but nhmc.config.hashParams controls the characters used to format them within the fragment identifier.