[Mapbender-commits] r6855 - in trunk/mapbender/http: classes php
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Tue Aug 31 12:45:36 EDT 2010
Author: armin11
Date: 2010-08-31 16:45:36 +0000 (Tue, 31 Aug 2010)
New Revision: 6855
Added:
trunk/mapbender/http/php/mod_layerISOMetadataWriteToFolder.php
Modified:
trunk/mapbender/http/classes/class_connector.php
trunk/mapbender/http/php/mod_layerISOMetadata.php
Log:
Some bugfixing and extensions for inspire metadata generation
Modified: trunk/mapbender/http/classes/class_connector.php
===================================================================
--- trunk/mapbender/http/classes/class_connector.php 2010-08-31 16:32:40 UTC (rev 6854)
+++ trunk/mapbender/http/classes/class_connector.php 2010-08-31 16:45:36 UTC (rev 6855)
@@ -137,7 +137,7 @@
break;
case "curlSendCustomHeaders":
- $this->curlSendHeaders = $value;
+ $this->curlSendCustomHeaders = $value;
break;
case "httpContentType":
Modified: trunk/mapbender/http/php/mod_layerISOMetadata.php
===================================================================
--- trunk/mapbender/http/php/mod_layerISOMetadata.php 2010-08-31 16:32:40 UTC (rev 6854)
+++ trunk/mapbender/http/php/mod_layerISOMetadata.php 2010-08-31 16:45:36 UTC (rev 6855)
@@ -78,8 +78,10 @@
$sql .= "wms.wms_title, wms.wms_abstract, wms.wms_id, wms.fees, wms.accessconstraints, wms.contactperson, ";
$sql .= "wms.contactposition, wms.contactorganization, wms.address, wms.city, wms_timestamp, wms_owner, ";
$sql .= "wms.stateorprovince, wms.postcode, wms.contactvoicetelephone, wms.contactfacsimiletelephone, wms.wms_owsproxy,";
- $sql .= "wms.contactelectronicmailaddress, wms.country ";
- $sql .= "FROM wms, layer WHERE layer_id = $1 and layer.fkey_wms_id = wms.wms_id";
+ $sql .= "wms.contactelectronicmailaddress, wms.country , ";
+ $sql .= "layer_epsg.minx || ',' || layer_epsg.miny || ',' || layer_epsg.maxx || ',' || layer_epsg.maxy as bbox ";
+ $sql .= "FROM wms, layer, layer_epsg WHERE layer_id = $1 and layer.fkey_wms_id = wms.wms_id";
+ $sql .= " and layer_epsg.fkey_layer_id=layer.layer_id and layer_epsg.epsg='EPSG:4326'";
}
$v = array((integer)$recordId);
$t = array('i');
@@ -389,6 +391,35 @@
$CI_ResponsibleParty->appendChild($role);
$pointOfContact->appendChild($CI_ResponsibleParty);
$SV_ServiceIdentification->appendChild($pointOfContact);
+ //generate graphical overview part
+ $sql = "SELECT layer_preview.layer_map_preview_filename FROM layer_preview WHERE layer_preview.fkey_layer_id=$1";
+ $v = array((integer)$mapbenderMetadata["layer_id"]);
+ $t = array('i');
+ $res = db_prep_query($sql,$v,$t);
+ $row = db_fetch_array($res);
+
+ if (isset($row['layer_map_preview_filename']) & $row['layer_map_preview_filename'] != '') {
+ $graphicOverview=$iso19139->createElement("gmd:graphicOverview");
+ $MD_BrowseGraphic=$iso19139->createElement("gmd:MD_BrowseGraphic");
+ $fileName=$iso19139->createElement("gmd:fileName");
+ $fileName_cs=$iso19139->createElement("gco:characterString");
+ $previewFilenameText = $iso19139->createTextNode("http://www.gdi-rp-dienste3.rlp.de/mapbender/x_geoportal/layer_preview/".$row['layer_map_preview_filename']);
+ $fileName_cs->appendChild($previewFilenameText);
+ $fileName->appendChild($fileName_cs);
+ $MD_BrowseGraphic->appendChild($fileName);
+ $graphicOverview->appendChild($MD_BrowseGraphic);
+ $SV_ServiceIdentification->appendChild($graphicOverview);
+ }
+
+ /*<gmd:graphicOverview>
+ <gmd:MD_BrowseGraphic>
+ <gmd:fileName>
+ <gco:CharacterString>http://goesr.noaa.gov/browse/datasetIdentifier</gco:CharacterString>
+ </gmd:fileName>
+ </gmd:MD_BrowseGraphic>
+ </gmd:graphicOverview>*/
+
+
//generate keyword part - for services the inspire themes are not applicable!!!
//read keywords for resource out of the database:
$sql = "SELECT keyword.keyword FROM keyword, layer_keyword WHERE layer_keyword.fkey_layer_id=$1 AND layer_keyword.fkey_keyword_id=keyword.keyword_id";
@@ -569,10 +600,10 @@
$gmd_URL=$iso19139->createElement("gmd:URL");
//Check if anonymous user has rights to access this layer - if not ? which resource should be advertised? TODO
if ($hasPermission) {
- $gmd_URLText=$iso19139->createTextNode(urlencode("http://www.geoportal.rlp.de/mapbender/x_geoportal/wms.php?layer_id=".$mapbenderMetadata['layer_id']."&REQUEST=GetCapabilities&VERSION=1.1.1&SERVICE=WMS"));
+ $gmd_URLText=$iso19139->createTextNode("http://www.geoportal.rlp.de/mapbender/x_geoportal/wms.php?layer_id=".$mapbenderMetadata['layer_id']."");
}
else {
- $gmd_URLText=$iso19139->createTextNode(urlencode("https://www.geoportal.rlp.de/http_auth/".$mapbenderMetadata['layer_id']."?REQUEST=GetCapabilities&VERSION=1.1.1&SERVICE=WMS"));
+ $gmd_URLText=$iso19139->createTextNode("https://www.geoportal.rlp.de/http_auth/".$mapbenderMetadata['layer_id']."?");
}
$gmd_URL->appendChild($gmd_URLText);
$gmd_linkage->appendChild($gmd_URL);
Added: trunk/mapbender/http/php/mod_layerISOMetadataWriteToFolder.php
===================================================================
--- trunk/mapbender/http/php/mod_layerISOMetadataWriteToFolder.php (rev 0)
+++ trunk/mapbender/http/php/mod_layerISOMetadataWriteToFolder.php 2010-08-31 16:45:36 UTC (rev 6855)
@@ -0,0 +1,97 @@
+<?php
+#http://www.geoportal.rlp.de/mapbender/php/mod_layerISOMetadata.php?SERVICE=WMS&outputFormat=iso19139&Id=24356
+# $Id: mod_layerISOMetadata.php 235
+# http://www.mapbender.org/index.php/Inspire_Metadata_Editor
+# Copyright (C) 2002 CCGIS
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+require_once(dirname(__FILE__) . "/../../core/globalSettings.php");
+require_once(dirname(__FILE__) . "/../classes/class_connector.php");
+
+$con = db_connect(DBSERVER,OWNER,PW);
+db_select_db(DB,$con);
+
+//define the view or table where to read out the layer ids for which metadatafiles should be generated
+$wmsView = "wms_search_table_test";
+//$wmsView = '';
+//parse request parameter
+//make all parameters available as upper case
+
+foreach($_REQUEST as $key => $val) {
+ $_REQUEST[strtoupper($key)] = $val;
+}
+//validate request params
+
+//
+if (!isset($_REQUEST['TYPE'])) {
+ echo 'GET Parameter Type lacks';
+ die();
+}
+
+if (isset($_REQUEST['TYPE']) and $_REQUEST['TYPE'] != "ALL") {
+ //
+ echo 'validate: <b>'.$_REQUEST['TYPE'].'</b> is not valid.<br/>';
+ die();
+}
+
+$sql = "SELECT layer_id ";
+$sql .= "FROM ".$wmsView;
+$v = array();
+$t = array();
+$res = db_prep_query($sql,$v,$t);
+
+$generatorScript = '/mapbender/php/mod_layerISOMetadata.php?';
+$generatorBaseUrl = 'http://localhost'.$generatorScript;
+
+echo $generatorBaseUrl."<br>";
+
+while($row = db_fetch_array($res)){
+ $generatorUrl = $generatorBaseUrl."SERVICE=WMS&outputFormat=iso19139&id=".$row['layer_id'];
+ echo "URL requested : ".$generatorUrl."<br>";
+ $generatorInterfaceObject = new connector($generatorUrl);
+ $ISOFile = $generatorInterfaceObject->file;
+ #echo "Returned value: ".$ISOFile."<br>";
+ //generate file identifier:
+ $fileId = guid();
+ echo "File ID ".$fileId." generated<br>";
+ //generate temporary files under tmp
+ if($h = fopen(TMPDIR."/metadata/mapbenderLayerMetadata_".$row['layer_id']."_".$fileId."_iso19139.xml","w")){
+ if(!fwrite($h,$ISOFile)){
+ $e = new mb_exception("mod_layerISOMetadata: cannot write to file: ".TMPDIR."/mapbenderLayerMetadata_".$row['layer_id']."_".$fileId."_iso19139.xml");
+ }
+ echo "File for ID ".$fileId." written to TMP<br>";
+ fclose($h);
+ }
+}
+function guid(){
+ if (function_exists('com_create_guid')){
+ return com_create_guid();
+ }else{
+ mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
+ $charid = strtoupper(md5(uniqid(rand(), true)));
+ $hyphen = chr(45);// "-"
+ $uuid = chr(123)// "{"
+ .substr($charid, 0, 8).$hyphen
+ .substr($charid, 8, 4).$hyphen
+ .substr($charid,12, 4).$hyphen
+ .substr($charid,16, 4).$hyphen
+ .substr($charid,20,12)
+ .chr(125);// "}"
+ return $uuid;
+ }
+}
+
More information about the Mapbender_commits
mailing list