Point Symbol Renderer for Lines and Polygons and Scale Dependent Group Renderers for ArcMap and GisServer map services.

07-16-2014 08:07 AM
Status: Open
Occasional Contributor
Scale dependent group renderers would solve several rendering problems, especially for use in web maps via GisServer. The idea would be to allow multiple renderers to be assigned to each layer in ArcMap, with each renderer having its own minimum and maximum scale settings. In this way, a single layer could have one renderer when zoomed far out and a different one when zoomed in close. In fact, since each renderer in the group would be independent of the others, at some scales more than one renderer might be used to symbolize the layer. A good use case is where you want to render a polygon layer as a solid fill when zoomed out far, a hatch fill when zoomed in closer, and no fill when zoomed in close. Cuirrently, three separate layers are generally used each with a different renderer and scale limits. This is okay for just drawing, but especially in web maps, this technique has bad side effects. When a user identifies features by clicking the map at a certain scale, the selection is on one layer, and then when zooming in, that layer is no longer visible. Even worse is the case where a web map has a search tool that is meant to target a specific layer. With 3 different layers used to render, whcih layer do you search and select from? Selecting from all 3 would be badly redundant and confusing to the user. It would also require special code to coordinate a selection across multiple layers.
1 Comment
A scale dependent group renderer would make much more sense, so it is just a single layer in the map document or map service with a rendering that changes based on scale. Another matter that would enhance the power of the group renderer would be if point symbols could be assigned to lines and polygons in ArcMap and GisServer. The point symbol would simply be rendererd at an interior point of the polygon that is also within the current visible extent - similar to a label that has the interior placement only option set. For a line, the symbol would be placed on one of the segments currently in the visible extent. In this way, it solves the biggest problem for rendering user friendly web maps for a sparse dataset of small area polygons, which is actually a very common use case. When zoomed far out, the polygon renderer is too small or chaotic looking or too slow to draw, whereas a point renderer would be very clear and fast. Then, when zooming in, the polygon renderer could be used as part of the group renderer. This also allows for a less cluttered way to render polygons when zoomed in (especially for polygons with many classifications), since you could set a no fill polygon renderer to draw in conjunction with a point symbol renderer that clearly identifies the feature. A specific use case for example that I am dealing with is State Parks. The polygons are slow to draw at state extent and are not at clearly visible at that scale since some are very small. A second point layer had to be created to represent the parks at full extent so they could be rendered with a clear point symbol. The problem, however, is that they are not the same layer. When you select a point at full extent, and then zoom to the feature, it should zoom to the polygon, not the point. Hence, with a group renderer, the parks could be shown as points at state extent, but since the true geometry is a polygon, zooming to the feature shows the entire park extent with a polygon renderer at that scale.