How to Create Custom “Input” Types

From time to time is may be necessary to create a custom “input” type for a service with GeoMOOSE. This happens when you cannot get information about the map or from the user in a way that GeoMOOSE supports by default.

Step 1: Create an Input Type

Create the file, this one I called “MapWidth.js”:

GeoMOOSE.Services.InputType.MapWidth = OpenLayers.Class(GeoMOOSE.Services.InputType, {
        MAPBOOK_NAME: "map_width",

        getValue: function() {
                var extent = Map.getExtent();
                return extent.right - extent.left;
        }
});

Step 2: Add it to the “geomoose.html”

  • Open “geomoose.html” in a text editor.

  • Find </head> in the file.

  • Add the following line:

    <script type="text/javascript" src="MapWidth.js"></script>
    

Step 3: Add the input type to a Service

Find the service to add the type to and add the input definition:

<service ... >
        <input type="map_width" name="mw"/>
</service>

Step 4: Enjoy

This is the easiest part!