[Mapbender-commits] r1805 - branches/mapbender_sld/http/sld/classes
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Thu Nov 15 10:46:38 EST 2007
Author: mschulz
Date: 2007-11-15 10:46:38 -0500 (Thu, 15 Nov 2007)
New Revision: 1805
Added:
branches/mapbender_sld/http/sld/classes/DbUtils.php
Log:
Initial checkin, SLD db-utility functions
Added: branches/mapbender_sld/http/sld/classes/DbUtils.php
===================================================================
--- branches/mapbender_sld/http/sld/classes/DbUtils.php (rev 0)
+++ branches/mapbender_sld/http/sld/classes/DbUtils.php 2007-11-15 15:46:38 UTC (rev 1805)
@@ -0,0 +1,132 @@
+<?php
+
+# Copyright (C) 2007 in medias res GmbH
+# 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__)."/../../../conf/mapbender.conf");
+$con = db_connect(DBSERVER,OWNER,PW);
+db_select_db(DB,$con);
+
+/**
+ * This class wraps db functions of the sld implementation.
+ *
+ * @package sld_classes
+ * @author Michael Schulz
+ */
+class DbUtils
+{
+ /**
+ * Read the layer_id from the DB.
+ *
+ * @param <int> the wms_id
+ * @param <string> the layer_name
+ * @return <int> the layer_id
+ */
+ function getLayerIdFromLayerName($wms_id, $layer_name) {
+ $sql = "SELECT * FROM layer WHERE fkey_wms_id = $1 AND layer_name = $2";
+ $v = array($wms_id, $layer_name);
+ $t = array('i', 's');
+ $res = db_prep_query($sql,$v,$t);
+ if ( db_fetch_row($res, 0) ) {
+ return db_result($res, 0, "layer_id");
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Check for a layer wfs-Conf.
+ *
+ * @param <int> the layer_id
+ * @param <string> the gui_id
+ * @return <int> wfs_conf_id
+ */
+ function getLayerWfsConfId($gui_id, $layer_id) {
+ $sql = "SELECT gui_layer_wfs_featuretype FROM gui_layer WHERE fkey_gui_id = $1 AND fkey_layer_id = $2";
+ $v = array($gui_id, $layer_id);
+ $t = array('s', 'i');
+ $res = db_prep_query($sql,$v,$t);
+ if ( db_fetch_row($res, 0) ) {
+ return db_result($res, 0, "gui_layer_wfs_featuretype");
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * return layer wfs-FeatureType-id.
+ *
+ * @param <int> the wfs_conf_id
+ * @return <int> fkey_featuretype_id
+ */
+ function getWfsConfFeatureTypeId($wfs_conf_id) {
+ $sql = "SELECT fkey_featuretype_id FROM wfs_conf WHERE wfs_conf_id = $1";
+ $v = array($wfs_conf_id);
+ $t = array('i');
+ $res = db_prep_query($sql,$v,$t);
+ if ( db_fetch_row($res, 0) ) {
+ return db_result($res, 0, "fkey_featuretype_id");
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * create a getmap request for the map images
+ *
+ * @param <string> gui_id
+ * @param <int> layer_id
+ * @param <int> wms_id
+ *
+ * @return <string> getmap URL
+ */
+ function getPreviewMapUrl($gui_id, $layer_id, $wms_id) {
+ $previewMapSrs = "";
+ $sql = "select w.gui_wms_epsg as srs, e.minx, e.miny, e.maxx, e.maxy ";
+ $sql .= "from gui_wms w, layer l, layer_epsg e ";
+ $sql .= "where l.fkey_wms_id=w.fkey_wms_id and e.fkey_layer_id=l.layer_id and e.epsg=w.gui_wms_epsg and ";
+ $sql .= "l.layer_parent = '' and w.fkey_gui_id = $1 and w.gui_wms_position=0";
+ $v = array($gui_id);
+ $t = array('s');
+ $res = db_prep_query($sql,$v,$t);
+ if ( $res ) {
+ $row = db_fetch_array($res, 0);
+ $previewMapSrs .= "&SRS=".$row["srs"]."&BBOX=".$row["minx"].",".$row["miny"].",".$row["maxx"].",".$row["maxy"];
+ } else {
+ return false;
+ }
+
+ $sql = "select wms.wms_getmap as mapurl, layer.layer_name, wms.wms_version as version, w.gui_wms_mapformat as format ";
+ $sql .= "from gui_wms w, gui_layer l, wms, layer ";
+ $sql .= "where w.fkey_gui_id=l.fkey_gui_id and wms.wms_id = w.fkey_wms_id and l.fkey_layer_id = layer.layer_id and ";
+ $sql .= "w.fkey_gui_id=$1 and l.fkey_layer_id=$2 and wms.wms_id = $3";
+ $v = array($gui_id, $layer_id, $wms_id);
+ $t = array('s', 'i', 'i');
+ $res = db_prep_query($sql,$v,$t);
+ $previewMapUrl = "";
+ if ( $res ) {
+ $row = db_fetch_array($res, 0);
+ $previewMapUrl .= $row["mapurl"]."SERVICE=WMS&REQUEST=GetMap&VERSION=".$row["version"];
+ $previewMapUrl .= "&LAYERS=".$row["layer_name"]."&STYLES=";
+ $previewMapUrl .= $previewMapSrs;
+ $previewMapUrl .= "&FORMAT=".$row["format"];
+ return $previewMapUrl;
+ } else {
+ return false;
+ }
+ }
+}
+
+?>
\ No newline at end of file
More information about the Mapbender_commits
mailing list