Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I am putting together a map of GPS-enabled vehicles, and I am hoping to display them with custom point symbols that change appearance based on a few attributes (things like velocity, heading, and a few other business attributes). For example, the fill color might change depending on the vehicles speed, the shape might change based on vehicle type, and the size might change based on another attribute.

I have considered using the "unique values, many fields" option in the symbology menu, but I don't think it will work for this task because 1) my data has seven attributes that the symbol needs to be based on, and the dialog only allows for three fields, and 2) if I have to create each symbol individually for every combination of attributes, I'd have to build over 350 symbols in total.

I would prefer to specify something like "if speed is X, set fill color to Y; if vehicle type is A, set symbol outline to B, etc."

Is this kind of customization possible in ArcMap, and if so, what is the best approach?

share|improve this question
    
Is a programmatic solution acceptable? –  Kirk Kuykendall Oct 6 '11 at 18:08
    
If you are looking for a programmatic solution, perhaps take a look at some of the ArcObjects samples, such as Multivariate Renderer and RSS Weather Layer. –  blah238 Oct 6 '11 at 18:13
    
Yeah, a programmatic solution would be fine. I would prefer to do it through the ArcMap GUI, but if there is a better way to do it through ArcObjects I am open to trying it. –  mrohlf Oct 6 '11 at 18:49
    
maybe I mis-read your title. I read vector as the format of symbology. perhaps you meant vector to be directional symbology. ?? –  Brad Nesom Oct 6 '11 at 21:44
    
Do you intend to publish the mxd as an arcgis server mapservice? –  Kirk Kuykendall Oct 7 '11 at 14:52

3 Answers 3

up vote 1 down vote accepted

EMF format is the only vector format symbology I can find documented supported in arcgis.
There is the cartographic representations that "looks" to be a vector format.
But I can't see any documentation on what format it is.
If you look in the style manager, you will see the representation markers.
None of the standard esri have any populated symbols in this category.
Your personal style will have just a handful.
If you search for other questions with "representation" there are some pretty detailed descriptions of the limitations and uses.

share|improve this answer
    
I have looked at cartographic representations a bit, and it looks like that would do everything I need as far as creating a custom vector symbol, but I have not found a way to dynamically change a representation marker based on attribute fields. Do you know if ArcObjects can be used to modify cartographic representations on the fly? –  mrohlf Oct 7 '11 at 15:59
    
That is exactly what Representations do. With thec aveat that your attribute has to be the same field as the ruleid field created. And that is a coded value domain field. –  Brad Nesom Oct 7 '11 at 19:55
    
Use selection rules on your 7 attribute columns to calculate the value for your rule id. You could do this fairly easily with a python script. –  blord-castillo Nov 6 '11 at 18:42
1  
I played around a little more with representations, but I wasn't able to get them to do quite what I wanted... I ended up making an approximation by splitting the data into four layers and drawing part of the symbol on each layer. It's about 90% of what I wanted, and the customer is happy with it. I'm planning to take another stab at representations when I have more time, to do it the right way. Thanks! –  mrohlf Nov 7 '11 at 22:26

One option is to create the symbols using labels rather than symbology. Simply setup a label that is rendered on top of the point and use a transparent marker symbol.

Using the label expression you can create different symbols depending on field values by changing the labels character. The size and colour can then be changed using formatting tags.

This approach can work well, and is easy to setup. However, if you use the default labelling engine you may have problems with closely packed labels. It also limits you to using a single character as your symbol.

share|improve this answer

Look at Custom Renderers or/and Custom Layers.

share|improve this answer
    
He mentions in the comments he wants to publish this as an MSD based mapservice. Is there a way to use custom renderers or custom layers in this context? –  Kirk Kuykendall Nov 7 '11 at 3:06
    
I know you can if you serve MXDs. I do not know if MSD services have this limitation... @KirkKuykendall are you afraid they do have the limation if not, besides performance, is an MXD service not an option? –  Ragi Yaser Burhum Nov 7 '11 at 3:57

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.