[Mapbender-commits] r9053 - in trunk/mapbender: conf http/geoportal
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Wed Aug 27 02:33:14 PDT 2014
Author: verenadiewald
Date: 2014-08-27 02:33:13 -0700 (Wed, 27 Aug 2014)
New Revision: 9053
Added:
trunk/mapbender/conf/gazetteerFlst.conf
trunk/mapbender/http/geoportal/mb_gazetteerFlst.php
trunk/mapbender/http/geoportal/mb_gazetteerFlst_server.php
Log:
gazetteer for Flurstuecke (Geoportal SL)
Added: trunk/mapbender/conf/gazetteerFlst.conf
===================================================================
--- trunk/mapbender/conf/gazetteerFlst.conf (rev 0)
+++ trunk/mapbender/conf/gazetteerFlst.conf 2014-08-27 09:33:13 UTC (rev 9053)
@@ -0,0 +1,24 @@
+<?php
+ $wfsUrl = "";
+ $authUserName = "";
+ $authUserPassword = "";
+ $nameSpace = "";
+ #$nameSpace = "xmlns(app=http://www.deegree.org/app)";
+
+ $featuretypeGmkNr = "app:GMK_NR";
+ $gmkNrAttr = "app:ID";
+ $gmkNameAttr = "app:NAME";
+
+ $featuretypeFlur = "app:FLUR_NR";
+ $gmkNrAttrFlur = "app:GMK_NR";
+
+ $featuretypeFlz = "app:FLZ";
+ $gmkNrAttrFlz = "app:GMK_NR";
+ $flurAttrFlz = "app:FLUR_NR";
+
+ $featuretypeFln = "app:FLN";
+ $gmkNrAttrFlz = "app:GMK_NR";
+ $flurAttrFlz = "app:FLUR_NR";
+ $flzAttr = "app:FLZ";
+ $flnAttr = "app:ID";
+?>
Added: trunk/mapbender/http/geoportal/mb_gazetteerFlst.php
===================================================================
--- trunk/mapbender/http/geoportal/mb_gazetteerFlst.php (rev 0)
+++ trunk/mapbender/http/geoportal/mb_gazetteerFlst.php 2014-08-27 09:33:13 UTC (rev 9053)
@@ -0,0 +1,237 @@
+<?php
+/**
+ * Package: mb_gazetteerFlst.php
+ *
+ * Description:
+ * Gazetteer for Flurstücke
+ *
+ *
+ * Files:
+ * - http/geoportal/mb_gazetteerFlst.php
+ * - http/geoportal/mb_gazetteerFlst_server.php
+ * - conf/gazetteerFlst.conf
+ *
+ * SQL:
+ * > INSERT INTO gui_element(fkey_gui_id, e_id, e_pos, e_public, e_comment, e_title, e_element, e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires, e_url) VALUES('<gui_id>','gazetteerFlst',2,1,'gazetteer for Flurstuecke','Flurstücksuche','div','','',1,1,1,1,4,'visibility:hidden;padding-left:10px;','<div class="ui-widget">
+ * > <label for="GMK_NAME">Gemarkungsname:</label>
+ * > <input title="Pflichtfeld, bitte geben Sie mindestens 3 Anfangsbuchstaben im Feld Gemarkungsname ein, nach Auswahl wird die Gemarkungsnummer automatisch eingetragen." id="GMK_NAME" style="width:120px;"/><span title="Pflichtfeld, bitte geben Sie mindestens 3 Anfangsbuchstaben im Feld Gemarkungsname ein, nach Auswahl wird die Gemarkungsnummer automatisch eingetragen.">*</span>
+ * > </div>
+ * > <div class="ui-widget">
+ * > <label for="GMK_NR">Gemarkungsnummer:</label>
+ * > <input id="GMK_NR" style="width:120px;"/>
+ * > </div>
+ * > <div class="ui-widget">
+ * > <label style="width:180px;" for="FLUR_NR">Flurnummer:</label>
+ * > <select id="FLUR_NR">
+ * > <option value="">---</option>
+ * > </select>
+ * > </div>
+ * > <div class="ui-widget">
+ * > <label style="width:180px;" for="FLZ">Zähler/Nenner</label>
+ * > <select id="FLZ">
+ * > <option value="">---</option>
+ * > </select>
+ * > <select id="FLN">
+ * > <option value="">---</option>
+ * > </select>
+ * > </div>
+ * ><div class="ui-widget">
+ * > <input disabled="disabled" style="margin-top:5px" type="button" value="Gehe zu" id="zoomToObj" />
+ * > <input style="margin-top:5px" type="button" value="Auswahl aufheben" id="removeSelection" />
+ * > </div>','div','../geoportal/mb_gazetteerFlst.php','','mapframe1,overview','wz-graphics','');
+ * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES('<gui_id>', 'gazetteerFlst', 'searchCss', '.ui-autocomplete-loading { background: white url(''../img/indicator_wheel.gif'') right center no-repeat; }', '' ,'text/css');
+ *
+ *
+ * License:
+ * Copyright (c) 2009, Open Source Geospatial Foundation
+ * This program is dual licensed under the GNU General Public License
+ * and Simplified BSD license.
+ * http://svn.osgeo.org/mapbender/trunk/mapbender/license/license.txt
+ */
+
+require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+include '../include/dyn_js.php';
+?>
+
+Mapbender.events.init.register(function () {
+ //lösche alle abhängigen Eingaben bei Klick in Feld gemarkungsschlüssel
+ $("#GMK_NR").click(function () {
+ $("#GMK_NR").val("");
+ $("#GMK_NAME").val("");
+ $("#FLUR_NR").empty().append("<option value=''>---</option>");
+ $("#FLZ").empty().append("<option value=''>---</option>");
+ $("#FLN").empty().append("<option value=''>---</option>");
+ $("#zoomToObj").attr("disabled","true");
+ });
+
+ //lösche alle abhängigen Eingaben bei Klick in Feld gemarkungsname
+ $("#GMK_NAME").click(function () {
+ $("#GMK_NR").val("");
+ $("#GMK_NAME").val("");
+ $("#FLUR_NR").empty().append("<option value=''>---</option>");
+ $("#FLZ").empty().append("<option value=''>---</option>");
+ $("#FLN").empty().append("<option value=''>---</option>");
+ $("#zoomToObj").attr("disabled","true");
+ });
+
+ //lösche alle Eingaben + Highlight
+ $("#removeSelection").click(function () {
+ $("#GMK_NR").val("");
+ $("#GMK_NAME").val("");
+ $("#FLUR_NR").empty().append("<option value=''>---</option>");
+ $("#FLZ").empty().append("<option value=''>---</option>");
+ $("#FLN").empty().append("<option value=''>---</option>");
+ $("#zoomToObj").attr("disabled","true");
+ });
+
+ //autocomplete auf Gemarkungsschlüssel
+ $("#GMK_NR").autocomplete({
+ disabled: false,
+ source: "../geoportal/mb_gazetteerFlst_server.php?command=getGmkNr",
+ minLength: 3,
+ select: function( event, ui ) {
+ $("#GMK_NR").val(ui.item.value);
+ $("#GMK_NAME").val(ui.item.gmkName);
+
+ //selektiere Fluren
+ getFluren();
+ }
+ });
+
+ //autocomplete auf Gemarkung
+ $("#GMK_NAME").autocomplete({
+ disabled: false,
+ source: "../geoportal/mb_gazetteerFlst_server.php?command=getGmkName",
+ minLength: 3,
+ select: function( event, ui ) {
+ $("#GMK_NAME").val(ui.item.value);
+ $("#GMK_NR").val(ui.item.gmkNr);
+
+ //selektiere Fluren
+ getFluren();
+ }
+ });
+
+ //auf Auswahl der Flur selektiere Flz aus WFS
+ $("#FLUR_NR").change(function () {
+ getFlz();
+ });
+
+ //auf Auswahl Flz selektiere Fln aus WFS
+ $("#FLZ").change(function () {
+ getFln();
+ });
+
+ //auf Klick Gehe zu zoome auf hinterlegte Geometrie
+ $("#zoomToObj").click(function () {
+ $.post("../geoportal/mb_gazetteerFlst_server.php", {
+ command : "getGeomForFlst",
+ gmkNr : $("#GMK_NR").val(),
+ flurNr : $("#FLUR_NR").val(),
+ flz : $("#FLZ").val(),
+ fln : $("#FLN").val(),
+ srs : Mapbender.modules.mapframe1.getSRS()
+ }, function (jsCode, status) {
+ if(jsCode) {
+ var coord = jsCode.split(" ");
+ mb_repaintScale('mapframe1',coord[0],coord[1],2500);
+ highlight(coord[0],coord[1]);
+ //zoom("mapframe1",true,100,coord[0], coord[1]);
+ }
+ });
+ });
+
+ function highlight(x,y){
+ parent.mb_showHighlight("mapframe1",x,y);
+ parent.mb_showHighlight("overview",x,y);
+ }
+
+ function getFluren() {
+ $.post("../geoportal/mb_gazetteerFlst_server.php", {
+ command : "getFluren",
+ gmkNr : $("#GMK_NR").val()
+ }, function (jsCode, status) {
+ if(jsCode) {
+ if(typeof jsCode == "object") {
+ $("#FLUR_NR").empty();
+ for (var i = 0; i < jsCode.length; i++) {
+ var optionVal = jsCode[i];
+ var optionName = jsCode[i];
+ var optionHtml = "<option value='" + optionVal + "'>" + optionName + "</option>";
+ $("#FLUR_NR").append(optionHtml);
+ }
+
+ getFlz();
+ }
+ else {
+ alert(jsCode);
+ return false;
+ }
+ }
+ });
+ }
+
+ function getFlz() {
+ $.post("../geoportal/mb_gazetteerFlst_server.php", {
+ command : "getFlz",
+ gmkNr : $("#GMK_NR").val(),
+ flurNr : $("#FLUR_NR").val()
+ }, function (jsCode, status) {
+ if(jsCode) {
+ if(typeof jsCode == "object") {
+ $("#FLZ").empty();
+ for (var i = 0; i < jsCode.length; i++) {
+ var optionVal = jsCode[i];
+ var optionName = jsCode[i];
+ var optionHtml = "<option value='" + optionVal + "'>" + optionName + "</option>";
+ $("#FLZ").append(optionHtml);
+ }
+
+ getFln();
+ }
+ else {
+ alert(jsCode);
+ return false;
+ }
+ }
+ });
+ }
+
+ function getFln() {
+ $.post("../geoportal/mb_gazetteerFlst_server.php", {
+ command : "getFln",
+ gmkNr : $("#GMK_NR").val(),
+ flurNr : $("#FLUR_NR").val(),
+ flz : $("#FLZ").val()
+ }, function (jsCode, status) {
+ if(jsCode) {
+ if(typeof jsCode == "object") {
+ $("#FLN").empty();
+ for (var i = 0; i < jsCode.length; i++) {
+ if(jsCode[i].id) {
+ var optionVal = jsCode[i].id;
+ var optionName = jsCode[i].id;
+ var optionHtml = "<option value='" + optionVal + "'>" + optionName + "</option>";
+ $("#FLN").append(optionHtml);
+ }
+ else {
+ var optionHtml = "<option value=''>---</option>";
+ $("#FLN").append(optionHtml);
+ }
+ }
+ $("#zoomToObj").removeAttr("disabled");
+ }
+ else {
+ alert(jsCode);
+ return false;
+ }
+ }
+ });
+ }
+
+ this.openSearchDialogFlst = function () {
+ alert("öffnen");
+ };
+});
+
+
Added: trunk/mapbender/http/geoportal/mb_gazetteerFlst_server.php
===================================================================
--- trunk/mapbender/http/geoportal/mb_gazetteerFlst_server.php (rev 0)
+++ trunk/mapbender/http/geoportal/mb_gazetteerFlst_server.php 2014-08-27 09:33:13 UTC (rev 9053)
@@ -0,0 +1,305 @@
+<?php
+/*
+ * License:
+ * Copyright (c) 2009, Open Source Geospatial Foundation
+ * This program is dual licensed under the GNU General Public License
+ * and Simplified BSD license.
+ * http://svn.osgeo.org/mapbender/trunk/mapbender/license/license.txt
+ */
+
+require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+require_once(dirname(__FILE__)."/../classes/class_administration.php");
+require_once(dirname(__FILE__)."/../classes/class_json.php");
+include(dirname(__FILE__)."/../geoportal/class_gml2.php");
+include(dirname(__FILE__) . "/../../conf/gazetteerFlst.conf");
+
+//db connection
+$con = db_connect($DBSERVER,$OWNER,$PW) or die ("Error while connecting database $dbname");
+db_select_db(DB,$con);
+
+// get data from POST
+$command = $_REQUEST['command'];
+
+$checkCommand = array(
+ "getGmkNr",
+ "getGmkName",
+ "getFluren",
+ "getFlz",
+ "getFln",
+ "getGeomForFlst"
+ );
+
+if(!in_array($command, $checkCommand)) {
+ echo "Ungültiger Befehl";
+ die();
+}
+
+$json = new Mapbender_JSON();
+
+function getGeoJson ($featureType, $filter) {
+ global $wfsUrl, $nameSpace, $authUserName, $authUserPassword;
+ $admin = new administration();
+
+ $wfsUrl = $wfsUrl . "&NAMESPACE=" . $nameSpace. "&username=" . $authUserName . "&password=" . $authUserPassword . "&typeName=" . $featureType."&filter=";
+ $req = urldecode($wfsUrl).urlencode($admin->char_decode(stripslashes($filter)));
+ #echo $req;
+ #$e = new mb_exception(urldecode($req));
+
+ $mygml = new gml2();
+
+ #$auth = array();
+ #$auth['username'] = $authUserName;
+ #$auth['password'] = $authUserPassword;
+ #$auth['auth_type'] = "basic";
+ $mygml->parseFile($req);
+ #$mygml->parseGeometry($req);
+
+ header("Content-type:application/x-json; charset=utf-8");
+ $geoJson = $mygml->toGeoJSON();
+
+ $jsonObj = json_decode($geoJson);
+ return $jsonObj;
+}
+
+function getGeomFromXml ($featureType, $filter,$srs) {
+ global $wfsUrl, $nameSpace, $authUserName, $authUserPassword;
+ $admin = new administration();
+
+ $wfsUrl = $wfsUrl . "&NAMESPACE=" . $nameSpace. "&username=" . $authUserName . "&password=" . $authUserPassword . "&typeName=" . $featureType."&srsName=".$srs."&filter=";
+ $req = urldecode($wfsUrl).urlencode($admin->char_decode(stripslashes($filter)));
+ #echo $req;
+ #$e = new mb_exception(urldecode($req));
+
+ $mygml = new gml2();
+
+ #$auth = array();
+ #$auth['username'] = $authUserName;
+ #$auth['password'] = $authUserPassword;
+ #$auth['auth_type'] = "basic";
+ $geom = $mygml->parseGeometry($req);
+ #$e = new mb_exception(implode("----",$geom));
+ #header("Content-type:application/x-json; charset=utf-8");
+ #$geoJson = $mygml->toGeoJSON();
+
+ #$jsonObj = json_encode(array("geom" => implode(",",$geom)));
+ return implode(",",$geom);
+}
+
+if($command == "getGmkNr") {
+ $searchString = $_REQUEST['term'];
+ $pattern = "/[a-z0-9]/i";
+ if (!preg_match($pattern, $searchString)) {
+ echo "Ungültiger Suchbegriff";
+ die();
+ }
+
+ $searchFeaturetype = $featuretypeGmkNr;
+ $filter = '<Filter xmlns="http://www.opengis.net/ogc" xmlns:app="http://www.deegree.org/app"><PropertyIsLike wildCard="*" singleChar="?" escape="#">
+ <PropertyName>' . $gmkNrAttr . '</PropertyName>
+ <Literal>*' . $searchString . '*</Literal>
+ </PropertyIsLike></Filter>';
+
+
+ $resultObj = getGeoJson($searchFeaturetype, $filter);
+ $resultArray = array();
+
+ foreach($resultObj->features as $feature) {
+ $resultArray[] = array (
+ "id" => $feature->properties->ID,
+ "label" => $feature->properties->ID,
+ "value" => $feature->properties->ID,
+ "gmkName" => $feature->properties->NAME
+ );
+ }
+
+ header("Content-type:application/json; charset=utf-8");
+ echo json_encode($resultArray);
+}
+
+if($command == "getGmkName") {
+ $searchString = $_REQUEST['term'];
+ $pattern = "/[a-z0-9]/i";
+ if (!preg_match($pattern, $searchString)) {
+ echo "Ungültiger Suchbegriff";
+ die();
+ }
+
+ $searchFeaturetype = $featuretypeGmkNr;
+ $filter = '<Filter xmlns="http://www.opengis.net/ogc" xmlns:app="http://www.deegree.org/app"><PropertyIsLike wildCard="*" singleChar="?" escape="#" matchCase="false">
+ <PropertyName>' . $gmkNameAttr . '</PropertyName>
+ <Literal>*' . $searchString . '*</Literal>
+ </PropertyIsLike></Filter>';
+
+ $resultObj = getGeoJson($searchFeaturetype, $filter);
+ $resultArray = array();
+
+ foreach($resultObj->features as $feature) {
+ $resultArray[] = array (
+ "id" => $feature->properties->NAME,
+ "label" => $feature->properties->NAME,
+ "value" => $feature->properties->NAME,
+ "gmkNr" => $feature->properties->ID
+ );
+ }
+
+ header("Content-type:application/json; charset=utf-8");
+ echo json_encode($resultArray);
+}
+
+if($command == "getFluren") {
+ $gmkNr = $_REQUEST['gmkNr'];
+ $pattern = "/[0-9]/i";
+ if (!preg_match($pattern, $gmkNr)) {
+ echo "Ungültige Gemarkungsnr";
+ die();
+ }
+
+ $searchFeaturetype = $featuretypeFlur;
+ $filter = '<Filter xmlns="http://www.opengis.net/ogc" xmlns:app="http://www.deegree.org/app"><PropertyIsEqualTo>
+ <PropertyName>' . $gmkNrAttrFlur . '</PropertyName>
+ <Literal>' . $gmkNr . '</Literal>
+ </PropertyIsEqualTo></Filter>';
+
+ $resultObj = getGeoJson($searchFeaturetype, $filter);
+ $resultArray = array();
+ foreach($resultObj->features as $feature) {
+ $resultArray[] = $feature->properties->NAME;
+ }
+
+ header("Content-type:application/json; charset=utf-8");
+ sort($resultArray);
+ echo json_encode($resultArray);
+}
+
+if($command == "getFlz") {
+ $gmkNr = $_REQUEST['gmkNr'];
+ $flurNr = $_REQUEST['flurNr'];
+ $pattern = "/[0-9]/i";
+ if (!preg_match($pattern, $gmkNr)) {
+ echo "Ungültige Gemarkungsnr";
+ die();
+ }
+ if (!preg_match($pattern, $flurNr)) {
+ echo "Ungültige Flurnr";
+ die();
+ }
+
+ $searchFeaturetype = $featuretypeFlz;
+ $filter = '<Filter xmlns="http://www.opengis.net/ogc" xmlns:app="http://www.deegree.org/app"><And>
+ <PropertyIsEqualTo>
+ <PropertyName>' . $gmkNrAttrFlz . '</PropertyName>
+ <Literal>' . $gmkNr . '</Literal>
+ </PropertyIsEqualTo>
+ <PropertyIsEqualTo>
+ <PropertyName>' . $flurAttrFlz . '</PropertyName>
+ <Literal>' . $flurNr . '</Literal>
+ </PropertyIsEqualTo>
+ </And></Filter>';
+
+ $resultObj = getGeoJson($searchFeaturetype, $filter);
+ $resultArray = array();
+ foreach($resultObj->features as $feature) {
+ $resultArray[] = $feature->properties->ID;
+ }
+
+ header("Content-type:application/json; charset=utf-8");
+ $resultArray = array_unique($resultArray);
+ sort($resultArray);
+ echo json_encode($resultArray);
+}
+
+if($command == "getFln") {
+ $gmkNr = $_REQUEST['gmkNr'];
+ $flurNr = $_REQUEST['flurNr'];
+ $flz = $_REQUEST['flz'];
+ $pattern = "/[0-9]/i";
+ if (!preg_match($pattern, $gmkNr)) {
+ echo "Ungültige Gemarkungsnr";
+ die();
+ }
+ if (!preg_match($pattern, $flurNr)) {
+ echo "Ungültige Flurnr";
+ die();
+ }
+ if (!preg_match($pattern, $flz)) {
+ echo "Ungültiger Flz";
+ die();
+ }
+
+ $searchFeaturetype = $featuretypeFln;
+ $filter = '<Filter xmlns="http://www.opengis.net/ogc" xmlns:app="http://www.deegree.org/app"><And>
+ <PropertyIsEqualTo>
+ <PropertyName>' . $gmkNrAttrFlz . '</PropertyName>
+ <Literal>' . $gmkNr . '</Literal>
+ </PropertyIsEqualTo>
+ <PropertyIsEqualTo>
+ <PropertyName>' . $flurAttrFlz . '</PropertyName>
+ <Literal>' . $flurNr . '</Literal>
+ </PropertyIsEqualTo>
+ <PropertyIsEqualTo>
+ <PropertyName>' . $flzAttr . '</PropertyName>
+ <Literal>' . $flz . '</Literal>
+ </PropertyIsEqualTo>
+ </And></Filter>';
+
+ $resultObj = getGeoJson($searchFeaturetype, $filter);
+ #print_r($resultObj);
+ $resultArray = array();
+ foreach($resultObj->features as $feature) {
+ $resultArray[] = array("id" => $feature->properties->ID);
+
+ }
+
+ header("Content-type:application/json; charset=utf-8");
+ sort($resultArray);
+ echo json_encode($resultArray);
+}
+if($command == "getGeomForFlst") {
+ $gmkNr = $_REQUEST['gmkNr'];
+ $flurNr = $_REQUEST['flurNr'];
+ $flz = $_REQUEST['flz'];
+ $fln = $_REQUEST['fln'];
+ $srs = $_REQUEST['srs'];
+ $pattern = "/[0-9]/i";
+ if (!preg_match($pattern, $gmkNr)) {
+ echo "Ungültige Gemarkungsnr";
+ die();
+ }
+ if (!preg_match($pattern, $flurNr)) {
+ echo "Ungültige Flurnr";
+ die();
+ }
+ if (!preg_match($pattern, $flz)) {
+ echo "Ungültiger Flz";
+ die();
+ }
+
+ if($fln != "") {
+ $flnFilter = '<PropertyIsEqualTo>
+ <PropertyName>' . $flnAttr . '</PropertyName>
+ <Literal>' . $fln . '</Literal>
+ </PropertyIsEqualTo>';
+ }
+
+ $searchFeaturetype = $featuretypeFln;
+ $filter = '<Filter xmlns="http://www.opengis.net/ogc" xmlns:app="http://www.deegree.org/app"><And>
+ <PropertyIsEqualTo>
+ <PropertyName>' . $gmkNrAttrFlz . '</PropertyName>
+ <Literal>' . $gmkNr . '</Literal>
+ </PropertyIsEqualTo>
+ <PropertyIsEqualTo>
+ <PropertyName>' . $flurAttrFlz . '</PropertyName>
+ <Literal>' . $flurNr . '</Literal>
+ </PropertyIsEqualTo>
+ <PropertyIsEqualTo>
+ <PropertyName>' . $flzAttr . '</PropertyName>
+ <Literal>' . $flz . '</Literal>
+ </PropertyIsEqualTo>
+ '.$flnFilter.'
+ </And></Filter>';
+
+ $resultObj = getGeomFromXml($searchFeaturetype, $filter,$srs);
+ header("Content-type:application/json; charset=utf-8");
+ echo json_encode($resultObj);
+}
+?>
More information about the Mapbender_commits
mailing list