searchResponse->value->searchStatus->attributes['numberOfRecords']) ||
$oXMLDoc->searchResponse->value->searchStatus->attributes['success'] == false ||
$oXMLDoc->searchResponse->value->searchStatus->attributes['numberOfRecords'] <= 0)
{
//THIS IS AN ERROR CONDITION - THE SERVICEID CAME FROM THE RESULTS BUT NOW CANNOT BE FOUND?
}
else
{
// Get result count
$oRes =& $oXMLDoc->searchResponse->value->searchResults->value->ISO19119->value;
// Start building the layer info parameters
$szLayerTitle = $oRes->citation->value->title->value;
$szLayerAltTitle = $oRes->citation->value->alternateTitle->value;
$szServerVersion = $oRes->serviceTypeVersion->value;
// if DCP is a array, take the first one
if (is_array($oRes->operationMetadata->value->DCP))
$szLayerConnectString = $oRes->operationMetadata->value->DCP[0]->value->connectPoint->value->linkage->attributes['xlink:href'];
else
$szLayerConnectString = $oRes->operationMetadata->value->DCP->value->connectPoint->value->linkage->attributes['xlink:href'];
// Add abstract data to layer info
$szLayerAbstract = $oRes->abstract->value;
// Add LatLong BBox
$szLayerLLBB = str_replace(",", " ", substr(substr($oRes->typeProperty->value->typeValue->value->instanceValue->value->value->value, 1), 0, -1));
// Get parameter count
$nbParam = count($oRes->operationMetadata->value->parameter);
for($j=0;$j<$nbParam;$j++)
{
// Get parameter object
$oParam =& $oRes->operationMetadata->value->parameter[$j];
// If parameter is a STYLE
if ($oParam->value->parameterName->value->nameValue->value == "STYLES")
{
$szLayerStyles = "";
// Is there more than one style ?
if (is_array($oParam->value->permittedValues->value->enumValues->value->valueTitle))
{
// Yes, then get style objects count
$nbStyle = count($oParam->value->permittedValues->value->enumValues->value->valueTitle);
for($k=0;$k<$nbStyle;$k++)
{
// Get style title
$szTitle = $oParam->value->permittedValues->value->enumValues->value->valueTitle[$k]->value;
// Get style online resource
$szOnlineRes = $oParam->value->permittedValues->value->enumValues->value->valueOnLineResource[$k]->value->linkage->attributes['xlink:href'];
// add them to layer info string.
$szLayerStyles .= $szTitle.">,< ".$szOnlineRes.">;<";
}
}
else
{
// Get style title
$szTitle = $oParam->value->permittedValues->value->enumValues->value->valueTitle->value;
// Get style online resource
$szOnlineRes = $oParam->value->permittedValues->value->enumValues->value->valueOnLineResource->value->linkage->attributes['xlink:href'];
// add them to layer info string.
$szLayerStyles .= $szTitle.">,< ".$szOnlineRes.">;<";
}
$szLayerStyles = substr($szLayerStyles, 0, -3);
}
else
if ($oParam->value->parameterName->value->nameValue->value == "FORMAT")
{
$szLayerFormats = "";
// Is there more than one format ?
if (is_array($oParam->value->permittedValues->value->enumValues->value->valueTitle))
{
// Yes, then get format objects count
$nbFormat = count($oParam->value->permittedValues->value->enumValues->value->valueTitle);
for($k=0;$k<$nbFormat;$k++)
{
// Get format title
$szTitle = $oParam->value->permittedValues->value->enumValues->value->valueTitle[$k]->value;
// Get format value
$szValue = $oParam->value->permittedValues->value->enumValues->value->value[$k]->value;
// add them to layer info string.
$szLayerFormats .= $szValue.",";
}
}
else
{
// Get format title
$szTitle = $oParam->value->permittedValues->value->enumValues->value->valueTitle->value;
// Get format value
$szValue = $oParam->value->permittedValues->value->enumValues->value->value->value;
// add them to layer info string.
$szLayerFormats .= $szValue.",";
}
$szLayerFormats = substr($szLayerFormats, 0, -1);
}
else
if ($oParam->value->parameterName->value->nameValue->value == "SRS")
{
$szLayerSRSs = "";
// Is there more than one srs
if (is_array($oParam->value->permittedValues->value->enumValues->value->valueTitle))
{
// Yes, then get srs objects count
$nbSRS = count($oParam->value->permittedValues->value->enumValues->value->valueTitle);
for($k=0;$k<$nbSRS;$k++)
{
// Get SRS title
$szTitle = $oParam->value->permittedValues->value->enumValues->value->valueTitle[$k]->value;
// add them to layer info string.
$szLayerSRSs .= $szTitle." ";
}
}
else
{
// Get SRS title
$szTitle = $oParam->value->permittedValues->value->enumValues->value->valueTitle->value;
// add them to layer info string.
$szLayerSRSs .= $szTitle." ";
}
$szLayerSRSs = substr($szLayerSRSs, 0, -1);
}
}
}
$szScript = "\n";
echo $szScript;
exit;
}
if (isset($http_form_vars['bSearch']) && $http_form_vars['bSearch'] == '1')
{
$oMapNavigator = new MapNavigator( $oMapSession );
$oMap = $oMapSession->oMap;
$szUrl = "http://ceomap2.ccrs.nrcan.gc.ca/cgi-bin/cslt/wes/service_manager/catquery?RS=XML&catalog=http%3A%2F%2Fceomap2.ccrs.nrcan.gc.ca%2Fcgi-bin%2Fcslt%2Fwes%2Fservice_manager%2Fcatquery&QUERY=";
$szQuery = "SRS='".substr(
$oMapSession->oMap->getmetadata("original_projection"), 5)."' AND ";
$szQuery.= "(title like '%".$http_form_vars['szSearchString']."%' OR ";
$szQuery.= "abstract like '%".$http_form_vars['szSearchString']."%' ) ";
$szQuery.= "AND Format='".(($oMapSession->oMap->imagetype == "png24")?"png":
$oMapSession->oMap->imagetype)."' AND ";
$szQuery.= "ServiceType='Web Mapping Layer' AND ";
// reproject full_extents metadata if different from projection
$szOriginalProjection = $oMap->getMetaData("original_projection");
$szOriginalExtents = $oMap->getMetaData("original_extents");
if (strlen($szOriginalExtents) > 0)
{
$aszExtents = explode(",", $szOriginalExtents);
if (count($aszExtents) == 4 &&
$szOriginalProjection != "init=epsg:4326")
{
$aszExtents = $oMapNavigator->reprojectExtentFromCenter($aszExtents, $oMap->width, $oMap->height, $szOriginalProjection,"init=epsg:4326");
}
else
{
// $_SESSION['gErrorManager']->setError(ERR_WARNING,
// trim($oCommonMLT->get("ErrInvExt", "ERROR: Invalid extent specified in "))."CatalogSearch.widget.php.");
}
}
else
{
// $_SESSION['gErrorManager']->setError(ERR_WARNING,
// trim($oCommonMLT->get("ErrInvExt", "ERROR: Invalid extent specified in "))."CatalogSearch.widget.php.");
}
$szQuery.= "Intersects(LatLongBoundingBox, Envelope(".
implode(",", $aszExtents)."))";
$szUrl .= urlencode($szQuery);
$szUrl .= "&SCHEMA=ISO19119&ESN=b&WANTCONTENT=XML";
//echo "url is $szUrl
";
$fh = fopen($szUrl, "r");
$szXMLDoc = "";
while ($szString = fread($fh, 1024))
{
$szXMLDoc .= $szString;
}
if ($szXMLDoc != "")
{
$parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($parser, $szXMLDoc, $aVals, $index);
xml_parser_free($parser);
$oXMLDoc = xml_get_children($aVals);
}
}
?>