En mi PageLayoutControl añado una ScaleBar. Además, quiero mostrar la escala/relación del mapa (por ejemplo, "1:20.000") al lado, pero no he encontrado la manera de conseguirlo con la ScaleBar. ¿Me estoy perdiendo algo o hay otra forma de hacerlo?
Así es como añado la ScaleBar:
IEnvelope envelope = new EnvelopeClass();
envelope.PutCoords(5, 0.1, 12.4, 1); // Specify the location and size of the scalebar
IUID uid = new UIDClass();
uid.Value = "esriCarto.ScaleLine";
// Create a Surround. Set the geometry of the MapSurroundFrame to give it a location
// Activate it and add it to the PageLayout's graphics container
IGraphicsContainer graphicsContainer = pageLayout as IGraphicsContainer;
IActiveView activeView = pageLayout as IActiveView;
IFrameElement frameElement = graphicsContainer.FindFrame(map);
IMapFrame mapFrame = frameElement as IMapFrame;
IMapSurroundFrame mapSurroundFrame = mapFrame.CreateSurroundFrame(uid as UID, null);
IElement element = mapSurroundFrame as IElement;
element.Geometry = envelope;
element.Activate(activeView.ScreenDisplay);
graphicsContainer.AddElement(element, 0);
IMapSurround mapSurround = mapSurroundFrame.MapSurround;
IScaleBar markerScaleBar = (IScaleBar)mapSurround;
markerScaleBar.LabelPosition = esriVertPosEnum.esriBelow;
markerScaleBar.UseMapSettings();
0 votos
No estoy seguro de que esta sea la respuesta, pero hay alguna documentación de Java sobre Map Surrounds que puede ayudar en resources.esri.com/help/9.3/arcgisengine/java/engineexamples/
0 votos
@PolyGeo: Gracias, eso me indicó la dirección correcta. Ver mi respuesta.