ThinkGeo.com    |     Documentation    |     Premium Support

Multiple ColumnName for RegexStyle

Hi,



Just straight to my problem, is there any way to set ThinkGeo.MapSuite.Core.RegexStyle.ColumnName property to multiple columns? I notice there’s a RequiredColumnNames property (inherited from Style), but it has only a getter, but not also a setter. I want to create filters that are based on multiple (at least 2) columns. How I can accomplish this?



And if that is possible, how to determine which filter that I will be used? RegexItems can only be used on that ColumnName, if there are multiple columns to be filtered, how to apply a regex to each column?

Hi Ariestya,



Currently, the RegexStyle is not support the multi columns, but I think there is a possible to define a customRegexStyle to support it. Here I attached a customRegexStyle and you can do some modifications on the DrawCore method to implement that.



Beside the above way, here is an option but not sure if it is fit for you. We can insert some value style into one RegexStyle to use the multiColumn but the value style is not support the Regular match but full match. In case you need it, I attached some codes here:




RegexStyle regexStyle1 = new RegexStyle();
regexStyle1.ColumnName = “Field1”;
 
ValueStyle valueStyle = new ValueStyle();
valueStyle.ColumnName = “Field2”;
valueStyle.ValueItems.Add(new ValueItem(“value1”,new AreaStyle(new GeoSolidBrush(GeoColor.StandardColors.Red))));
 
RegexItem regexItem1 = new RegexItem();
regexItem1.RegularExpression = “G.”;
regexItem1.CustomStyles.Add(valueStyle);
regexStyle1.RegexItems.Add(regexItem1);

Btw, the RequiredColumnNames property is for the styles defined in the RegexItem and it is not for RegexStyle columns
Hope it helps.



Thanks,
Troy

CustomRegexStyle.txt (2.92 KB)

Thank you for the help. 
  
 I ended up using 2 RegexStyle, one apply color to features according to matches value from first column, the other one overlap features that their value don’t match (like ^ in regex) for the 2nd column, but your 2nd solution that uses ValueStyle also works well. Thank you.

Ariestya, 
  
 So good to hear it works for you. 
 Any questions, don’t hesitate to let us know. 
  
 Regards, 
 Johnny