HereBeDragons is a data API for the World of Warcraft mapping system
HereBeDragons offers a clean and modern API to retrieve the players position, calculate distances and angles between positions, both in global world coordinates and local zone coordinates. The primary goal of this library is to provide an up-to-date and low maintenance alternative to the legacy map libraries like Astrolabe and LibMapData, which both unfortunately are unmaintained and have their own issues due to changes in WoWs API.
On top of a clean API for all map math, HereBeDragons also provides a second library, HereBeDragons-Pins, which replaces the world map and minimap pin management functionality of Astrolabe. This library is roughly based on the pin management code from GatherMate2, which has been thoroughly tested in years of use.
Note for Battle for Azeroth/WoW 8.0
The map data is getting a huge overhaul in 8.0, which means HereBeDragons will be changing as well and moving to 2.0. A lot of the map data is going to change - primarily, the "Map ID" and the "Map Filename" are both going away, as well as the C/Z pair, and are replaced by a new "uiMapID".
We've been provided basic data from Blizzard to migrate the old "MapID" to the new "uiMapID", and HereBeDragons will offer some way to migrate this data in the future. But it will require all addons which interact with the map to update.
The latest Alpha releases of HereBeDragons include the first version of HereBeDragons-2.0 for WoW 8.0. The API has slightly changed where necessary, primarily all "floor" arguments have been dropped and all MapIDs/MapFilenames have been replaced by the new "uiMapID". API documentation is linked above.
Currently, HereBeDragons-2.0 relies on manually extracted map data from the DB2 files, but the hope is that Blizzard will export some of this data through the in-game APIs again, reducing the maintenance burden on updating HereBeDragons-2.0 for me and everyone that uses it.
Update Notes for HereBeDragons-2.0 and WoW 8.0
- All previous map identifiers have been phased out, and you will need to update any map data to the new "uiMapID", which is the only identifier for maps going forward.
- An option to offer migration from map files or 7.x map IDs is still being considered
- The stand-alone HereBeDragons addon has been renamed to just "HereBeDragons" without a version number, update the OptDeps accordingly