Cómo añadir información

Adding Layers To A Map

    Tabla de contenidos
    No headers

    The preceding examples have created or modified the XML for layer definitions in memory. To add those layers to a map:

    1. Save the layer definition to a resource stored in the session repository.
    2. Add that resource to the map.

    This function adds takes a layer’s XML, creates a resource in the session repository from it, and adds that layer resource to a map.

    <?php
    require_once('../common/common.php');
     
    ///////////////////////////////////////////////////////////
    function add_layer_definition_to_map($layerDefinition,
      $layerName, $layerLegendLabel, $mgSessionId,
      $resourceService, &$map)
    // Adds the layer definition (XML) to the map.// Returns the layer.
    {
        // Validate the XML.
        $domDocument = new DOMDocument;
        $domDocument->loadXML($layerDefinition);
        if (! $domDocument->schemaValidate(
           "$schemaDirectory\LayerDefinition-1.1.0.xsd") )
        {
            echo "ERROR: The new XML document is invalid.
              <BR>\n.";
            return NULL;
        }
        // Save the new layer definition to the session    // repository
        $byteSource = new MgByteSource($layerDefinition,
          strlen($layerDefinition));
        $byteSource->SetMimeType(MgMimeType::Xml);
        $resourceID = new MgResourceIdentifier(
           "Session:$mgSessionId//$layerName.LayerDefinition");
        $resourceService->SetResource($resourceID,
          $byteSource->GetReader(), null);
        $newLayer = add_layer_resource_to_map($resourceID,
          $resourceService, $layerName, $layerLegendLabel,
          $map);
        return $newLayer;
    }
    

    This function adds a layer resource to a map.

    function add_layer_resource_to_map($layerResourceID,
      $resourceService, $layerName, $layerLegendLabel, &$map)
    // Adds a layer defition (which can be stored either in the// Library or a session repository) to the map.// Returns the layer.
    {
        $newLayer = new MgLayer($layerResourceID,
          $resourceService);
        // Add the new layer to the map's layer collection
        $newLayer->SetName($layerName);
        $newLayer->SetVisible(true);
        $newLayer->SetLegendLabel($layerLegendLabel);
        $newLayer->SetDisplayInLegend(true);
        $layerCollection = $map->GetLayers();
        if (! $layerCollection->Contains($layerName) )
        {
            // Insert the new layer at position 0 so it is at        // the top of the drawing order
            $layerCollection->Insert(0, $newLayer);
        }
        return $newLayer;
    }
    

    This function adds a layer to a legend’s layer group.

    function add_layer_to_group($layer, $layerGroupName,
      $layerGroupLegendLabel, &$map)
    // Adds a layer to a layer group. If necessary, it creates// the layer group.
    {
        // Get the layer group
        $layerGroupCollection = $map->GetLayerGroups();
        if ($layerGroupCollection->Contains($layerGroupName))
        {
            $layerGroup =
              $layerGroupCollection->GetItem($layerGroupName);
        }
        else
        {
            // It does not exist, so create it
            $layerGroup = new MgLayerGroup($layerGroupName);
            $layerGroup->SetVisible(true);
            $layerGroup->SetDisplayInLegend(true);
           
              $layerGroup->SetLegendLabel($layerGroupLegendLabel);
            $layerGroupCollection->Add($layerGroup);
        }
        // Add the layer to the group
        $layer->SetGroup($layerGroup);
    }