BL Location Map self-updates
Boart Longyear global locations map — interactive dark-mode map of corporate offices and authorized distributors. Usage: [bl_location_map] or [bl_location_map header="false"] to suppress the built-in title header on pages that already carry their own heading.
by Boart Longyear Drilling Products · github.com/lichthaus/bl-location-map · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/lichthaus/bl-location-map/archive/refs/heads/main.zipShips its own WordPress updater (built-in updater), so new versions show up under Dashboard → Updates.
WordPress plugin that renders an interactive global map of Boart Longyear corporate offices and authorized distributors. Dark "Operations Console" style matching the BL Diamond Bit Configurator.
- Corporate offices — orange pulsing markers
- Distributors — blue markers
- Drag / zoom the map; click a marker to open a slide-in detail panel (no popups covering the map)
- Search, region filter, and type toggle (Corporate / Distributor / All)
- Marker clustering when zoomed out
- Mobile responsive (panel becomes full-width)
Installation
- Download the latest ZIP from the Releases page (or zip this repo).
- WordPress admin → Plugins → Add New → Upload Plugin → select the ZIP → Activate.
- Place the shortcode on your contact page:
[bl_location_map]
The plugin auto-checks update.json on the main branch and surfaces new versions in the WP Admin → Plugins update notifier.
Shortcode attributes
| Attribute | Default | Description |
|---|---|---|
header |
true |
Show the built-in "Global Locations" title bar. Set false if your page already carries its own heading. |
height |
78vh |
Map container height. Accepts px, vh, rem, em, %. |
class |
(empty) | Extra CSS class added to the wrapper, useful for theme overrides. |
Examples:
[bl_location_map]
[bl_location_map header="false"]
[bl_location_map height="600px"]
[bl_location_map header="false" height="80vh" class="my-contact-map"]
Updating the locations dataset
Locations live in locations.json. Each row must include numeric lat and lng; rows without coordinates are silently skipped.
{
"region": "North America",
"type": "Corporate", // "Corporate" or "Distributor"
"company": "Boart Longyear …",
"address": "…",
"lat": 40.7608,
"lng": -111.8910,
"contact": "Sales",
"phone": "+1 …",
"email": "info@example.com",
"web": "www.example.com"
}
After editing, bump BL_LOCMAP_VERSION in bl-location-map.php and the version field in update.json, then commit & push — connected sites will see the update notice.
Local preview
Open index.html directly in a browser (no server needed — the dataset is inlined for offline preview).
File layout
bl-location-map/
├── bl-location-map.php Plugin entry, shortcode, asset enqueuing, auto-updater
├── assets/
│ ├── css/location-map.css Dark "Operations Console" styles, scoped to .bl-locmap
│ └── js/location-map.js Leaflet init, filtering, panel logic
├── locations.json Source of truth for all locations
├── index.html Standalone offline preview (data inlined)
├── update.json Auto-updater manifest
└── README.md
Tech notes
- Map library: Leaflet 1.9.4 (MIT, no API key)
- Plugin: Leaflet.markercluster 1.5.3 (MIT)
- Basemap: self-hosted Protomaps dark vector tiles rendered with
protomaps-leaflet— no third-party tile provider, no API key. The.pmtilesarchive is served same-origin fromwp-content/bl-maps/. Seebasemap/README.mdfor hosting and rebuild instructions. (Replaced CARTO Dark Matter in v1.0.8 after its license expired.) - Data injection: PHP loads
locations.json, hands it to JS viawp_localize_scriptplus an inline `