HereBeDragons-1.0
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 will also provide 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.
API:
API/HereBeDragons-1.0
API/HereBeDragons-Pins-1.0
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. The exact details of all map changes are still being worked out, but so far its safe to say that 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 "UI Map ID".
I've been talking with a Blizzard UI developer and we hope that we can provide a migration path from the old IDs to the new one. But it will require all addons which interact with the map to update.
More details on these changes and how HBD is evolving to handle them will be documented here when addons become available in the BfA Alpha/Beta.
This is an awesome lib, but is there any way possible to make pins appear under the minimap player arrow instead of on top? I've tried all layers and texture layer numbers I know of and can't get them under the arrow without them going under the whole minimap. I'm wondering if this is a limitation because of how the minimap arrow is not a lua frame. Do you have any suggestions?
In reply to Venomisto68047:
In reply to Nevcairiel:
When logging into a character located in the Dreamgrove, HBD:GetZoneCoordinatesFromWorld() appears to return zone coordinates for the base zone Val'sharah.
However, it does return zone coordinates for the Dreamgrove after reloading the UI.
I fixed this issue, but please use the issues section of the website in the future to report problems, much easier to track then, thanks!
Not quite. What I'm missing with just UnitPosition(unit) is the handling of the coordinate transformation and the override IDs.
Basically what I'm wishing for is:
@burny_dd
You can just use UnitPosition, the x/y value it returns are the same as HBD:GetPlayerWorldPosition would give you.
Thanks for the library. :-) I was waiting impatiently for LibMapData to update to get one of my addons running properly again.
The transition to HereBeDragons went smoothly. I'm just missing a query function to get the position for a valid unit string. So far you provide that only for the player with GetPlayerZonePosition() but I need party or raid units also. Any chance for adding this in the future?