MapInfo Pro

 View Only
  • 1.  Increase drop shadow distance or create symbol with one

    Posted 06-18-2024 20:39
      |   view attached

    Hello,

    I want to be able to have circle point symbols with a drop shadow which is further away than the default given in the effects for symbol style.

    I have tried to create a symbol myself, with varying success. A filled circle with a dark grey shadow and thin outline of the same colour as the shadow. However, it seems that if I am wanting to use it as a point range in a theme, then I need to create a symbol for each colour I want in the range. Otherwise, using 'apply colour' will also colour the shadow I have created. In saying that, I could only get that function to work on the supplied Custom Symbols. And not one I created myself. Not sure why.

    Perhaps I haven't found the best way to do this. But if making individual symbols is the only way, then maybe someone has some tips on how to make the cleanest looking ones. I am using a very old Photoshop and creating bmp files. So maybe a size of file and method?

    Attached is what I am trying to emulate.

    Thanks for anything that will help. Cheers



    ------------------------------
    Paula M
    ------------------------------


  • 2.  RE: Increase drop shadow distance or create symbol with one

    Employee
    Posted 06-19-2024 04:38

    Hi Paula

    Could any of these examples work?

    1. Standard TrueType font with a standard shadow and a border

    This may not be what you are after as you want the symbols scaled via an attribute using the Point Range thematic map. This is mostly for reference to show how the standard shadow and border options will affect a TrueType font

    2. Standard Shadow on a stacked TrueType Font with a grey Circle on top
    You can also use a stacked style to apply a border in a different color to the TrueType font. The shadow is again the standard one applied in the Symbol Style dialog
    3. Stacked TrueType font with a grey circle on top offset shadow via query
    Here I have used a query to offset the points using a query. This gives you the flexibility to move the shadow further away and control the color of the shadow too.
    4. Graduated Theme on point and shadow via query
    Another example is where I have created a copy of the input data using a query and offset these points. I have then used a Point Range thematic for each layer to scale the point sizes based on an attribute.
    5. Circles and shadows as buffers
    In this example, I have given you even more flexibility as the points are no longer points but buffers. This allows you to control the size and color of the fill and the border of the buffer - on the data and the shadow.
    If you think any of these would work, I can give you a bit more detail on the solution you like.


    ------------------------------
    Peter Horsbøll Møller
    Principal Presales Consultant | Distinguished Engineer
    Precisely | Trust in Data
    ------------------------------



  • 3.  RE: Increase drop shadow distance or create symbol with one

    Posted 06-20-2024 00:40

    Hi Peter,

    I knew you'd be the one to answer the call. I've seen your name in a lot of solutions online.

    Wow, thanks. I need to have a play.
    I don't know what you've done, but I kind of do. I think it was what I was trying to do with duplicating the layer, unsuccessfully, but didn't know you could use SQL scripting for that sort of thing.

    Will this work for colour gradient as well as size graduation?



    ------------------------------
    Paula M
    ------------------------------



  • 4.  RE: Increase drop shadow distance or create symbol with one

    Posted 06-20-2024 00:53

    Fell at the first hurdle. I don't know how to do stacked true type fonts.



    ------------------------------
    Paula M
    ------------------------------



  • 5.  RE: Increase drop shadow distance or create symbol with one

    Employee
    Posted 06-20-2024 02:20
    Edited by Peter Møller 06-20-2024 02:49

    Hi Paula

    Let me give you some hints for each of the solutions above.

    1. Standard TrueType font with a standard shadow and a border

    This one you probably have under control. Click on the thumbnail next to your layer and make the adjustments in the Symbol Style dialog as you see below.

    2. Standard Shadow on a stacked TrueType Font with a grey Circle on top

    To enable Stacked Styles, you need to select the layer in the Layer List and then click on the Style tab in the rIbbon. Here you can enable Stacked Styles via the second control. Now click on the Symbol Style control also in the Style tab.

    In the Stacked Symbol Styles dialog you can add new Symbol Styles to be drawn on top of each other. As you can see, I have a two; A grey ring and full-colored red circle symbol with a shadow.

    3. Stacked TrueType font with a grey circle on top offset shadow via query

    In this solution I use the solution from above with a stacked style but I turn off the Shadow from the fullcolored red circle.

    Instead, I offset the points a fixed distance using a query.

    Select s.*, OffsetXY(obj, 10, -10, "m") Object
      From stores As "s"
      Into Stores_Shadow

    10 meter offset

    25 meter offset
    You can slo make the shadow layer a bit translucent to give it a better shadow effect. You can easily do this via the Layer Translucency control on the Style tab.

    4. Graduated Theme on point and shadow via query

    Taking the two layers above a bit further, we can add a graduated theme to both of the layers.

    From the Map tab, click on Add Theme. Select Graduated from the list of Types. Now select a template of your choice. Click on the Next button.

    Select your layer and the column with the values.
    In the third and final step, you may want to tweak some of te settings a bit. Click on the Settings button to do this. For the shadow layer, I select my preferred grey color for the symbol and I set the at Value to match the value from the Graduated Theme for the base layer.
    Here's the result with the two graduated themes
    As the points now of different sizes, you should consider offsetting the symbols a distance based on the values as I do in the next example. Notice how the small symbol in the lower left corner almost doesn't touch it's shadow.
    And just like with solution 3, you can also apply translucency to the thematic shadow layer.
    If you want to combine a thematic with size and style, you should use a ranged Thematic instead. You may be able to do it with, or you can combine two, using the color for one and the style for another.

    5. Circles and shadows as buffers

    This final solution get more advanced but also gives you more control. Instead of using symbols, I will create buffers around my points and in this way, I have full control of the size, and the color of the fill and border.

    I have added two columns to my table, SIZE_M and OFFSET_M, both Integers. I do this to update this with the size and offset distance based on the sales volume. I can then later refer to these values in my query.

    Here's the small script I used to create the two buffer layers.

    Update stores
     Set SIZE_M = 100
      , OFFSET_M = 50
      Where  SALES_VOLUME_US_DOLLARS > 10000000
    Update stores
     Set SIZE_M = 50
      , OFFSET_M = 25
      Where  SALES_VOLUME_US_DOLLARS < 10000000
    Update stores
     Set SIZE_M = 25
      , OFFSET_M = 13
      Where  SALES_VOLUME_US_DOLLARS < 5000000
    
    Select sa.*
      , Buffer(sa.obj, 36, sa.SIZE_M, "m") Object
      From stores As "sa"
      Into Stores_Buffer
    
    Select sh.*
      , Buffer(OffsetXY(sh.obj, sh.OFFSET_M, -1 * sh.OFFSET_M, "m"), 36, sh.SIZE_M, "m") Object
      From stores As "sh"
      Into Stores_Shadow_Buffer

    The Update statements are used to update the two new columns based on the sales values. I have used three intervals. You can use as many as you want.

    The first Select statement creates a buffer version of the sales layer. I create a new spatial object for my query result using the Buffer() function. Also notice the Object keyword after this spatial function. This one, I will style with a red fill and a grey border.

    You could also create a theme for this layer and so make the color depend on the values.

    The second Select statement creates the border layer. Notice how I use the OffsetXY() function to move the point before using the Buffer() function to create a buffer around it. This query layer gets styled with a grey fill and I'll also make it translucent.

    I have run all statements in a single script. You can also update the columns in one script and create the two queries in their own script.



    ------------------------------
    Peter Horsbøll Møller
    Principal Presales Consultant | Distinguished Engineer
    Precisely | Trust in Data
    ------------------------------



  • 6.  RE: Increase drop shadow distance or create symbol with one

    Posted 07-03-2024 00:18
    Edited by Paula Morrissey New 07-03-2024 02:04

    Thanks Peter, I haven't been able to get back to this until now.

    I have learnt a lot with your tips and how tos, however, I was unable to produce the look I wanted which was the gradiented colour range with varying size AND outline and shadow.

    I was able to sucessfully reproduce what you provided in the instructions. But just not the final full format.

    I got close, but for some reason, the gradient colour offsets the dots slightly, so when I added a duplicate layer with just the outline, they didn't align. 

    Here are the 3 views of the table 'Qry_SortApples' (without shadow as this could be achieved)

    1. Full colour gradients and varying size and duplicate of varying size. The colour range/varying size combination for some reason, displays offset

    2. Varying size and duplicate of varying size outline. Duplicate is just for show the alignment.

    3. Varying size and colour without duplicate varying size outline

    If you have any further help on this being achieved, that would be great.
    Maybe with some further tweaking with further SQL offsets, it could be done, but it may get too complicated.

    Thanks Paula.



    ------------------------------
    Paula M
    ------------------------------



  • 7.  RE: Increase drop shadow distance or create symbol with one

    0