ThinkGeo.com    |     Documentation    |     Premium Support

Help getting custom symbology to work?

Hi,


I'm completely stumped by this, and hope you can help me get it to work.


I'm trying to apply your samples on using a column based symbology. But regardless of what I do - even hardcoding the whole thing - MapSuite refuses to display my areas :-(


I've ended with this completely hardcoded DrawCore definition, which doesn't work. Please help.



Protected Overrides Sub DrawCore( _
                ByVal features As IEnumerable(Of ThinkGeo.MapSuite.Core.Feature), _
                ByVal canvas As GeoCanvas, _
                ByVal labelsInThisLayer As Collection(Of ThinkGeo.MapSuite.Core.SimpleCandidate), _
                ByVal labelsInAllLayers As Collection(Of ThinkGeo.MapSuite.Core.SimpleCandidate))
    Dim useAreaStyle As AreaStyle

    ' Loop through each feaure and assign symbology to draw. 
    For Each ft As Feature In features
        useAreaStyle = AreaStyles.County2 'hardcoded!

        Dim featureCollection As Collection(Of Feature) = New Collection(Of Feature)()
        featureCollection.Add(ft)
        useAreaStyle.Draw(featureCollection, canvas, labelsInThisLayer, labelsInAllLayers)
    Next
End Sub

Thanks.



Hi, 
  
 I should add, that if I set the ZoomLevel (01-20) DefaultAreaStyle to a fixed style, instead of my custom style class, the features display just fine. 


Hi again, 
  
 Ah, I assigned my custom symbology class to DefaultAreaStyle instead of CustomStyles ! Doh, sorry about that. 
  
 Some sort of error messages would’ve been nice, though. It’s not intuitive that nothing just happens. 
  


Lars,


Thanks for your post, according to your description, I think you still have any problems when drawing the map used your custom styles, but you didn't give us enough information about it, so please refer the following code to your sample below:


 



  foreach (AreaStyle areaStyle in yourCustomAreaStyles)
                    {
                        areaStyle.Draw(new Feature[1] { feature }, canvas, labelsInThisLayer, labelsInAllLayers);
                    }
In the DrawCore function please use the code above to draw for the styles, if I miunderstood anything please give us a simple sample that can reproduce your problem exactly so that we can resolve your problem as soon as possible,


Thanks,


Scott,



Hi Scott, 
  
 I cannot use the code you provide, as I’m working in VB.net, not C#. But basically they’re the same, as far as I can see. 
  
 My code has originally been taken from another sample, and as I wrote, it works now. 


Lars,


 I just want to point out a Code Community sample in case you have not seen it already. It does a very similar thing to what you are doing except that it is for labeling with font size, color etc based on column values. Please, check it out:


Labeling Based on Column wiki.thinkgeo.com/wiki/Map_Suite_We...On_Columns


Of course, if you still have problems with your current case, let us know. Thank you.