This project is abandoned.

Whether this project is out of date or its author marked it as abandoned, this project is no longer maintained.

If you wish to take this project over, please report it and state your intentions.

Astrolabe is an embeddable library for placing icons on the Minimap, and on World Maps. Icons that are placed on the Minimap using Astrolabe are placed in a special buffer and their positions are continuously updated for player movement, based on the world map coordinates provided when the icon was initially placed. Icons remain in this buffer until they are removed.

Astrolabe also provides functions to compute the in-game distance between two points and translate a point from one zoom level of the map another.  

For full documentation, see:

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of Nevcairiel Nevcairiel Sep 20, 2015 at 10:42 UTC - 0 likes

    If you are looking for an alternative to Astrolabe, which has unfortunately been mostly unmaintained since 2012, consider checking out the new HereBeDragons library, which is now used by TomTom, HandyNotes, Routes, GatherMate2, and more!

  • Avatar of LudovicusMaior LudovicusMaior Jul 05, 2015 at 12:10 UTC - 0 likes

    A small group of us have forked this library and are trying to get it fixed.

    It is not an official fork yet, just a collection of all the patches that we have accumulated.

    In particular we have not solved the problem of the missing terrain floors.

    But since it is critical to the functionality of many addons, it will move forward.

    Search on GitHub!

  • Avatar of Adrian_G2 Adrian_G2 Jul 05, 2015 at 09:46 UTC - 0 likes

    currently the wiki site mentioned by Esamynn seems dead, it redirects to a 404 page on another site,

    seems this addon library is dead and abandoned :( *sigh*

    Last edited Jul 05, 2015 by Adrian_G2
  • Avatar of LudovicusMaior LudovicusMaior Mar 16, 2015 at 15:10 UTC - 0 likes

    Yeah, for Wow-Pro we have patched Astrolabe as follows:

    There are *dozens* of missing map floors in the regular continents.

    Too bad there is not a good way for a library to store learned data. This information is easy enough to discover, but we need a way to persist it later.

  • Avatar of Bodar Bodar Mar 16, 2015 at 12:44 UTC - 0 likes

    Blizzard has changed the constant WORLDMAP_WORLD_ID to WORLDMAP_AZEROTH_ID.

  • Avatar of Barfolomeu Barfolomeu Mar 02, 2015 at 19:26 UTC - 0 likes

    I've tested MMOSimca's changes and it resolves the issues I see with my addon, FlightHUD. As he's stated, this problem has had bugs reported against TomTom, Archy, and a few other addons. Please review this ASAP and merge this patch to trunk.


  • Avatar of MMOSimca MMOSimca Mar 02, 2015 at 06:19 UTC - 1 like

    So after an extensive amount of debugging, I have tracked down the issue that plagues Astrolabe in WoD and causes issues with the Garrison maps. The problem is exactly what Dorwido pointed out in the beginning of December: "There is an strange error, the WorldMapSize dont include data for the garrison if you do a fresh start of the client and login, if you logout a character and relogin or do a /reload it contains the data."

    The root cause is a Blizzard issue. SetMapByID will NOT work for the following 18 maps: It will instead end up at a different MapID when you attempt it. For some reason, 10 of those 18 maps DO actually work with SetMapByID, but only after a reload, and only if you are the same faction as the owner of the map that is being requested (so an individual character can only get 5/10 even after a reload).

    I have come up with a solution for it that solves all 18 cases.
    # For 8 cases, we can just do HarvestedMapData[badMapID] = HarvestedMapData[goodMapID] because it happens that there is another mapID that works that has the exact same data (same number of floors, continent, zone, coordinates). The map file name is different, but that is the only weakness, and this approach is cleaner than hardcoding (imo).
    # Unfortunately, for the remainder of the cases, there is no 'good' MapID (on first reload anyway). We can solve this by hardcoding a few pieces of data (floors, continent, zone, and map file name) for 2 of the 10 maps not solved by the first solution.
    # For the other 8/10 remaining cases, we can just set them equal to the two cases we hardcoded.

    It is fairly ugly code, but I do not think there are many alternatives, and I commented it well to help make up for it. The new code is entirely from line 1274 to 1354 in this Astrolabe.lua

    I hope that you will include this segment of code in your next Astrolabe release, as the issue it addresses seems to be commonly reported.


    Last edited Mar 15, 2015 by MMOSimca
  • Avatar of LaoTseu LaoTseu Jan 05, 2015 at 16:16 UTC - 0 likes

    Question: does the full documentation of the API still exists somewhere? The link above no longer works.

  • Avatar of bknowles98 bknowles98 Dec 17, 2014 at 21:06 UTC - 1 like

    Whenever I enter the Mine in WOD, i receive this error message. It only happens the very first time I enter though....

    Date: 2014-12-17 13:59:47 ID: 1 Error occured in: Global Count: 1 Message: ..\AddOns\Astrolabe\Astrolabe.lua line 799: ..\AddOns\Astrolabe\Astrolabe.lua line 159: attempt to index field '?' (a nil value) Debug: [C]: ? Astrolabe\Astrolabe.lua:799: UpdateMinimapIconPositions() Astrolabe\Astrolabe.lua:1129: OnUpdate() Astrolabe\Astrolabe.lua:1292: Astrolabe\Astrolabe.lua:1291 Locals:

    <no value>

    AddOns: Swatter, v5.21c.5521 (SanctimoniousSwamprat) ArcHUD3, v3.0 AskMrRobot, v19 Astrolabe, v1.0 Atlas, v1.31.00 AtlasBattlegrounds, v1.31.00 AtlasBurningCrusade, v1.31.00 AtlasCataclysm, v1.31.00 AtlasClassicWoW, v1.31.00 AtlasDungeonLocs, v1.31.00 AtlasMistsofPandaria, v1.31.00 AtlasOutdoorRaids, v1.31.00 AtlasScenarios, v1.31.00 AtlasTransportation, v1.31.01 AtlasWrathoftheLichKing, v1.31.00 AucAdvanced, v5.21c.5521 (SanctimoniousSwamprat) AucFilterBasic, v5.21c.5521 (SanctimoniousSwamprat) AucFilterOutlier, v5.21c.5521.5459(5.21c/embedded) AucMatchUndercut, v5.21c.5521.5507(5.21c/embedded) AucScanData, v5.21c.5521 (SanctimoniousSwamprat) AucStatHistogram, v5.21c.5521 (SanctimoniousSwamprat) AucStatiLevel, v5.21c.5521 (SanctimoniousSwamprat) AucStatPurchased, v5.21c.5521 (SanctimoniousSwamprat) AucStatSales, v5.21c.5521.5476(5.21c/embedded) AucStatSimple, v5.21c.5521 (SanctimoniousSwamprat) AucStatStdDev, v5.21c.5521 (SanctimoniousSwamprat) AucStatWOWEcon, v5.21c.5521.5323(5.21c/embedded) AucUtilAHWindowControl, v5.21c.5521.5347(5.21c/embedded) AucUtilAppraiser, v5.21c.5521.5495(5.21c/embedded) AucUtilAskPrice, v5.21c.5521.5447(5.21c/embedded) AucUtilAutoMagic, v5.21c.5521.5443(5.21c/embedded) AucUtilCompactUI, v5.21c.5521.5496(5.21c/embedded) AucUtilEasyBuyout, v5.21c.5521.5507(5.21c/embedded) AucUtilFixAH, v5.21c.5521 (SanctimoniousSwamprat) AucUtilItemSuggest, v5.21c.5521.5417(5.21c/embedded) AucUtilPriceLevel, v5.21c.5521.5458(5.21c/embedded) AucUtilScanButton, v5.21c.5521.5403(5.21c/embedded) AucUtilScanFinish, v5.21c.5521.5515(5.21c/embedded) AucUtilScanProgress, v5.21c.5521.4979(5.21c/embedded) AucUtilScanStart, v5.21c.5521.5347(5.21c/embedded) AucUtilSearchUI, v5.21c.5521.5515(5.21c/embedded) AucUtilSimpleAuction, v5.21c.5521.5514(5.21c/embedded) AucUtilVendMarkup, v5.21c.5521.4828(5.21c/embedded) Auctionator, v3.2.1 Babylonian, v5.1.DEV.332(/embedded) BagBrother, v6.0.16 Bagnon, v6.0.16 BeanCounter, v5.21c.5521 (SanctimoniousSwamprat) BreadCrumbs, vV1.0.3 RELEASE BrokerTimelessIsleChests, v6.0.2-a Configator, v5.1.DEV.376(/embedded) DBMCore, v DBMDefaultSkin, v DBMLDB, v DBMStatusBarTimers, v DebugLib, v5.1.DEV.337(/embedded) Enchantrix, v5.21c.5521 (SanctimoniousSwamprat) EnchantrixBarker, v5.21c.5521 (SanctimoniousSwamprat) epgplootmaster, v0.6.64 epgplootmasterml, v0.6.64 Farmed, v5.43 Gatherer, v5.0.0 GatherMate2, v1.33.3 GatherMateSharing, vv1.9 HandyNotes, vv1.3.2 HandyNotesDraenorTreasures, v1.07 HandyNotesGuild, v1.8 HandyNotesLorewalkers, v1 HandyNotesLostAndFound, v1 HandyNotesPetTamers, v1 HandyNotesSummerFestival, vv1.0.1 HandyNotesTimelessIsleRareElites, v2.32 HandyNotesTimelessIsleChests, v1.11 HandynotesTimelessTreasures, v1.0.2 Informant, v5.21c.5521 (SanctimoniousSwamprat) LibExtraTip, v5.12.DEV.363(/embedded) MinimapButtonFrame, v3.1.10d MinimapButtonFramesDark, v2.0.5 MinimapButtonFrameSkinPack, v3.0.1b MoveAnything, v15.0.6 Postal, v3.5.1 Prat30, v3.5.10 Prat30HighCPUUsageModules, v Prat30Libraries, v QuickRoutes, v6.0-Release1 RazerAnansi, v2.7.0 RazerNaga, v2.7.1 RazerNagaCast, v RazerNagaEncounter, v RazerNagaXP, v Routes, vv1.5.0 SharedMedia, v3.0.5-186 SharedMediaAdditionalFonts, v1.0.17 SlideBar, v5.21c.5521 (SanctimoniousSwamprat) Stubby, v5.21c.5521 (SanctimoniousSwamprat) TipHelper, v5.12.DEV.351(/embedded) TomTom, vv60000-1.0.1 WoWDBProfiler, v BlizRuntimeLib_enUS v6.0.3.60000 <none> (ck=e01)


Date created
Oct 13, 2010
Last update
Oct 15, 2014
Development stage
  • deDE
  • enUS
  • esES
  • esMX
  • frFR
  • itIT
  • koKR
  • ptBR
  • ruRU
  • zhCN
  • zhTW
GNU Lesser General Public License version 2.1 (LGPLv2.1)
Reverse relationships
Recent files