TechQ.: Empty-Boxes

So, when of my old symbols, I do not get the symbol, but only an empty box. My other older symbols work just fine.

Does anyone know why?

Comments

  • Can you clarify this? Its not clear when this is happening for you.

  • edited April 2020

    I'll wager that:

    1) The symbol catalog is in a different location than when the map was made, and

    2) the no embed flag is set in that catalog's default.xml file. The effect: The symbol is not embedded in the map but raher drawn out of the catalog by reference. As a result, the symbol can't be found in its new location.

  • I have NBOS version 1.02f

    https://i.ibb.co/NmP34Dk/NBOSDSQues.gif

    And yes, the symbols were made on a long, decommissioned computer. BUT, they worked on previous computers.

  • Where do you have it installed on your drive? If its installed into a directory that has spaces in its name, 1.02f, which is a Windows 3.1 program that expects strict 8.3 file naming, may not be able to handle that.

  • It worked! Thanks! I had the same symbols for years now, but I hadn't used them on this computer; I checked the directory, and it was the only symbol folder with a space in it's name. I just have to change my symbols text.

  • edited February 2023

    I'm revisiting this post with a similar situation...

    I did a major overhaul on my symbol folders, reorganizing them for easier use. Let's say that I had them set to noembed, or at least several of the catalog default.xml.

    My old maps have a huge number of blank symbols when I select area. I can fix the noembed flag moving forward, and eliminate spaces in folder names just to be sure. But is there any way to re-link the noembed symbols into old maps if I don't know where in MapArt those symbols were originally placed?

    Last question: in default.xml, how do I reverse the noembed flag? just delete that line or is there an embed command to insert into the xml?

  • edited February 2023

    Yes, just get rid of the noembed tag and that should do it. Generally the mapper will try to find the image in a couple different places, but it won't always be able to if they've been moved.

    Here's a plugin that will show you where it thinks everything is. Place this in a file called 'ListAllSymbols.FMScript' into the plugin directory and restart FM. It'll show up in the plugins menu after that. Load the map and run the script.

    #plugin   List All Symbols on Map
    #author   NBOS Software
    #desc     Lists info about all the symbols on the current map
    
    Dim oMap, o, i, s
    
    oMap = GetCurrentMap()
    
    For i = 1 to oMap.ObjectCount
         o = oMap.GetObject( i-1)
         if o.BaseType = "Submap" then
            DebugMsg "Submap File: " & o.SubmapFile
         end if 
         if o.BaseType = "Symbol" then
            DebugMsg "Image File: " & o.BitmapFile
         end if 
    Next
    

    This won't fix the problem, but it should help you ID where it thinks it should be looking. You can also assign the BitmapFile or Submap file properties for the map objects to update them.

  • Perfect! Thank you. I don't think it will be to difficult to use the plugin and copy duplicates of the missing symbols to the original locations. Or at least ID what they were and reinsert them from the new location.

  • Update: the script shows up when I restart and load the map. But when I run it there is no output.

  • Ok, it looks like the DebugMsg function is having a problem. Which is a bit ironic.

    Try this approach - it'll make a new popup window and show the results:

    #plugin   List All Symbols on Map
    #author   NBOS Software
    #desc     Lists info about all the symbols on the current map
    
    Dim oMap, o, i, s
    
    oMap = GetCurrentMap()
    
    s = ""
    For i = 1 to oMap.ObjectCount
         o = oMap.GetObject( i-1)
         if o.BaseType = "Submap" then
            s = s + "Submap File: " & o.SubmapFile & vbCrLf
         end if 
         if o.BaseType = "Symbol" then
            s = s + "Image File: " & o.BitmapFile & vbCrLf
         end if 
    Next
    
    dim w, m
    
    set w = NewDialogWindow()
     w.Top = 10
     w.Left = 20
     w.Width = 800
     w.Height = 500
     w.Caption = "Symbol List"
     w.Centered = true
    
    
    mem = w.AddMemo()
     mem.Top = 20
     mem.left = 20
     mem.Width = 740
     mem.Height = 360
     mem.Text = s
    
    w.ShowModal
    
  • edited February 2023

    Thanks, Ed! I'll give it a try now and reply back.

    Update: Worked perfectly. Thank you!

Leave a Comment