wiki:CodeSamples/Other/MaestroScripts/ScaleRangeUpdate

This page is one of the MapGuide Community CodeSamples. Visit the CodeSamples page to view more!

This sample script contains a series of utility functions to batch update a series of Layer Definitions in a folder to conform to a specified minimum/maximum scale range.

How to use this script

  1. Launch MapGuide Maestro
  2. In the IronPython? console, click Run File
  3. Browse to scale_ranges_utils.py and click Open to load this script

Once loaded, you will have the following functions available for you to use from the IronPython? console:

def FixScaleRangesMinMax(conn, folder, min, max):
    """
    Modifies the first scale range of all Layer Definitions under the specified folder to the specified
    minimum and Mmximum scales
    """
def FixScaleRangesZeroToMax(conn, folder, max):
    """
    Modifies the first scale range of all Layer Definitions under the specified folder to the specified
    maximum scale. The minimum scale is un-set (ie. Set to 0)
    """
def FixScaleRangesMinToInfinity(conn, folder, min):
    """
    Modifies the first scale range of all Layer Definitions under the specified folder to the specified
    minimum scale. The maximum scale is un-set (ie. Set to infinity)
    """
def FixScaleRangesZeroToInfinity(conn, folder):
    """
    Modifies the first scale range of all Layer Definitions under the specified folder to [0, Infinity]
    """

To modify all layers under Library://Samples/Sheboygan/Layers/ to have a scale range of 50 to 12000, you would run the following snippets in your IronPython? console. This assumes a session with only one active site connection:

>>> conn = app.GetConnection(app.GetConnectionNames()[0])
>>> FixScaleRangesMinMax(conn, "Library://Samples/Sheboygan/Layers/", 50, 12000)

This will output something similar to this:

Fixing: Library://Samples/Sheboygan/Layers/CityLimits.LayerDefinition
Scale range set to [50, 12000]
Saved: Library://Samples/Sheboygan/Layers/CityLimits.LayerDefinition
Fixing: Library://Samples/Sheboygan/Layers/Buildings.LayerDefinition
Scale range set to [50, 12000]
Saved: Library://Samples/Sheboygan/Layers/Buildings.LayerDefinition
Fixing: Library://Samples/Sheboygan/Layers/Districts.LayerDefinition
Scale range set to [50, 12000]
Saved: Library://Samples/Sheboygan/Layers/Districts.LayerDefinition
Fixing: Library://Samples/Sheboygan/Layers/Hydrography.LayerDefinition
Scale range set to [50, 12000]
Saved: Library://Samples/Sheboygan/Layers/Hydrography.LayerDefinition
Fixing: Library://Samples/Sheboygan/Layers/Islands.LayerDefinition
Scale range set to [50, 12000]
Saved: Library://Samples/Sheboygan/Layers/Islands.LayerDefinition
Fixing: Library://Samples/Sheboygan/Layers/Parcels.LayerDefinition
Scale range set to [50, 12000]
Saved: Library://Samples/Sheboygan/Layers/Parcels.LayerDefinition
Fixing: Library://Samples/Sheboygan/Layers/Roads.LayerDefinition
Scale range set to [50, 12000]
Saved: Library://Samples/Sheboygan/Layers/Roads.LayerDefinition
Fixing: Library://Samples/Sheboygan/Layers/Tracks.LayerDefinition
Scale range set to [50, 12000]
Saved: Library://Samples/Sheboygan/Layers/Tracks.LayerDefinition
Fixing: Library://Samples/Sheboygan/Layers/Trees.LayerDefinition
Scale range set to [50, 12000]
Saved: Library://Samples/Sheboygan/Layers/Trees.LayerDefinition
>>> 

Limitations

This only operates on the first scale range it finds of each Layer Definition in the folder you specify.

Last modified 23 months ago Last modified on Jul 19, 2013 12:29:45 AM

Attachments (1)

Download all attachments as: .zip