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); } } ?> <?php echo trim($oMLT->get("0", "Catalog Search")); ?>
 get("1", "Search for Layers")); ?>

get("2", "Please enter a keyword to identify the layer that you are trying to find in the field below.")); ?>

get("3", "Keyword")); ?>: get("13", "Locate Layer")), trim($oMLT->get("14", "Locate Place")), array( 'width' => 115 ) ); ?>
 get("4", "Search Results")); ?>

get("5", "Below are the results of the search. Select one of the layers from the list to add to your map.")); ?>

searchResponse->attributes['DTD_Version']) || $oXMLDoc->searchResponse->attributes['DTD_Version'] < "1.1.0") { echo ""; } else { // check search status if (!isset($oXMLDoc->searchResponse->value->searchStatus->attributes['numberOfRecords']) || $oXMLDoc->searchResponse->value->searchStatus->attributes['success'] == false || $oXMLDoc->searchResponse->value->searchStatus->attributes['numberOfRecords'] <= 0) { echo ""; } else { // Get result count $nbIso = count($oXMLDoc->searchResponse->value->searchResults->value->ISO19119); for($i=0;$i<$nbIso;$i++) { // Get result object $oRes =& $oXMLDoc->searchResponse->value->searchResults->value->ISO19119[$i]; // Start building the layer info parameters $szLayerTitle = $oRes->value->title->value; $szLayerAltTitle = $oRes->value->serviceName->value; $szServiceID = $oRes->attributes["serviceId"]; $szServerVersion = $oRes->value->serviceTypeVersion->value; //$szOnlineResource = $oRes->value->onlineResource->value->linkage->attributes["xlink:href"]; ?> "; } ?>
get("7", "Title")); ?> get("8", "Name")); ?> get("9", "Add")); ?>
".trim($oMLT->get("10", "Wrong DTD version. 1.1.0 or higher required."))."
".trim($oMLT->get("11", "No Results"))."
 " width="20" height="20" border=0>
".trim($oMLT->get("11", "No Results"))."
get("Cancel", "Cancel")), trim($oCommonMLT->get("CloseTip", "Close Dialog")), array('width'=>75) ); ?>
>