[Mapbender-commits] r9484 - trunk/mapbender/http/geoportal
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Fri May 27 00:01:49 PDT 2016
Author: armin11
Date: 2016-05-27 00:01:49 -0700 (Fri, 27 May 2016)
New Revision: 9484
Removed:
trunk/mapbender/http/geoportal/breitband_splash.php
trunk/mapbender/http/geoportal/cr_mobile.php
trunk/mapbender/http/geoportal/demo_table_jui.css
trunk/mapbender/http/geoportal/gaz_geom_alt.php
trunk/mapbender/http/geoportal/gaz_geom_mobile.php.trunk
trunk/mapbender/http/geoportal/gaz_geom_mobile2.php
trunk/mapbender/http/geoportal/gaz_geom_mobile_alt.php
trunk/mapbender/http/geoportal/gaz_geom_mobile_alt_neu.php
trunk/mapbender/http/geoportal/geoportal_mobile.html
trunk/mapbender/http/geoportal/logo_breitband.png
trunk/mapbender/http/geoportal/mobile-base_rlp.js
trunk/mapbender/http/geoportal/mobile-jq_rlp.js
trunk/mapbender/http/geoportal/mod_digitize_tab_komserv.php
trunk/mapbender/http/geoportal/mod_digitize_tab_komserv_orga.php
trunk/mapbender/http/geoportal/mod_fplanid.php
trunk/mapbender/http/geoportal/mod_initialStartWmc_new.php
trunk/mapbender/http/geoportal/mod_statistik.php
Log:
Rewind wrong commit
Deleted: trunk/mapbender/http/geoportal/breitband_splash.php
===================================================================
--- trunk/mapbender/http/geoportal/breitband_splash.php 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/breitband_splash.php 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,3 +0,0 @@
-<?php
-echo "<table width='100%' style='background-color:#FFFFFF'><tr align='center'><td><br><br><br><br><img alt='ajax-loader' src='../img/ajax-loader.gif'>"."    "."<img alt='logo'src='../geoportal/logo_breitband.png'>"."    "."<img alt='ajax-loader' src='../img/ajax-loader.gif'></td></tr><tr align='center'><td><br><strong>"._mb('please wait ... ')."</strong></td></tr>"."<tr align='center'><td><br>"._mb('Loading application: ')."" . $this->guiId . "</td></tr></table>";
-?>
Deleted: trunk/mapbender/http/geoportal/cr_mobile.php
===================================================================
--- trunk/mapbender/http/geoportal/cr_mobile.php 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/cr_mobile.php 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,5 +0,0 @@
-<?php
-require_once dirname(__FILE__) . "/../extensions/phpqrcode/phpqrcode.php";
-$invokeLink = "http://www.geoportal.rlp.de/mapbender/geoportal/geoportal_mobile.html";
-QRcode::png($invokeLink);
-?>
Deleted: trunk/mapbender/http/geoportal/demo_table_jui.css
===================================================================
--- trunk/mapbender/http/geoportal/demo_table_jui.css 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/demo_table_jui.css 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,476 +0,0 @@
-/*
- * File: demo_table_jui.css
- * CVS: $Id$
- * Description: CSS descriptions for DataTables demo pages
- * Author: Allan Jardine
- * Created: Tue May 12 06:47:22 BST 2009
- * Modified: $Date$ by $Author$
- * Language: CSS
- * Project: DataTables
- *
- * Copyright 2009 Allan Jardine. All Rights Reserved.
- *
- * ***************************************************************************
- * DESCRIPTION
- *
- * The styles given here are suitable for the demos that are used with the standard DataTables
- * distribution (see www.datatables.net). You will most likely wish to modify these styles to
- * meet the layout requirements of your site.
- *
- * Common issues:
- * 'full_numbers' pagination - I use an extra selector on the body tag to ensure that there is
- * no conflict between the two pagination types. If you want to use full_numbers pagination
- * ensure that you either have "example_alt_pagination" as a body class name, or better yet,
- * modify that selector.
- * Note that the path used for Images is relative. All images are by default located in
- * ../images/ - relative to this CSS file.
- */
-
-
-/*
- * jQuery UI specific styling
- */
-
-.paging_two_button .fg-button {
- float: left;
- cursor: pointer;
- * cursor: hand;
-}
-
-.paging_full_numbers .fg-button {
- padding: 2px 6px;
- cursor: pointer;
- * cursor: hand;
-}
-
-.paging_full_numbers {
- width: 350px !important;
-}
-
-.fg-toolbar {
- padding: 5px;
-}
-
-.dataTables_paginate {
- width: auto;
-}
-
-table.display thead th {
- padding: 3px 0px 3px 10px;
- cursor: pointer;
- * cursor: hand;
-}
-
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- * Everything below this line is the same as demo_table.css. This file is
- * required for 'cleanliness' of the markup
- *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * DataTables features
- */
-
-.dataTables_wrapper {
- position: relative;
- min-height: 302px;
- _height: 302px;
- clear: both;
-}
-
-.dataTables_processing {
- position: absolute;
- top: 0px;
- left: 50%;
- width: 250px;
- margin-left: -125px;
- border: 1px solid #ddd;
- text-align: center;
- color: #999;
- font-size: 11px;
- padding: 2px 0;
-}
-
-.dataTables_length {
- width: 40%;
- float: left;
-}
-
-.dataTables_filter {
- width: 50%;
- float: right;
- text-align: right;
-}
-
-.dataTables_info {
- width: 50%;
- float: left;
-}
-
-.dataTables_paginate {
- float: right;
- text-align: right;
-}
-
-/* Pagination nested */
-.paginate_disabled_previous, .paginate_enabled_previous, .paginate_disabled_next, .paginate_enabled_next {
- height: 19px;
- width: 19px;
- margin-left: 3px;
- float: left;
-}
-
-.paginate_disabled_previous {
- background-image: url('../images/back_disabled.jpg');
-}
-
-.paginate_enabled_previous {
- background-image: url('../images/back_enabled.jpg');
-}
-
-.paginate_disabled_next {
- background-image: url('../images/forward_disabled.jpg');
-}
-
-.paginate_enabled_next {
- background-image: url('../images/forward_enabled.jpg');
-}
-
-
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * DataTables display
- */
-table.display {
- margin: 0 auto;
- width: 100%;
- clear: both;
-}
-
-table.display tfoot th {
- padding: 3px 10px;
- border-top: 1px solid black;
- font-weight: bold;
-}
-
-table.display tr.heading2 td {
- border-bottom: 1px solid #aaa;
-}
-
-table.display td {
- padding: 3px 10px;
-}
-
-table.display td.center {
- text-align: center;
-}
-
-
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * DataTables sorting
- */
-
-.sorting_asc {
- background: url('../images/sort_asc.jpg') no-repeat center right;
-}
-
-.sorting_desc {
- background: url('../images/sort_desc.jpg') no-repeat center right;
-}
-
-.sorting {
- background: url('../images/sort_both.jpg') no-repeat center right;
-}
-
-
-
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * DataTables row classes
- */
-table.display tr.odd.gradeA {
- background-color: #ddffdd;
-}
-
-table.display tr.even.gradeA {
- background-color: #eeffee;
-}
-
-
-
-
-table.display tr.odd.gradeA {
- background-color: #ddffdd;
-}
-
-table.display tr.even.gradeA {
- background-color: #eeffee;
-}
-
-table.display tr.odd.gradeC {
- background-color: #ddddff;
-}
-
-table.display tr.even.gradeC {
- background-color: #eeeeff;
-}
-
-table.display tr.odd.gradeX {
- background-color: #ffdddd;
-}
-
-table.display tr.even.gradeX {
- background-color: #ffeeee;
-}
-
-table.display tr.odd.gradeU {
- background-color: #ddd;
-}
-
-table.display tr.even.gradeU {
- background-color: #eee;
-}
-
-
-tr.odd {
- background-color: #cfcfcf;
-}
-
-tr.even {
- background-color: white;
-}
-
-
-
-
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Misc
- */
-.top, .bottom {
- padding: 15px;
- background-color: #F5F5F5;
- border: 1px solid #CCCCCC;
-}
-
-.top .dataTables_info {
- float: none;
-}
-
-.clear {
- clear: both;
-}
-
-.dataTables_empty {
- text-align: center;
-}
-
-tfoot input {
- margin: 0.5em 0;
- width: 100%;
- color: #444;
-}
-
-tfoot input.search_init {
- color: #999;
-}
-
-td.group {
- background-color: #d1cfd0;
- border-bottom: 2px solid #A19B9E;
- border-top: 2px solid #A19B9E;
-}
-
-td.details {
- background-color: #d1cfd0;
- border: 2px solid #A19B9E;
-}
-
-
-.example_alt_pagination div.dataTables_info {
- width: 40%;
-}
-
-.paging_full_numbers span.paginate_button,
- .paging_full_numbers span.paginate_active {
- border: 1px solid #aaa;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- padding: 2px 5px;
- margin: 0 3px;
- cursor: pointer;
- *cursor: hand;
-}
-
-.paging_full_numbers span.paginate_button {
- background-color: #ddd;
-}
-
-.paging_full_numbers span.paginate_button:hover {
- background-color: #ccc;
-}
-
-.paging_full_numbers span.paginate_active {
- background-color: #99B3FF;
-}
-
-table.display tr.even.row_selected td {
- background-color: #B0BED9;
-}
-
-table.display tr.odd.row_selected td {
- background-color: #9FAFD1;
-}
-
-
-/*
- * Sorting classes for columns
- */
-/* For the standard odd/even */
-tr.odd td.sorting_1 {
- background-color: #d4aeae;
-}
-
-tr.odd td.sorting_2 {
- background-color: #DADCFF;
-}
-
-tr.odd td.sorting_3 {
- background-color: #E0E2FF;
-}
-
-tr.even td.sorting_1 {
- background-color: #EAEBFF;
-}
-
-tr.even td.sorting_2 {
- background-color: #F2F3FF;
-}
-
-tr.even td.sorting_3 {
- background-color: #F9F9FF;
-}
-
-
-/* For the Conditional-CSS grading rows */
-/*
- Colour calculations (based off the main row colours)
- Level 1:
- dd > c4
- ee > d5
- Level 2:
- dd > d1
- ee > e2
- */
-tr.odd.gradeA td.sorting_1 {
- background-color: #c4ffc4;
-}
-
-tr.odd.gradeA td.sorting_2 {
- background-color: #d1ffd1;
-}
-
-tr.odd.gradeA td.sorting_3 {
- background-color: #d1ffd1;
-}
-
-tr.even.gradeA td.sorting_1 {
- background-color: #d5ffd5;
-}
-
-tr.even.gradeA td.sorting_2 {
- background-color: #e2ffe2;
-}
-
-tr.even.gradeA td.sorting_3 {
- background-color: #e2ffe2;
-}
-
-tr.odd.gradeC td.sorting_1 {
- background-color: #c4c4ff;
-}
-
-tr.odd.gradeC td.sorting_2 {
- background-color: #d1d1ff;
-}
-
-tr.odd.gradeC td.sorting_3 {
- background-color: #d1d1ff;
-}
-
-tr.even.gradeC td.sorting_1 {
- background-color: #d5d5ff;
-}
-
-tr.even.gradeC td.sorting_2 {
- background-color: #e2e2ff;
-}
-
-tr.even.gradeC td.sorting_3 {
- background-color: #e2e2ff;
-}
-
-tr.odd.gradeX td.sorting_1 {
- background-color: #ffc4c4;
-}
-
-tr.odd.gradeX td.sorting_2 {
- background-color: #ffd1d1;
-}
-
-tr.odd.gradeX td.sorting_3 {
- background-color: #ffd1d1;
-}
-
-tr.even.gradeX td.sorting_1 {
- background-color: #ffd5d5;
-}
-
-tr.even.gradeX td.sorting_2 {
- background-color: #ffe2e2;
-}
-
-tr.even.gradeX td.sorting_3 {
- background-color: #ffe2e2;
-}
-
-tr.odd.gradeU td.sorting_1 {
- background-color: #c4c4c4;
-}
-
-tr.odd.gradeU td.sorting_2 {
- background-color: #d1d1d1;
-}
-
-tr.odd.gradeU td.sorting_3 {
- background-color: #d1d1d1;
-}
-
-tr.even.gradeU td.sorting_1 {
- background-color: #d5d5d5;
-}
-
-tr.even.gradeU td.sorting_2 {
- background-color: #e2e2e2;
-}
-
-tr.even.gradeU td.sorting_3 {
- background-color: #e2e2e2;
-}
-
-
-/*
- * Row highlighting example
- */
-.ex_highlight #example tbody tr.even:hover, #example tbody tr.even td.highlighted {
- background-color: #ECFFB3;
-}
-
-.ex_highlight #example tbody tr.odd:hover, #example tbody tr.odd td.highlighted {
- background-color: #E6FF99;
-}
\ No newline at end of file
Deleted: trunk/mapbender/http/geoportal/gaz_geom_alt.php
===================================================================
--- trunk/mapbender/http/geoportal/gaz_geom_alt.php 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/gaz_geom_alt.php 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,651 +0,0 @@
-<?php
-# $Id$
-# http://www.mapbender.org/index.php/gaz_service.php
-# 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.
-
-(isset($_SERVER["argv"][1]))? ($user_id = $_SERVER["argv"][1]) : ($e = new mb_exception("geom: user lacks!"));
-(isset($_SERVER["argv"][2]))? ($sstr = $_SERVER["argv"][2]) : ($e = new mb_exception("geom: string lacks!"));
-(isset($_SERVER["argv"][3]))? ($epsg = $_SERVER["argv"][3]) : ($e = new mb_exception("geom: epsg lacks!"));
-
-
-require_once(dirname(__FILE__)."/../../core/globalSettings.php");
-require_once(dirname(__FILE__)."/../../conf/geoportal.conf");
-require_once(dirname(__FILE__)."/../classes/class_mb_exception.php");
-
-$con = pg_connect("host=".GEOMDB_HOST." port=".GEOMDB_PORT." dbname=".GEOMDB_NAME." user=".GEOMDB_USER." password=".GEOMDB_PASSWORD)
-or die('Verbindungsaufbau fehlgeschlagen: ' . pg_last_error());
-
-function replaceChars($text){
- $search = array( "ä", "ö", "ü", "Ä", "Ö", "Ü", "ß","tr." );
- $repwith = array("ae", "oe", "ue", "AE", "OE", "UE", "ss","tr");
-
- if(CHARSET=="UTF-8")
- $text = utf8_decode($text);
-
- $ret = str_replace($search, $repwith, $text);
-
- if(CHARSET=="UTF-8")
- $ret = utf8_encode($ret);
-
- return $ret;
-}
-/******* conf ***********************************/
-$factor = 1;
-if (intval($epsg) == 4326) $factor = 0.00001;
-/******* wohnplätze *******************/
-$bufferWP = 1000*$factor;
-$arrayWP = array();
-$arrayWPKey = array();
-
-/******* gemeinde *********************/
-$bufferG = 100*$factor;
-$arrayG = array();
-$toleranceG = 100*$factor;
-
-/******* kreis *********************/
-$bufferK = 100*$factor;
-$arrayK = array();
-$toleranceK = 1000*$factor;
-/******* verbandsgemeinde *********************/
-$bufferV = 100*$factor;
-$arrayV = array();
-$toleranceV = 1000*$factor;
-/******* strasse *********************/
-$bufferSTR = 100*$factor;
-$arraySTR = array();
-$toleranceSTR = 100*$factor;
-/******* Strasse / Hsnr ****************/
-$bufferSH = 100*$factor;
-$arraySH = array();
-$toleranceSH = 1000*$factor;
-
-/****** Workflow *********************************/
-/**/
-$astr = split(",",replaceChars($sstr));
-if(count($astr) == 1){
- $astr[0] = trim($astr[0]);
- $plz = getPlz($astr[0]);
- $hsnr = getNr($astr[0]);
- if($plz != false){
- //checkSize($astr[0]);
- checkWP($plz, strtoupper(getCity($astr[0])));
- checkGfromWP();
- }
- else if($hsnr != false){
-
- }
- else if($hsnr == false && $plz == false){
- checkWP(false,strtoupper($astr[0]));
- checkG(strtoupper($astr[0]));
- checkGfromWP();
- checkK(strtoupper($astr[0]));
- checkVg($astr[0]);
- }
-}
-else if(count($astr) == 2){
- $astr[0] = trim($astr[0]);
- $astr[1] = trim($astr[1]);
- $ckeys = array();
- $cnames = array();
- $cmissing = array();
-
- $myplz = false;
- $mycity = false;
- $mystr = false;
- $mynr = false;
- $myzs = false;
- $both = array();
-
- // 1.
- if(getPlz($astr[0])){
- $myplz = getPlz($astr[0]);
- if(getNr($astr[1])){
- $mynr = getNr($astr[1]);
- $myzs = getAppendix($astr[1]);
- $mystr = getStrn($astr[1]);
- }
- else{
- $mystr = trim($astr[1]);
- }
- }
- else if(getNr($astr[0])){
- $mynr = getNr($astr[0]);
- $myzs = getAppendix($astr[0]);
- $mystr = getStrn($astr[0]);
- if(getPlz($astr[1])){
- $myplz = getPlz($astr[1]);
- }
- else{
- $mycity = trim($astr[1]);
- }
- }
- else{
- if(getPlz($astr[1])){
- $myplz = getPlz($astr[1]);
- }
- if(getNr($astr[1])){
- $mynr = getNr($astr[1]);
- $myzs = getAppendix($astr[1]);
- $mystr = getStrn($astr[1]);
- $mycity = getCity($astr[0]);
- }
- else{
- array_push($both,$astr[0]);
- array_push($both,$astr[1]);
- }
- }
- // workflow
- if(count($both) == 2){
- $a = "%".strtoupper(trim($both[0]))."%";
- $b = "%".strtoupper(trim($both[1]))."%";
- $v = array($a, $a);
- $t = array('s', 's');
- $sql = "SELECT DISTINCT * FROM (SELECT DISTINCT gem_schl_neu, gemeinde AS gem FROM gis.verwaltungseinheit ";
- $sql .= "WHERE gemeinde_upper LIKE $1";
- $sql .= "UNION SELECT DISTINCT gem_schl_neu, gemeinde_gem_teile AS gem FROM gis.wohnplatz ";
- $sql .= "WHERE gemeinde_gem_teile_upper LIKE $2) AS str";
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($ckeys, $row['gem_schl_neu']);
- array_push($cnames, encode($row['gem']));
- array_push($cmissing, $b);
- }
- $v = array($b, $b);
- $t = array('s', 's');
- $sql = "SELECT DISTINCT * FROM (SELECT DISTINCT gem_schl_neu, gemeinde AS gem FROM gis.verwaltungseinheit ";
- $sql .= "WHERE gemeinde_upper LIKE $1";
- $sql .= "UNION SELECT DISTINCT gem_schl_neu, gemeinde_gem_teile AS gem FROM gis.wohnplatz ";
- $sql .= "WHERE gemeinde_gem_teile_upper LIKE $2) AS str";
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($ckeys, $row['gem_schl_neu']);
- array_push($cnames, encode($row['gem']));
- array_push($cmissing, $a);
- }
-
- if(count($ckeys)>0){
- for($i=0; $i<count($ckeys); $i++){
-
- $v = array($ckeys[$i], $cmissing[$i]);
- $t = array('i', 's');
- $sql = "SELECT DISTINCT str_name_ewois, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(the_geom) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferSH.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferSH.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferSH.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferSH.") as maxy ";
- $sql .= "FROM gis.strassenschluessel WHERE gem_schl = $1 ";
- $sql .= " AND (str_name_ewois_upper LIKE $2)";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- $show = encode($row["str_name_ewois"])." ".$cnames[$i];
- stack_it($arraySTR,"str",$show,"str",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
- }
-
- }
- }
- else{
-// echo $myplz ."#";
-// echo $mycity ."#";
-// echo $mystr ."#";
-// echo $mynr ."#";
-// echo $myzs ."#";
-// print_r($both);
- checkSH($mystr,$mynr,$myzs,$myplz,$mycity);
- }
-}
-
-
-
-//$fillSH = checkSH("Akazienweg",30,false,56075,"Koblenz");
-
-xml_output();
-
-function checkMinLength($str) {
- if (strlen($str) < 3) {
- //errorOutput();
- null_output();
- die();
- }
-}
-//Strasse Hausnummer
-function checkSH($s,$h,$z,$p,$o){
- global $bufferSH, $arraySH, $epsg;
-
- if ($o && $s) {
- $str_schl = array();
- $str_schl_gem = array();
- $ckeys = array();
- $cnames = array();
- $a = "%".strtoupper(trim($o))."%";
- $v = array($a, $a);
- $t = array('s', 's');
- $sql = "SELECT DISTINCT * FROM (SELECT DISTINCT gem_schl_neu, gemeinde AS gem FROM gis.verwaltungseinheit ";
- $sql .= "WHERE gemeinde_upper LIKE $1";
- $sql .= "UNION SELECT DISTINCT gem_schl_neu, gemeinde_gem_teile AS gem FROM gis.wohnplatz ";
- $sql .= "WHERE gemeinde_gem_teile_upper LIKE $2) AS str";
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($ckeys, $row['gem_schl_neu']);
- array_push($cnames, $row['gem']);
- }
-
- if(count($ckeys)>0){
- for($i=0; $i<count($ckeys); $i++){
-
- $v = array($ckeys[$i], "%". strtoupper(trim($s)). "%");
- $t = array('i', 's');
- $sql = "SELECT DISTINCT str_schl_alt ";
- $sql .= "FROM gis.strassenschluessel WHERE gem_schl = $1 ";
- $sql .= " AND str_name_ewois_upper ILIKE $2";
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($str_schl, $row['str_schl_alt']);
- array_push($str_schl_gem, $cnames[$i]);
- }
- }
- if (count($str_schl > 0)) {
- $v = array($h);
- $t = array('i');
- $sql = "SELECT DISTINCT name, hausnummer, zusatz, plz, post_ortsname, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(the_geom) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferSH.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferSH.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferSH.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferSH.") as maxy ";
- $sql .= "FROM gis.hauskoordinaten ";
- $sql .= "WHERE hausnummer = $1 AND strschl IN (";
-
- for($i=0; $i<count($str_schl); $i++){
- if($i > 0){$sql .= ",";}
- $sql .= "$".($i+2);
- array_push($v,$str_schl[$i]);
- array_push($t,'i');
- }
- $sql .= ")";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
-
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
-
-
-#$show = $row["name"]." ".$row["hausnummer"];
- if($row["zusatz"] != 'null'){
- # $show .= $row["zusatz"];
-
-$show = utf8_decode($row["name"])." ".$row["hausnummer"].$row["zusatz"];
-//$show = $row["name"]." ".$row["hausnummer"].$row["zusatz"]; TODO: exchange this, when the hauskoordinaten table is delivered in a homogenous encoding!
-}
- else
-{$show = $row["name"]." ".$row["hausnummer"];}
- $show .= ", " . $row["plz"]. " " . $row["post_ortsname"];
-
-
- stack_it($arraySH,"haus",$show,"sh",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
- }
- }
-
- }
- else {
- //is this 'else' obsolete?
- $sql = "SELECT DISTINCT name, hausnummer, zusatz, plz, post_ortsname, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(the_geom) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferSH.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferSH.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferSH.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferSH.") as maxy ";
- $sql .= "FROM gis.hauskoordinaten ";
- $sql .= "WHERE name ILIKE $1 AND hausnummer = $2 ";
- $v = array("%".$s."%",$h);
- $t = array('s','i');
- if($z){
- $sql .= "AND zusatz = $" . (count($v)+1);
- array_push($v,$z);
- array_push($t,'s');
- }
- if($p){
- $sql .= "AND plz = $" . (count($v)+1);
- array_push($v,$p);
- array_push($t,'i');
- }
- if($o){
- $sql .= "AND post_ortsname ILIKE $" . (count($v)+1);
- array_push($v,"%".$o."%");
- array_push($t,'s');
- }
- #$sql .= " GROUP BY the_geom, name, hausnummer, zusatz, plz, post_ortsname";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
-
- $show = utf8_encode($row["name"])." ".$row["hausnummer"];
- //$show = $row["name"]." ".$row["hausnummer"]; TODO: see above
- if($row["zusatz"] != null){
- $show .= $row["zusatz"];
- }
- $show .= ", " . $row["plz"]. " " . $row["post_ortsname"];
- stack_it($arraySH,"haus",$show,"sh",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
- }
- return true;
-}
-//Wohnplatz
-function checkWP($plz,$name){
- global $bufferWP, $arrayWP, $arrayWPKey, $epsg;
- $v = array();
- $t = array();
- checkMinLength($name);
- $sql = "SELECT DISTINCT gemeinde_gem_teile, gem_schl_neu, postleitzahl,";
- $sql .= "SRID(the_geom) AS srid, AsGML(the_geom) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferWP.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferWP.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferWP.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferWP.") as maxy ";
- $sql .= "FROM gis.wohnplatz WHERE ";
- if($plz == false){
- $sql .= "gemeinde_gem_teile_upper ILIKE $1 ";
- array_push($v,"%".$name."%");
- array_push($t,'s');
- }
- else if($name == false){
- $sql .= "postleitzahl = $1 ";
- array_push($v,$plz);
- array_push($t,'i');
- }
- else{
- $sql .= "postleitzahl = $1 AND gemeinde_gem_teile_upper ILIKE $2 ";
- array_push($v,$plz);
- array_push($t,'i');
- array_push($v,"%".$name."%");
- array_push($t,'s');
- }
- $sql .= "GROUP BY the_geom, gemeinde_gem_teile, gem_schl_neu, postleitzahl";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- $show = encode($row["gemeinde_gem_teile"]);
- $show.= " (Wohnplatz)";
- if(intval($row['postleitzahl'])> 1){ $show .= " (".$row['postleitzahl'].")"; }
- stack_it($arrayWP,"wohnplatz",$show,"wp",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- if(!in_array($row["gem_schl_neu"],$arrayWPKey)){
- array_push($arrayWPKey,$row["gem_schl_neu"]);
- }
- }
- return true;
-}
-function checkGfromWP(){
- global $arrayWPKey, $bufferG, $arrayG, $toleranceG, $epsg;
- if(count($arrayWPKey) == 0){
- return false;
- }
- $v = array();
- $t = array();
- $sql = "SELECT DISTINCT gemeinde, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,$toleranceG)) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferG.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferG.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferG.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferG.") as maxy ";
- $sql .= "FROM gis.verwaltungseinheit WHERE gem_schl_neu IN(";
- for($i=0; $i<count($arrayWPKey); $i++){
- if($i > 0){$sql .= ",";}
- $sql .= "$".($i+1);
- array_push($v,$arrayWPKey[$i]);
- array_push($t,'i');
- }
- $sql .= ") GROUP BY the_geom, gemeinde";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayG,"gemeinde",encode($row["gemeinde"]." (Wohnplatz)"),"g",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-function checkG($str){
- global $bufferG, $arrayG, $toleranceG, $arrayWPKey, $epsg;
- checkMinLength($str);
- $tmp = array();
- $sql = "SELECT DISTINCT gemeinde, gem_schl_neu, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,$toleranceG)) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferG.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferG.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferG.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferG.") as maxy ";
- $sql .= "FROM gis.verwaltungseinheit WHERE gemeinde_upper ILIKE $1 ";
- #$sql .= "GROUP BY the_geom, gemeinde, gem_schl_neu";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array("%".$str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayG,"gemeinde",encode($row["gemeinde"]." (Gemeinde)"),"g",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- $tmp[count($tmp)] = $row["gem_schl_neu"];
- }
- $arrayWPKey = array_diff($arrayWPKey,$tmp);
-}
-
-function checkK($str){
- global $bufferK, $arrayK, $toleranceK, $epsg;
- checkMinLength($str);
- $sql = "SELECT DISTINCT kreis, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceK.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferK.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferK.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferK.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferK.") as maxy ";
- $sql .= "FROM gis.kreis_pl WHERE kreis_upper ILIKE $1 ";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array("%".$str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayK,"kreis",encode($row["kreis"]." (Landkreis)"),"k",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-function checkVg($str){
- global $bufferV, $arrayV, $toleranceV, $epsg;
- checkMinLength($str);
- $sql = "SELECT DISTINCT vg, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceV.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferV.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferV.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferV.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferV.") as maxy ";
- $sql .= "FROM gis.vg_fl WHERE vg ILIKE $1 ";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array("%".$str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayV,"verbandsgemeinde",encode($row["vg"]." (Verbandsgemeinde)"),"vg",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-function stack_it(&$stack,$category,$showtitle,$prefix,$srid,$minx,$miny,$maxx,$maxy,$gml){
- $doc = new DOMDocument();
- $member = $doc->createElement("member");
- $doc->appendChild($member);
- $member->setAttribute('id',$prefix.count($stack));
- $fc = $doc->createElement("FeatureCollection");
- $member->appendChild($fc);
- $fc->setAttribute("xmlns:gml","http://www.opengis.net/gml");
- $bb = $doc->createElement("boundedBy");
- $fc->appendChild($bb);
- $box = $doc->createElement("Box");
- $bb->appendChild($box);
- $box->setAttribute('srsName',"EPSG:".$srid);
- $c = $doc->createElement("coordinates");
- $box->appendChild($c);
- $coords = $doc->createTextNode($minx.",".$miny." ".$maxx.",".$maxy);
- $c->appendChild($coords);
- $fm = $doc->createElement("featureMember");
- $fc->appendChild($fm);
- $wp = $doc->createElement($category);
- $fm->appendChild($wp);
- $title = $doc->createElement("title");
- $wp->appendChild($title);
- $ttitle = $doc->createTextNode($showtitle);
- $title->appendChild($ttitle);
- $geom = $doc->createElement("the_geom");
- $wp->appendChild($geom);
- $myNode = @simplexml_load_string($gml);
- $mySNode = dom_import_simplexml($myNode);
- $domNode = $doc->importNode($mySNode, true);
- $geom->appendChild($domNode);
- array_push($stack,$member);
-}
-
-function null_output(){
- global $sstr, $arrayWP, $arrayG, $arrayK, $arraySH, $arraySTR, $arrayV;
- $doc = new DOMDocument('1.0');
- $doc->encoding = CHARSET;
- $result = $doc->createElement("result");
- $doc->appendChild($result);
- $ready = $doc->createElement('ready');
- $result->appendChild($ready);
- $tready = $doc->createTextNode("true");
- $ready->appendChild($tready);
- echo $doc->saveXML();
-}
-
-
-
-
-
-
-function xml_output(){
- global $sstr, $arrayWP, $arrayG, $arrayK, $arraySH, $arraySTR, $arrayV;
- $doc = new DOMDocument('1.0');
- $doc->encoding = CHARSET;
- $result = $doc->createElement("result");
- $doc->appendChild($result);
- for($i=0; $i<count($arrayWP); $i++){
- $domNode = $doc->importNode($arrayWP[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arrayG); $i++){
- $domNode = $doc->importNode($arrayG[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arrayK); $i++){
- $domNode = $doc->importNode($arrayK[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arraySH); $i++){
- $domNode = $doc->importNode($arraySH[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arraySTR); $i++){
- $domNode = $doc->importNode($arraySTR[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arrayV); $i++){
- $domNode = $doc->importNode($arrayV[$i], true);
- $result->appendChild($domNode);
- }
- $ready = $doc->createElement('ready');
- $result->appendChild($ready);
- $tready = $doc->createTextNode("true");
- $ready->appendChild($tready);
- echo $doc->saveXML();
-}
-function encode($s){
-# if(CHARSET == 'UTF-8'){
-# $s = utf8_encode($s);
-# }
- return $s;
-}
-function getPlz($str){
- $p = "/.*(\d{5}).*/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return $am[1];
- }
- else{
- return false;
- }
-}
-function getCity($str){
- $p = "/(^\d{5}){0,1}(.*)/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return trim($am[2]);
- }
- else{
- return false;
- }
-}
-function getNr($str){
- $p = "/.*[^0-9](\d{1,4})[^0-9]*/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return $am[(count($am)-1)];
- }
- else{
- return false;
- }
-}
-function getStrn($str){
- $p = "/^(\D+)\d/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return trim($am[1]);
- }
- else{
- return false;
- }
-}
-function getAppendix($str){
- $p = "/.*\d+.*(\D{1})/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return $am[1];
- }
- else{
- return false;
- }
-}
-function getCKeysByName($city){
- global $ckeys;
- $city = "%".strtoupper(trim($city))."%";
- $sql = "SELECT gem_schl_neu FROM gis.wohnplatz ";
- $sql .= "WHERE gemeinde_gem_teile_upper ILIKE $1 ";
- $v = array($city);
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($ckeys, $row['gem_schl_neu']);
- }
-}
-?>
Deleted: trunk/mapbender/http/geoportal/gaz_geom_mobile.php.trunk
===================================================================
--- trunk/mapbender/http/geoportal/gaz_geom_mobile.php.trunk 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/gaz_geom_mobile.php.trunk 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,849 +0,0 @@
-<?php
-# $Id$
-# http://www.mapbender.org/index.php/gaz_service.php
-# 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__)."/../../conf/geoportal.conf");
-require_once(dirname(__FILE__)."/../classes/class_mb_exception.php");
-require_once(dirname(__FILE__)."/../classes/class_json.php");
-
-//Check if the result should be delivered as a webservice
-
-
-IF ($_REQUEST['resultTarget'] != 'web') {
- (isset($_SERVER["argv"][1]))? ($user_id = $_SERVER["argv"][1]) : ($e = new mb_exception("geom: user lacks!"));
- (isset($_SERVER["argv"][2]))? ($sstr = $_SERVER["argv"][2]) : ($e = new mb_exception("geom: string lacks!"));
- (isset($_SERVER["argv"][3]))? ($epsg = $_SERVER["argv"][3]) : ($e = new mb_exception("geom: epsg lacks!"));
- $searchThruWeb = false;
-} else {
- $maxResults = 15; //set default
- $outputFormat = 'json'; //set default
- $epsg = 25832;
-
- if (isset($_REQUEST["maxResults"]) & $_REQUEST["maxResults"] != "") {
- //validate integer to 100 - not more
- $testMatch = $_REQUEST["maxResults"];
- //give max 99 entries - more will be to slow
- $pattern = '/^([0-9]{0,1})([0-9]{1})$/';
- if (!preg_match($pattern,$testMatch)){
- echo '<b>maxResults</b> is not valid.<br/>';
- die();
- }
- $maxResults = $testMatch;
- $testMatch = NULL;
- }
- if (isset($_REQUEST["outputFormat"]) & $_REQUEST["outputFormat"] != "") {
- $testMatch = $_REQUEST["outputFormat"];
- if (!($testMatch == 'json')){
- echo '<b>outputFormat</b> is not valid.<br/>';
- die();
- }
- $outputFormat = $testMatch;
- $testMatch = NULL;
- }
- if (isset($_REQUEST["searchEPSG"]) & $_REQUEST["searchEPSG"] != "") {
- $testMatch = $_REQUEST["searchEPSG"];
- if (!($testMatch == '31467' or $testMatch == '31466' or $testMatch == '31468' or $testMatch == '25832' or $testMatch == '4326')){
- echo '<b>searchEPSG</b> is not valid.<br/>';
- die();
- }
- $searchEPSG = $testMatch;
- $testMatch = NULL;
- }
- /*if (isset($_REQUEST["callback"]) & $_REQUEST["callback"] != "") {
- $testMatch = $_REQUEST["callback"];
- $pattern = '/^jQuery\d+_\d+$/';
- if (!preg_match($pattern,$testMatch)){
- //if (!($testMatch == '31467' or $testMatch == '31468' or $testMatch == '25832' or $testMatch == '4326')){
- echo 'callback: <b>'.$testMatch.'</b> is not valid.<br/>';
- die();
- }
- $callback = $testMatch;
- $testMatch = NULL;
- }*/
- //for debugging
- $callback = $_REQUEST["callback"];
- //get searchText as a parameter
- $searchText = $_REQUEST['searchText']; //TODO: filter for insecure texts
- $sstr = $searchText;
- $epsg = $searchEPSG;
- $searchThruWeb = true;
-}
-
-
-$e = new mb_notice("maxResults: ".$maxResults);
-$con = pg_connect("host=".GEOMDB_HOST." port=".GEOMDB_PORT." dbname=".GEOMDB_NAME." user=".GEOMDB_USER." password=".GEOMDB_PASSWORD)
-or die('Verbindungsaufbau fehlgeschlagen: ' . pg_last_error());
-
-function replaceChars($text){
-// $search = array( "ä", "ö", "ü", "Ä", "Ö", "Ü", "tr.", "ß" );
-// $repwith = array("ae", "oe", "ue", "AE", "OE", "UE", "tr","ss");
-
- //if(CHARSET=="UTF-8")
- // $text = utf8_decode($text);
-
-// $ret = str_replace($search, $repwith, $text);
-
- //if(CHARSET=="UTF-8")
- // $ret = utf8_encode($ret);
-
-// return $ret;
-
- return $text;
-
-}
-
-
-/******* conf ***********************************/
-$factor = 1;
-if (intval($epsg) == 4326) $factor = 0.00001;
-/******* wohnplätze *******************/
-$bufferWP = 1000*$factor;
-$arrayWP = array();
-$arrayWPKey = array();
-
-/******* gemeinde *********************/
-$bufferG = 100*$factor;
-$arrayG = array();
-$toleranceG = 100*$factor;
-
-/******* kreis *********************/
-$bufferK = 100*$factor;
-$arrayK = array();
-$toleranceK = 1000*$factor;
-/******* verbandsgemeinde *********************/
-$bufferV = 100*$factor;
-$arrayV = array();
-$toleranceV = 1000*$factor;
-/******* strasse *********************/
-$bufferSTR = 175*$factor;
-$arraySTR = array();
-$toleranceSTR = 100*$factor;
-/******* Strasse / Hsnr ****************/
-$bufferSH = 75*$factor;
-$arraySH = array();
-$toleranceSH = 1000*$factor;
-
-
-$e = new mb_notice("gaz_geom_mobile was invoked with string:".$sstr);
-/****** Workflow *********************************/
-/**/
-$test = str_replace("ß", "ss", $sstr);
-$e = new mb_notice("replaced test string: ".$test);
-$astr = split(",",replaceChars($sstr));
-$e = new mb_notice("replaced string: ".$astr[0]." ".$astr[1]." ".$astr[2]);
-//if only one string without any comma is given
-if(count($astr) == 1){
-
- $astr[0] = trim($astr[0]);
- $e = new mb_notice("gaz_geom_mobile: only one string detected: ".$astr[0]);
- //check if there may be a postal code
- $plz = getPlz($astr[0]);
- //check if there is a housenumber
- $hsnr = getNr($astr[0]);
- if($plz != false){
-
- //checkSize($astr[0]);
- checkWP($plz, strtoupper(getCity($astr[0])));
- checkGfromWP();
- }
- else if($hsnr != false){
-
- }
- else if($hsnr == false && $plz == false){
- checkWP(false,strtoupper($astr[0]));
- checkG(strtoupper($astr[0]));
- checkGfromWP();
- checkK(strtoupper($astr[0]));
- checkVg($astr[0]);
- }
-}
-//if 2 parts are given - the first one may be a combined or a single value
-// '56743 mendig' or 'ferdinand-sauerbruch-strasse 15' or 'koblenz' or 'mendig' or, or, or ...
-else if(count($astr) == 2){
- $e = new mb_notice("gaz_geom_mobile: two strings detected: ".$astr[0]." and ".$astr[1]);
- $astr[0] = trim($astr[0]);
- $astr[1] = trim($astr[1]);
- $ckeys = array();
- $cnames = array();
- $cmissing = array();
-
- $myplz = false;
- $mycity = false;
- $mystr = false;
- $mynr = false;
- $myzs = false;
- $both = array();
-
- // check first entry for postal code
- if(getPlz($astr[0])){
- $myplz = getPlz($astr[0]);
- $e = new mb_notice("gaz_geom_mobile: postalcode detected: ".$myplz);
- if(getNr($astr[1])){
- $mynr = getNr($astr[1]);
- $myzs = getAppendix($astr[1]);
- $mystr = getStrn($astr[1]);
- }
- else{
- $mystr = trim($astr[1]);
- }
- }
- //check first entry for number
- else if(getNr($astr[0])){
- $mynr = getNr($astr[0]);
- $myzs = getAppendix($astr[0]);
- $mystr = getStrn($astr[0]);
- $e = new mb_notice('gaz_geom_mobile: search for streetname: '.$mystr);
- //check if in second value there is a postalcode
- if(getPlz($astr[1])){
- $myplz = getPlz($astr[1]);
- }
- //maybe it will be a city name
- else{
- $mycity = trim($astr[1]);
- $e = new mb_notice('gaz_geom_mobile: search for city: '.$mycity);
- }
- }
- //check second for postal code
- else{
- if(getPlz($astr[1])){
- $myplz = getPlz($astr[1]);
- }
- if(getNr($astr[1])){
- $mynr = getNr($astr[1]);
- $myzs = getAppendix($astr[1]);
- $mystr = getStrn($astr[1]);
- $mycity = getCity($astr[0]);
- }
- else{
- array_push($both,$astr[0]);
- array_push($both,$astr[1]);
- }
- }
- // workflow
- if(count($both) == 2){
- $a = "%".strtoupper(trim($both[0]))."%";
- $b = "%".strtoupper(trim($both[1]))."%";
- //$a = strtoupper(trim($both[0]))."%";
- //$b = strtoupper(trim($both[1]))."%";
-
-
- $v = array($a, $a);
- $t = array('s', 's');
- $sql = "SELECT DISTINCT * FROM (SELECT DISTINCT gem_schl_neu, gemeinde_neu AS gem FROM gemeinden ";
- $sql .= "WHERE gemeinde_upper LIKE $1";
- $sql .= "UNION SELECT DISTINCT gem_schl_neu, gemeinde_gem_teile AS gem FROM wohnplatz ";
- $sql .= "WHERE ewz_int IS NOT NULL AND gemeinde_gem_teile_upper LIKE $2";
- $sql .= ") AS str";
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($ckeys, $row['gem_schl_neu']);
- array_push($cnames, encode($row['gem']));
- array_push($cmissing, $b);
- }
- $v = array($b, $b);
- $t = array('s', 's');
- $sql = "SELECT DISTINCT * FROM (SELECT DISTINCT gem_schl_neu, gemeinde_neu AS gem FROM gemeinden ";
- $sql .= "WHERE gemeinde_upper LIKE $1 ";
- $sql .= "UNION SELECT DISTINCT gem_schl_neu, gemeinde_gem_teile AS gem FROM wohnplatz ";
- $sql .= "WHERE ewz_int IS NOT NULL AND gemeinde_gem_teile_upper LIKE $2";
- $sql .= ") AS str";
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($ckeys, $row['gem_schl_neu']);
- array_push($cnames, encode($row['gem']));
- array_push($cmissing, $a);
- }
-
- if(count($ckeys)>0){
- for($i=0; $i<count($ckeys); $i++){
-
- $v = array($ckeys[$i], $cmissing[$i]);
- $t = array('i', 's');
- $sql = "SELECT DISTINCT strassenname, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(the_geom) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferSTR.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferSTR.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferSTR.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferSTR.") as maxy ";
- $sql .= "FROM strassenschluessel WHERE gem_schl = $1 ";
- $sql .= " AND (strassenname_upper LIKE $2)";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 25832) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- $show = encode($row["strassenname"])." ".$cnames[$i];
- $e = new mb_notice('gaz_geom_mobile: street found: '.$row["strassenname"]);
- stack_it($arraySTR,"str",$show,"str",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
- }
-
- }
- }
- else{
-// echo $myplz ."#";
-// echo $mycity ."#";
-// echo $mystr ."#";
-// echo $mynr ."#";
-// echo $myzs ."#";
-// print_r($both);
- checkSH($mystr,$mynr,$myzs,$myplz,$mycity);
- }
-}
-
-
-
-//$fillSH = checkSH("Akazienweg",30,false,56075,"Koblenz");
-
-xml_output();
-
-function checkMinLength($str) {
- global $searchThruWeb;
- if (strlen($str) < 3) {
- if ($searchThruWeb) {
- //errorOutput();
- null_json_output();
- } else {
- null_output();
- }
- die();
- }
-}
-//Strasse Hausnummer
-function checkSH($s,$h,$z,$p,$o){
- global $bufferSH, $arraySH, $epsg;
-
- if ($o && $s) {
- $str_schl = array();
- $str_schl_gem = array();
- $ckeys = array();
- $cnames = array();
- $a = "%".strtoupper(trim($o))."%";
- $v = array($a, $a);
- $t = array('s', 's');
- $sql = "SELECT DISTINCT * FROM (SELECT DISTINCT gem_schl_neu, gemeinde_neu AS gem FROM gemeinden ";
- $sql .= "WHERE gemeinde_upper LIKE $1 ";
- $sql .= "UNION SELECT DISTINCT gem_schl_neu, gemeinde_gem_teile AS gem FROM wohnplatz ";
- $sql .= "WHERE ewz_int IS NOT NULL AND gemeinde_gem_teile_upper LIKE $2";
- $sql .=") AS str";
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($ckeys, $row['gem_schl_neu']);
- array_push($cnames, $row['gem']);
- }
-
- if(count($ckeys)>0){
- for($i=0; $i<count($ckeys); $i++){
-
- $v = array($ckeys[$i], "%". strtoupper(trim($s)). "%");
- //$v = array($ckeys[$i], strtoupper(trim($s)). "%");
- $t = array('i', 's');
- $sql = "SELECT DISTINCT strassenschluessel ";
- $sql .= "FROM strassenschluessel WHERE gem_schl = $1 ";
- $sql .= " AND strassenname_upper ILIKE $2";
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($str_schl, $row['strassenschluessel']);
- $e = new mb_notice('gaz_geom_mobile: strassenschluessel: '.$row["strassenname"].' for '.$s.' found' );
- array_push($str_schl_gem, $cnames[$i]);
- }
- }
- //select all streetkeys
- if (count($str_schl > 0)) {
- $v = array($h);
- $t = array('i');
- $sql = "SELECT DISTINCT name, hausnummer, zusatz, plz, post_ortsname, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(the_geom) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferSH.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferSH.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferSH.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferSH.") as maxy ";
- $sql .= "FROM hauskoordinaten ";
- $sql .= "WHERE hausnummer = $1 AND strschl_gesamt IN (";
-
- for($i=0; $i<count($str_schl); $i++){
- if($i > 0){$sql .= ",";}
- $sql .= "$".($i+2);
- array_push($v,$str_schl[$i]);
- array_push($t,'i');
- }
- $sql .= ")";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 25832) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
-
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
-
-
-#$show = $row["name"]." ".$row["hausnummer"];
- if($row["zusatz"] != 'null'){
- # $show .= $row["zusatz"];
-
-$show = $row["name"]." ".$row["hausnummer"].$row["zusatz"];
-//$show = $row["name"]." ".$row["hausnummer"].$row["zusatz"]; TODO: exchange this, when the hauskoordinaten table is delivered in a homogenous encoding!
-}
- else
-{$show = $row["name"]." ".$row["hausnummer"];}
- $show .= ", " . $row["plz"]. " " . $row["post_ortsname"];
-
-
- stack_it($arraySH,"haus",$show,"sh",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
- }
- }
-
- }
- else {
- //is this 'else' obsolete?
- $sql = "SELECT DISTINCT name, hausnummer, zusatz, plz, post_ortsname, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(the_geom) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferSH.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferSH.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferSH.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferSH.") as maxy ";
- $sql .= "FROM hauskoordinaten ";
- $sql .= "WHERE name ILIKE $1 AND hausnummer = $2 ";
- $v = array("%".$s."%",$h);
- //$v = array($s."%",$h);
- $t = array('s','i');
- if($z){
- $sql .= "AND zusatz = $" . (count($v)+1);
- array_push($v,$z);
- array_push($t,'s');
- }
- if($p){
- $sql .= "AND plz = $" . (count($v)+1);
- array_push($v,$p);
- array_push($t,'i');
- }
- if($o){
- $sql .= "AND post_ortsname ILIKE $" . (count($v)+1);
- array_push($v,"%".$o."%");
- array_push($t,'s');
- }
- #$sql .= " GROUP BY the_geom, name, hausnummer, zusatz, plz, post_ortsname";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 25832) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
-
- $show = $row["name"]." ".$row["hausnummer"];
- $e = new mb_notice('gaz_geom_mobile.php: streetname2: '.$row["name"]);
- //$show = $row["name"]." ".$row["hausnummer"]; TODO: see above
- if($row["zusatz"] != null){
- $show .= $row["zusatz"];
- }
- $show .= ", " . $row["plz"]. " " . $row["post_ortsname"];
- stack_it($arraySH,"haus",$show,"sh",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
- }
- return true;
-}
-//Wohnplatz
-function checkWP($plz,$name){
- global $bufferWP, $arrayWP, $arrayWPKey, $epsg;
- $v = array();
- $t = array();
- checkMinLength($name);
- $sql = "SELECT DISTINCT gemeinde_gem_teile, gem_schl_neu, postleitzahl,";
- $sql .= "SRID(the_geom) AS srid, AsGML(the_geom) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferWP.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferWP.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferWP.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferWP.") as maxy ";
- $sql .= "FROM wohnplatz WHERE ";
- if($plz == false){
- $sql .= "gemeinde_gem_teile_upper ILIKE $1 ";
- array_push($v,"%".$name."%");
- array_push($t,'s');
- }
- else if($name == false){
- $sql .= "postleitzahl = $1 ";
- array_push($v,$plz);
- array_push($t,'i');
- }
- else{
- $sql .= "postleitzahl = $1 AND gemeinde_gem_teile_upper ILIKE $2 ";
- array_push($v,$plz);
- array_push($t,'i');
- array_push($v,"%".$name."%");
- array_push($t,'s');
- }
- $sql .= "GROUP BY the_geom, gemeinde_gem_teile, gem_schl_neu, postleitzahl";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 25832) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- $show = encode($row["gemeinde_gem_teile"]);
- $show.= " (Wohnplatz)";
- if(intval($row['postleitzahl'])> 1){ $show .= " (".$row['postleitzahl'].")"; }
- stack_it($arrayWP,"wohnplatz",$show,"wp",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- if(!in_array($row["gem_schl_neu"],$arrayWPKey)){
- array_push($arrayWPKey,$row["gem_schl_neu"]);
- }
- }
- return true;
-}
-function checkGfromWP(){
- global $arrayWPKey, $bufferG, $arrayG, $toleranceG, $epsg;
- if(count($arrayWPKey) == 0){
- return false;
- }
- $v = array();
- $t = array();
- $sql = "SELECT DISTINCT gemeinde_neu, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,$toleranceG)) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferG.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferG.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferG.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferG.") as maxy ";
- $sql .= "FROM gemeinden WHERE gem_schl_neu IN(";
- for($i=0; $i<count($arrayWPKey); $i++){
- if($i > 0){$sql .= ",";}
- $sql .= "$".($i+1);
- array_push($v,$arrayWPKey[$i]);
- array_push($t,'i');
- }
- $sql .= ") GROUP BY the_geom, gemeinde_neu";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 25832) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayG,"gemeinde_neu",encode($row["gemeinde_neu"]." (Wohnplatz)"),"g",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-function checkG($str){
- global $bufferG, $arrayG, $toleranceG, $arrayWPKey, $epsg;
- checkMinLength($str);
- $tmp = array();
- $sql = "SELECT DISTINCT gemeinde_neu, gem_schl_neu, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,$toleranceG)) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferG.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferG.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferG.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferG.") as maxy ";
- $sql .= "FROM gemeinden WHERE gemeinde_upper ILIKE $1 ";
- #$sql .= "GROUP BY the_geom, gemeinde, gem_schl_neu";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 25832) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array("%".$str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayG,"gemeinde_neu",encode($row["gemeinde_neu"]." (Gemeinde)"),"g",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- $tmp[count($tmp)] = $row["gem_schl_neu"];
- }
- $arrayWPKey = array_diff($arrayWPKey,$tmp);
-}
-
-function checkK($str){
- global $bufferK, $arrayK, $toleranceK, $epsg;
- checkMinLength($str);
- $sql = "SELECT DISTINCT kreis, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceK.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferK.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferK.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferK.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferK.") as maxy ";
- $sql .= "FROM kreis_fl WHERE kreis_upper ILIKE $1 ";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 25832) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array("%".$str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayK,"kreis",encode($row["kreis"]." (Landkreis)"),"k",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-function checkVg($str){
- global $bufferV, $arrayV, $toleranceV, $epsg;
- checkMinLength($str);
- $sql = "SELECT DISTINCT vg, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceV.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferV.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferV.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferV.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferV.") as maxy ";
- $sql .= "FROM vg_fl WHERE vg ILIKE $1 ";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 25832) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array("%".$str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayV,"verbandsgemeinde",encode($row["vg"]." (Verbandsgemeinde)"),"vg",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-function stack_it(&$stack,$category,$showtitle,$prefix,$srid,$minx,$miny,$maxx,$maxy,$gml){
- global $searchThruWeb;
- if (!$searchThruWeb) {
- $doc = new DOMDocument();
- $member = $doc->createElement("member");
- $doc->appendChild($member);
- $member->setAttribute('id',$prefix.count($stack));
- $fc = $doc->createElement("FeatureCollection");
- $member->appendChild($fc);
- $fc->setAttribute("xmlns:gml","http://www.opengis.net/gml");
- $bb = $doc->createElement("boundedBy");
- $fc->appendChild($bb);
- $box = $doc->createElement("Box");
- $bb->appendChild($box);
- $box->setAttribute('srsName',"EPSG:".$srid);
- $c = $doc->createElement("coordinates");
- $box->appendChild($c);
- $coords = $doc->createTextNode($minx.",".$miny." ".$maxx.",".$maxy);
- $c->appendChild($coords);
- $fm = $doc->createElement("featureMember");
- $fc->appendChild($fm);
- $wp = $doc->createElement($category);
- $fm->appendChild($wp);
- $title = $doc->createElement("title");
- $wp->appendChild($title);
- $ttitle = $doc->createTextNode($showtitle);
- $title->appendChild($ttitle);
- $geom = $doc->createElement("the_geom");
- $wp->appendChild($geom);
- $myNode = @simplexml_load_string($gml);
- $mySNode = dom_import_simplexml($myNode);
- $domNode = $doc->importNode($mySNode, true);
- $geom->appendChild($domNode);
- array_push($stack,$member);
- } else {
- //generate simple json objects as array elements
- $classJSON = new Mapbender_JSON;
- $returnJSON = new stdClass;
- $returnJSON->title = $showtitle;
- $returnJSON->category = $category;
- $returnJSON->minx = $minx;
- $returnJSON->miny = $miny;
- $returnJSON->maxx = $maxx;
- $returnJSON->maxy = $maxy;
- $returnJSON = $classJSON->encode($returnJSON);
- array_push($stack,$returnJSON);
- }
-}
-
-function null_output(){
- global $sstr, $arrayWP, $arrayG, $arrayK, $arraySH, $arraySTR, $arrayV;
- $doc = new DOMDocument('1.0');
- $doc->encoding = CHARSET;
- $result = $doc->createElement("result");
- $doc->appendChild($result);
- $ready = $doc->createElement('ready');
- $result->appendChild($ready);
- $tready = $doc->createTextNode("true");
- $ready->appendChild($tready);
- echo $doc->saveXML();
-}
-
-function null_json_output(){
- global $sstr, $arrayWP, $arrayG, $arrayK, $arraySH, $arraySTR, $arrayV;
- echo "{\"totalResultsCount\":0,\"geonames\":[]}";
-}
-
-
-
-
-
-function xml_output(){
- global $sstr, $arrayWP, $arrayG, $arrayK, $arraySH, $arraySTR, $arrayV, $searchThruWeb, $callback, $maxResults;
- if (!$searchThruWeb) {
- $doc = new DOMDocument('1.0');
- $doc->encoding = CHARSET;
- $result = $doc->createElement("result");
- $doc->appendChild($result);
-
- for($i=0; $i<count($arrayWP); $i++){
- $domNode = $doc->importNode($arrayWP[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arrayG); $i++){
- $domNode = $doc->importNode($arrayG[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arrayK); $i++){
- $domNode = $doc->importNode($arrayK[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arraySH); $i++){
- $domNode = $doc->importNode($arraySH[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arraySTR); $i++){
- $domNode = $doc->importNode($arraySTR[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arrayV); $i++){
- $domNode = $doc->importNode($arrayV[$i], true);
- $result->appendChild($domNode);
- }
- $ready = $doc->createElement('ready');
- $result->appendChild($ready);
- $tready = $doc->createTextNode("true");
- $ready->appendChild($tready);
- //if ($searchThruWeb) {
- // header("Content-type: application/xhtml+xml; charset=UTF-8");
- //}
- echo $doc->saveXML();
- } else {
- //generate json object with gml content
- $classJSON = new Mapbender_JSON;
- $returnJSON = new stdClass;
-
- $countGeonames = 0;
- $returnJSON->totalResultsCount = 0;
-
- for($i=0; $i<count($arrayK); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayK[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arrayV); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayV[$i]);
- $countGeonames++;
- }
-
- for($i=0; $i<count($arrayG); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayG[$i]);
- $countGeonames++;
- }
-
- for($i=0; $i<count($arraySTR); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arraySTR[$i]);
- $countGeonames++;
- }
-
- for($i=0; $i<count($arrayWP); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayWP[$i]);
- $countGeonames++;
- }
-
- for($i=0; $i<count($arraySH); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arraySH[$i]);
- $countGeonames++;
- }
- $returnJSON->totalResultsCount = $countGeonames;
- if ($returnJSON->totalResultsCount == 0) {
- $returnJSON->geonames = array();
- }
- if (isset($callback) && $callback != '') {
- $returnJSON = $callback."(".$classJSON->encode($returnJSON).")";
- } else {
- $returnJSON = $classJSON->encode($returnJSON);
- }
-
- echo $returnJSON;
- }
-
-}
-function encode($s){
-# if(CHARSET == 'UTF-8'){
-# $s = utf8_encode($s);
-# }
- return $s;
-}
-function getPlz($str){
- $p = "/.*(\d{5}).*/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return $am[1];
- }
- else{
- return false;
- }
-}
-function getCity($str){
- $p = "/(^\d{5}){0,1}(.*)/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return trim($am[2]);
- }
- else{
- return false;
- }
-}
-function getNr($str){
- $p = "/.*[^0-9](\d{1,4})[^0-9]*/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return $am[(count($am)-1)];
- }
- else{
- return false;
- }
-}
-function getStrn($str){
- $p = "/^(\D+)\d/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return trim($am[1]);
- }
- else{
- return false;
- }
-}
-function getAppendix($str){
- $p = "/.*\d+.*(\D{1})/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return $am[1];
- }
- else{
- return false;
- }
-}
-function getCKeysByName($city){
- global $ckeys;
- $city = "%".strtoupper(trim($city))."%";
- $sql = "SELECT gem_schl_neu FROM gis.wohnplatz ";
- $sql .= "WHERE gemeinde_gem_teile_upper ILIKE $1 ";
- $v = array($city);
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($ckeys, $row['gem_schl_neu']);
- }
-}
-?>
Deleted: trunk/mapbender/http/geoportal/gaz_geom_mobile2.php
===================================================================
--- trunk/mapbender/http/geoportal/gaz_geom_mobile2.php 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/gaz_geom_mobile2.php 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,848 +0,0 @@
-<?php
-
-require_once(dirname(__FILE__)."/../../core/globalSettings.php");
-require_once(dirname(__FILE__)."/../../conf/geoportal.conf");
-require_once(dirname(__FILE__)."/../classes/class_mb_exception.php");
-require_once(dirname(__FILE__)."/../classes/class_json.php");
-
-IF ($_REQUEST['resultTarget'] != 'web') {
- (isset($_SERVER["argv"][1]))? ($user_id = $_SERVER["argv"][1]) : ($e = new mb_exception("geom: user lacks!"));
- (isset($_SERVER["argv"][2]))? ($sstr = $_SERVER["argv"][2]) : ($e = new mb_exception("geom: string lacks!"));
- (isset($_SERVER["argv"][3]))? ($epsg = $_SERVER["argv"][3]) : ($e = new mb_exception("geom: epsg lacks!"));
- $searchThruWeb = false;
-} else {
- $maxResults = 15;
- $outputFormat = 'json';
- $epsg = 25832;
-
- if (isset($_REQUEST["maxResults"]) & $_REQUEST["maxResults"] != "") {
- $testMatch = $_REQUEST["maxResults"];
- $pattern = '/^([0-9]{0,1})([0-9]{1})$/';
- if (!preg_match($pattern,$testMatch)){
- echo 'maxResults: <b>'.$testMatch.'</b> is not valid.<br/>';
- die();
- }
- $maxResults = $testMatch;
- $testMatch = NULL;
- }
- if (isset($_REQUEST["outputFormat"]) & $_REQUEST["outputFormat"] != "") {
- $testMatch = $_REQUEST["outputFormat"];
- if (!($testMatch == 'json')){
- echo 'outputFormat: <b>'.$testMatch.'</b> is not valid.<br/>';
- die();
- }
- $outputFormat = $testMatch;
- $testMatch = NULL;
- }
- if (isset($_REQUEST["searchEPSG"]) & $_REQUEST["searchEPSG"] != "") {
- $testMatch = $_REQUEST["searchEPSG"];
- if (!($testMatch == '31467' or $testMatch == '31468' or $testMatch == '25832' or $testMatch == '4326')){
- echo 'searchEPSG: <b>'.$testMatch.'</b> is not valid.<br/>';
- die();
- }
- $searchEPSG = $testMatch;
- $testMatch = NULL;
- }
-
- $callback = $_REQUEST["callback"];
- $searchText = $_REQUEST['searchText'];
- $sstr = $searchText;
- $epsg = $searchEPSG;
- $searchThruWeb = true;
-}
-
-$e = new mb_notice("maxResults: ".$maxResults);
-$con = pg_connect("host=".GEOMDB_HOST." port=".GEOMDB_PORT." dbname=".GEOMDB_NAME." user=".GEOMDB_USER." password=".GEOMDB_PASSWORD)
-or die('Verbindungsaufbau fehlgeschlagen: ' . pg_last_error());
-
-function replaceChars($text){
- return $text;
-}
-
-$factor = 1;
-if (intval($epsg) == 25832) $factor = 1.0;
-
-//StreetOnly
-$bufferAB = 300*$factor;
-$arrayAB = array();
-$toleranceAB = 100*$factor;
-
-$bufferCD = 300*$factor;
-$arrayCD = array();
-$toleranceCD = 100*$factor;
-
-$bufferEF = 300*$factor;
-$arrayEF = array();
-$toleranceEF = 100*$factor;
-
-$bufferGH = 300*$factor;
-$arrayGH = array();
-$toleranceGH = 100*$factor;
-
-$bufferIJK = 300*$factor;
-$arrayIJK = array();
-$toleranceIJK = 100*$factor;
-
-$bufferLM = 300*$factor;
-$arrayLM = array();
-$toleranceLM = 100*$factor;
-
-$bufferNOP = 300*$factor;
-$arrayNOP = array();
-$toleranceNOP = 100*$factor;
-
-$bufferQRT = 300*$factor;
-$arrayQRT = array();
-$toleranceQRT = 100*$factor;
-
-$bufferS = 300*$factor;
-$arrayS = array();
-$toleranceS = 100*$factor;
-
-$bufferRes = 300*$factor; // = U,V,X,Y,Z,Ü,Ö,Ä
-$arrayRes = array();
-$toleranceRes = 100*$factor;
-
-$bufferW = 300*$factor;
-$arrayW = array();
-$toleranceW = 100*$factor;
-
-//Streets
-$bufferOnly = 800*$factor;
-$arrayOnly = array();
-$toleranceOnly = 100*$factor;
-
-//GemeindeSuche
-$bufferG = 15000*$factor;
-$arrayG = array();
-$toleranceG = 100*$factor;
-
-//KreisSuche
-$bufferK = 33000*$factor;
-$arrayK = array();
-$toleranceK = 1000*$factor;
-
-//PLZSuche
-$bufferPLZ = 6000*$factor;
-$arrayPLZ = array();
-$tolerancePLZ = 100*$factor;
-
-//Sights
-$bufferSights = 600*$factor;
-$arraySights = array();
-$toleranceSights = 1000*$factor;
-
-
-$e = new mb_notice("gaz_geom_mobile was invoked with string:".$sstr);
-
-$test = str_replace("ß", "ss", $sstr);
-$e = new mb_notice("replaced test string: ".$test);
-
-$astr = split(",",replaceChars($sstr));
-$e = new mb_notice("replaced string: ".$astr[0]." ".$astr[1]." ".$astr[2]." ".$astr[3]." ".$astr[4]);
-
-$astr[0] = trim($astr[0]);
-$astr[1] = trim($astr[1]);
-
-$e = new mb_notice("gaz_geom_mobile: only one string detected: ".$astr[0]);
-
- //Funktionen
-
- GemeindeSuche($astr[0]);
- KreisSuche($astr[0]);
- PLZSuche($astr[0]);
- StreetOnly($astr[0]);
- SightsSearch($astr[0]);
-
- StreetAB($astr[0]);
- StreetCD($astr[0]);
- StreetEF($astr[0]);
- StreetGH($astr[0]);
- StreetIJK($astr[0]);
- StreetLM($astr[0]);
- StreetNOP($astr[0]);
- StreetQRT($astr[0]);
- StreetS($astr[0]);
- StreetRest($astr[0]);
- StreetW($astr[0]);
-
-xml_output();
-
-function checkMinLength($str) {
- global $searchThruWeb;
- if (strlen($str) < 3) {
- if ($searchThruWeb) {
- null_json_output();
- } else {
- null_output();
- }
- die();
- }
-}
-
-function GemeindeSuche($str){
- global $bufferG, $arrayG, $toleranceG, $epsg;
- checkMinLength($str);
-
- $sql = "SELECT DISTINCT gemeinde, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceG.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferG.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferG.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferG.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferG.") as maxy ";
- $sql .= "FROM gemeinden WHERE gemeinde_upper ILIKE $1 ";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array($str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayG,"gemeinde",encode($row["gemeinde"]." (Gemeinde)"),"k",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-
-function KreisSuche($str){
- global $bufferK, $arrayK, $toleranceK, $epsg;
- checkMinLength($str);
-
- $sql = "SELECT DISTINCT kreis, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceK.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferK.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferK.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferK.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferK.") as maxy ";
- $sql .= "FROM kreis_fl WHERE kreis_upper ILIKE $1 ";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array($str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayK,"kreis",encode($row["kreis"]." (Landkreis)"),"k",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-
-function PLZSuche($str){
- global $bufferPLZ, $arrayPLZ, $tolerancePLZ, $epsg;
- checkMinLength($str);
-
- $sql .= "SELECT DISTINCT plz, gemeinde, ortsteil,";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$tolerancePLZ.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferPLZ.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferPLZ.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferPLZ.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferPLZ.") as maxy ";
- $sql .= "FROM plz ";
- $sql .= "WHERE plz ILIKE $1 OR ortsteil ILIKE $1 OR gemeinde ILIKE $1 ";
-
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array($str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayPLZ,"plz",encode($row["plz"].', '.$row["gemeinde"].', '.$row["ortsteil"]." (PLZ, Gemeinde, Ortsteil)"),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-
-function StreetOnly($str){
- global $bufferOnly, $arrayOnly, $toleranceOnly, $epsg;
- checkMinLength($str);
-
- $sql .= "SELECT DISTINCT name, gemeinde, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceOnly.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferOnly.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferOnly.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferOnly.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferOnly.") as maxy ";
- $sql .= "FROM strassen ";
- $sql .= "WHERE strgem ILIKE $1 OR name_ext ILIKE $1 OR name_str ILIKE $1 OR name_ss ILIKE $1 ";
- //$sql .= "WHERE (name || ' ' || gemeinde) ILIKE $1 ";
- //$sql .= "OR (name || ' ' || gemeinde) ILIKE $1 ";
-
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array($str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayOnly,"name",encode($row["name"].', '.$row["gemeinde"]." (Strasse, Gemeinde)"),
- "s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-
-function SightsSearch($str){
- global $bufferSights, $arraySights, $toleranceSights, $epsg;
- checkMinLength($str);
-
- $sql .= "SELECT DISTINCT name, type, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceSights.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferSights.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferSights.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferSights.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferSights.") as maxy ";
- $sql .= "FROM sights ";
- $sql .= "WHERE name ILIKE $1 ";
-
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array($str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arraySights,"name",encode($row["name"].', '.$row["type"]),"k",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-
-function StreetAB($str){
- global $bufferAB, $arrayAB, $toleranceAB, $epsg;
- checkMinLength($str);
-
- $sql .= "SELECT DISTINCT strnumzusgem, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceAB.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferAB.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferAB.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferAB.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferAB.") as maxy ";
- $sql .= "FROM strassenab ";
- $sql .= "WHERE strnumzusgem ILIKE $1 ";
- //$sql .= "WHERE (name || ' ' || hausnummer) ILIKE $1 ";
- //$sql .= "OR (name || ' ' || hausnummer || '' || zusatz) ILIKE $1 ";
- //$sql .= "OR (name || ' ' || hausnummer || ' ' || gemeinde) ILIKE $1 ";
- //$sql .= "OR (name || ' ' || hausnummer || '' || zusatz || ' ' || gemeinde) ILIKE $1 ";
-
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
-
- $v = array("%".$str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayAB,"strnumzusgem",encode($row["strnumzusgem"]),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-
-
-function StreetCD($str){
- global $bufferCD, $arrayCD, $toleranceCD, $epsg;
- checkMinLength($str);
-
- $sql .= "SELECT DISTINCT strnumzusgem, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceCD.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferCD.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferCD.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferCD.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferCD.") as maxy ";
- $sql .= "FROM strassencd ";
- $sql .= "WHERE strnumzusgem ILIKE $1 ";
-
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
-
- $v = array($str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- //stack_it($arrayCD,"name",encode($row["name"].' '.$row["hausnummer"].''.$row["zusatz"].', '.$row["gemeinde"]." (Strasse, Hausnummer, Gemeinde)"),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- stack_it($arrayCD,"strnumzusgem",encode($row["strnumzusgem"]),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-
-function StreetEF($str){
- global $bufferEF, $arrayEF, $toleranceEF, $epsg;
- checkMinLength($str);
-
- $sql .= "SELECT DISTINCT strnumzusgem, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceEF.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferEF.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferEF.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferEF.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferEF.") as maxy ";
- $sql .= "FROM strassenef ";
- $sql .= "WHERE strnumzusgem ILIKE $1 ";
-
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
-
- $v = array($str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- //stack_it($arrayEF,"name",encode($row["name"].' '.$row["hausnummer"].''.$row["zusatz"].', '.$row["gemeinde"]." (Strasse, Hausnummer, Gemeinde)"),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- stack_it($arrayEF,"strnumzusgem",encode($row["strnumzusgem"]),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-
-function StreetGH($str){
- global $bufferGH, $arrayGH, $toleranceGH, $epsg;
- checkMinLength($str);
-
- $sql .= "SELECT DISTINCT strnumzusgem, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceGH.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferGH.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferGH.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferGH.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferGH.") as maxy ";
- $sql .= "FROM strassengh ";
- $sql .= "WHERE strnumzusgem ILIKE $1 ";
-
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
-
- $v = array($str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- //stack_it($arrayGH,"name",encode($row["name"].' '.$row["hausnummer"].''.$row["zusatz"].', '.$row["gemeinde"]." (Strasse, Hausnummer, Gemeinde)"),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- stack_it($arrayGH,"strnumzusgem",encode($row["strnumzusgem"]),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-
-function StreetIJK($str){
- global $bufferIJK, $arrayIJK, $toleranceIJK, $epsg;
- checkMinLength($str);
-
- $sql .= "SELECT DISTINCT strnumzusgem, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceIJK.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferIJK.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferIJK.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferIJK.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferIJK.") as maxy ";
- $sql .= "FROM strassenijk ";
- $sql .= "WHERE strnumzusgem ILIKE $1 ";
-
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
-
- $v = array($str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- //stack_it($arrayIJK,"name",encode($row["name"].' '.$row["hausnummer"].''.$row["zusatz"].', '.$row["gemeinde"]." (Strasse, Hausnummer, Gemeinde)"),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- stack_it($arrayIJK,"strnumzusgem",encode($row["strnumzusgem"]),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-
-function StreetLM($str){
- global $bufferLM, $arrayLM, $toleranceLM, $epsg;
- checkMinLength($str);
-
- $sql .= "SELECT DISTINCT strnumzusgem, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceLM.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferLM.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferLM.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferLM.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferLM.") as maxy ";
- $sql .= "FROM strassenlm ";
- $sql .= "WHERE strnumzusgem ILIKE $1 ";
-
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
-
- $v = array($str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- //stack_it($arrayLM,"name",encode($row["name"].' '.$row["hausnummer"].''.$row["zusatz"].', '.$row["gemeinde"]." (Strasse, Hausnummer, Gemeinde)"),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- stack_it($arrayLM,"strnumzusgem",encode($row["strnumzusgem"]),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-
-function StreetNOP($str){
- global $bufferNOP, $arrayNOP, $toleranceNOP, $epsg;
- checkMinLength($str);
-
- $sql .= "SELECT DISTINCT strnumzusgem, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceNOP.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferNOP.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferNOP.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferNOP.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferNOP.") as maxy ";
- $sql .= "FROM strassennop ";
- $sql .= "WHERE strnumzusgem ILIKE $1 ";
-
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
-
- $v = array($str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- //stack_it($arrayNOP,"name",encode($row["name"].' '.$row["hausnummer"].''.$row["zusatz"].', '.$row["gemeinde"]." (Strasse, Hausnummer, Gemeinde)"),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- stack_it($arrayNOP,"strnumzusgem",encode($row["strnumzusgem"]),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-
-function StreetQRT($str){
- global $bufferQRT, $arrayQRT, $toleranceQRT, $epsg;
- checkMinLength($str);
-
- $sql .= "SELECT DISTINCT strnumzusgem, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceQRT.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferQRT.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferQRT.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferQRT.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferQRT.") as maxy ";
- $sql .= "FROM strassenqrt ";
- $sql .= "WHERE strnumzusgem ILIKE $1 ";
-
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
-
- $v = array($str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- //stack_it($arrayQRT,"name",encode($row["name"].' '.$row["hausnummer"].''.$row["zusatz"].', '.$row["gemeinde"]." (Strasse, Hausnummer, Gemeinde)"),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- stack_it($arrayQRT,"strnumzusgem",encode($row["strnumzusgem"]),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-
-function StreetS($str){
- global $bufferS, $arrayS, $toleranceS, $epsg;
- checkMinLength($str);
-
- $sql .= "SELECT DISTINCT strnumzusgem, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceS.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferS.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferS.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferS.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferS.") as maxy ";
- $sql .= "FROM strassens ";
- $sql .= "WHERE strnumzusgem ILIKE $1 ";
-
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array($str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- //stack_it($arrayS,"name",encode($row["name"].' '.$row["hausnummer"].''.$row["zusatz"].', '.$row["gemeinde"]." (Strasse, Hausnummer, Gemeinde)"),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- stack_it($arrayS,"strnumzusgem",encode($row["strnumzusgem"]),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
-
- }
-}
-
-function StreetRest($str){
- global $bufferRes, $arrayRes, $toleranceRes, $epsg;
- checkMinLength($str);
-
- $sql .= "SELECT DISTINCT strnumzusgem, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceRes.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferRes.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferRes.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferRes.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferRes.") as maxy ";
- $sql .= "FROM strassenrest ";
- $sql .= "WHERE strnumzusgem ILIKE $1 ";
-
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array($str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- //stack_it($arrayRes,"name",encode($row["name"].' '.$row["hausnummer"].''.$row["zusatz"].', '.$row["gemeinde"]." (Strasse, Hausnummer, Gemeinde)"),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- stack_it($arrayRes,"strnumzusgem",encode($row["strnumzusgem"]),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-
-function StreetW($str){
- global $bufferW, $arrayW, $toleranceW, $epsg;
- checkMinLength($str);
-
- $sql .= "SELECT DISTINCT strnumzusgem, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceW.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferW.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferW.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferW.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferW.") as maxy ";
- $sql .= "FROM strassenw ";
- $sql .= "WHERE strnumzusgem ILIKE $1 ";
-
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array($str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- //stack_it($arrayW,"name",encode($row["name"].' '.$row["hausnummer"].''.$row["zusatz"].', '.$row["gemeinde"]." (Strasse, Hausnummer, Gemeinde)"),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- stack_it($arrayW,"strnumzusgem",encode($row["strnumzusgem"]),"s",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-
-
-function stack_it(&$stack,$category,$showtitle,$prefix,$srid,$minx,$miny,$maxx,$maxy,$gml){
- global $searchThruWeb;
- if (!$searchThruWeb) {
- $doc = new DOMDocument();
- $member = $doc->createElement("member");
- $doc->appendChild($member);
- $member->setAttribute('id',$prefix.count($stack));
- $fc = $doc->createElement("FeatureCollection");
- $member->appendChild($fc);
- $fc->setAttribute("xmlns:gml","http://www.opengis.net/gml");
- $bb = $doc->createElement("boundedBy");
- $fc->appendChild($bb);
- $box = $doc->createElement("Box");
- $bb->appendChild($box);
- $box->setAttribute('srsName',"EPSG:".$srid);
- $c = $doc->createElement("coordinates");
- $box->appendChild($c);
- $coords = $doc->createTextNode($minx.",".$miny." ".$maxx.",".$maxy);
- $c->appendChild($coords);
- $fm = $doc->createElement("featureMember");
- $fc->appendChild($fm);
- $wp = $doc->createElement($category);
- $fm->appendChild($wp);
- $title = $doc->createElement("title");
- $wp->appendChild($title);
- $ttitle = $doc->createTextNode($showtitle);
- $title->appendChild($ttitle);
- $geom = $doc->createElement("the_geom_line");
- $wp->appendChild($geom);
- $myNode = @simplexml_load_string($gml);
- $mySNode = dom_import_simplexml($myNode);
- $domNode = $doc->importNode($mySNode, true);
- $geom->appendChild($domNode);
- array_push($stack,$member);
- } else {
-
- $classJSON = new Mapbender_JSON;
- $returnJSON = new stdClass;
- $returnJSON->title = $showtitle;
- $returnJSON->category = $category;
- $returnJSON->minx = $minx;
- $returnJSON->miny = $miny;
- $returnJSON->maxx = $maxx;
- $returnJSON->maxy = $maxy;
- $returnJSON = $classJSON->encode($returnJSON);
- array_push($stack,$returnJSON);
- }
-}
-
-function null_output(){
- global $sstr, $arrayG, $arraySights, $arrayK, $arrayPLZ, $arrayOnly, $arrayAB, $arrayCD, $arrayEF, $arrayGH, $arrayIJK, $arrayLM, $arrayNOP, $arrayQRT, $arrayS, $arrayRes, $arrayW;
- $doc = new DOMDocument('1.0');
- $doc->encoding = CHARSET;
- $result = $doc->createElement("result");
- $doc->appendChild($result);
- $ready = $doc->createElement('ready');
- $result->appendChild($ready);
- $tready = $doc->createTextNode("true");
- $ready->appendChild($tready);
- echo $doc->saveXML();
-}
-
-function null_json_output(){
- global $sstr, $arrayG, $arraySights, $arrayK, $arrayPLZ, $arrayOnly, $arrayAB, $arrayCD, $arrayEF, $arrayGH, $arrayIJK, $arrayLM, $arrayNOP, $arrayQRT, $arrayS, $arrayRes, $arrayW;
- echo "{\"totalResultsCount\":0,\"geonames\":[]}";
-}
-
-function xml_output(){
- global $sstr, $searchThruWeb, $callback, $maxResults, $arrayG, $arraySights, $arrayK, $arrayPLZ, $arrayOnly, $arrayAB, $arrayCD, $arrayEF, $arrayGH, $arrayIJK, $arrayLM, $arrayNOP, $arrayQRT, $arrayS, $arrayRes, $arrayW;
-
- $classJSON = new Mapbender_JSON;
- $returnJSON = new stdClass;
-
- $countGeonames = 0;
- $returnJSON->totalResultsCount = 0;
-
- for($i=0; $i<count($arrayG); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayG[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arrayK); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayK[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arrayPLZ); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayPLZ[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arrayOnly); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayOnly[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arraySights); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arraySights[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arrayAB); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayAB[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arrayCD); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayCD[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arrayEF); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayEF[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arrayGH); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayGH[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arrayIJK); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayIJK[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arrayLM); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayLM[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arrayNOP); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayNOP[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arrayQRT); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayQRT[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
-
- for($i=0; $i<count($arrayS); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayS[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arrayRes); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayRes[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arrayW); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayW[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
-
- $returnJSON->totalResultsCount = $countGeonames;
- if ($returnJSON->totalResultsCount == 0) {
- $returnJSON->geonames = array();
- }
- if (isset($callback) && $callback != '') {
- $returnJSON = $callback."(".$classJSON->encode($returnJSON).")";
- } else {
- $returnJSON = $classJSON->encode($returnJSON);
- }
-
- echo $returnJSON;
-
-
-}
-
-function encode($s){
- return $s;
-}
-
-?>
Deleted: trunk/mapbender/http/geoportal/gaz_geom_mobile_alt.php
===================================================================
--- trunk/mapbender/http/geoportal/gaz_geom_mobile_alt.php 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/gaz_geom_mobile_alt.php 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,839 +0,0 @@
-<?php
-# $Id$
-# http://www.mapbender.org/index.php/gaz_service.php
-# 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__)."/../../conf/geoportal.conf");
-require_once(dirname(__FILE__)."/../classes/class_mb_exception.php");
-require_once(dirname(__FILE__)."/../classes/class_json.php");
-
-//Check if the result should be delivered as a webservice
-
-
-IF ($_REQUEST['resultTarget'] != 'web') {
- (isset($_SERVER["argv"][1]))? ($user_id = $_SERVER["argv"][1]) : ($e = new mb_exception("geom: user lacks!"));
- (isset($_SERVER["argv"][2]))? ($sstr = $_SERVER["argv"][2]) : ($e = new mb_exception("geom: string lacks!"));
- (isset($_SERVER["argv"][3]))? ($epsg = $_SERVER["argv"][3]) : ($e = new mb_exception("geom: epsg lacks!"));
- $searchThruWeb = false;
-} else {
- $maxResults = 15; //set default
- $outputFormat = 'json'; //set default
- $epsg = 31466;
-
- if (isset($_REQUEST["maxResults"]) & $_REQUEST["maxResults"] != "") {
- //validate integer to 100 - not more
- $testMatch = $_REQUEST["maxResults"];
- //give max 99 entries - more will be to slow
- $pattern = '/^([0-9]{0,1})([0-9]{1})$/';
- if (!preg_match($pattern,$testMatch)){
- echo 'maxResults: <b>'.$testMatch.'</b> is not valid.<br/>';
- die();
- }
- $maxResults = $testMatch;
- $testMatch = NULL;
- }
- if (isset($_REQUEST["outputFormat"]) & $_REQUEST["outputFormat"] != "") {
- $testMatch = $_REQUEST["outputFormat"];
- if (!($testMatch == 'json')){
- echo 'outputFormat: <b>'.$testMatch.'</b> is not valid.<br/>';
- die();
- }
- $outputFormat = $testMatch;
- $testMatch = NULL;
- }
- if (isset($_REQUEST["searchEPSG"]) & $_REQUEST["searchEPSG"] != "") {
- $testMatch = $_REQUEST["searchEPSG"];
- if (!($testMatch == '31467' or $testMatch == '31468' or $testMatch == '25832' or $testMatch == '4326')){
- echo 'searchEPSG: <b>'.$testMatch.'</b> is not valid.<br/>';
- die();
- }
- $searchEPSG = $testMatch;
- $testMatch = NULL;
- }
- /*if (isset($_REQUEST["callback"]) & $_REQUEST["callback"] != "") {
- $testMatch = $_REQUEST["callback"];
- $pattern = '/^jQuery\d+_\d+$/';
- if (!preg_match($pattern,$testMatch)){
- //if (!($testMatch == '31467' or $testMatch == '31468' or $testMatch == '25832' or $testMatch == '4326')){
- echo 'callback: <b>'.$testMatch.'</b> is not valid.<br/>';
- die();
- }
- $callback = $testMatch;
- $testMatch = NULL;
- }*/
- //for debugging
- $callback = $_REQUEST["callback"];
- //get searchText as a parameter
- $searchText = $_REQUEST['searchText']; //TODO: filter for insecure texts
- $sstr = $searchText;
- $epsg = $searchEPSG;
- $searchThruWeb = true;
-}
-
-$con = pg_connect("host=".GEOMDB_HOST." port=".GEOMDB_PORT." dbname=".GEOMDB_NAME." user=".GEOMDB_USER." password=".GEOMDB_PASSWORD)
-or die('Verbindungsaufbau fehlgeschlagen: ' . pg_last_error());
-
-function replaceChars($text){
- $search = array( "ä", "ö", "ü", "Ä", "Ö", "Ü", "tr.", "ß" );
- $repwith = array("ae", "oe", "ue", "AE", "OE", "UE", "tr","ss");
-
- //if(CHARSET=="UTF-8")
- // $text = utf8_decode($text);
-
- $ret = str_replace($search, $repwith, $text);
-
- //if(CHARSET=="UTF-8")
- // $ret = utf8_encode($ret);
-
- return $ret;
-}
-/******* conf ***********************************/
-$factor = 1;
-if (intval($epsg) == 4326) $factor = 0.00001;
-/******* wohnplätze *******************/
-$bufferWP = 1000*$factor;
-$arrayWP = array();
-$arrayWPKey = array();
-
-/******* gemeinde *********************/
-$bufferG = 100*$factor;
-$arrayG = array();
-$toleranceG = 100*$factor;
-
-/******* kreis *********************/
-$bufferK = 100*$factor;
-$arrayK = array();
-$toleranceK = 1000*$factor;
-/******* verbandsgemeinde *********************/
-$bufferV = 100*$factor;
-$arrayV = array();
-$toleranceV = 1000*$factor;
-/******* strasse *********************/
-$bufferSTR = 100*$factor;
-$arraySTR = array();
-$toleranceSTR = 100*$factor;
-/******* Strasse / Hsnr ****************/
-$bufferSH = 100*$factor;
-$arraySH = array();
-$toleranceSH = 1000*$factor;
-
-
-$e = new mb_exception("gaz_geom_mobile was invoked with string:".$sstr);
-/****** Workflow *********************************/
-/**/
-$test = str_replace("ß", "ss", $sstr);
-$e = new mb_notice("replaced test string: ".$test);
-$astr = split(",",replaceChars($sstr));
-$e = new mb_notice("replaced string: ".$astr[0]." ".$astr[1]." ".$astr[2]);
-//if only one string without any comma is given
-if(count($astr) == 1){
-
- $astr[0] = trim($astr[0]);
- $e = new mb_notice("gaz_geom_mobile: only one string detected: ".$astr[0]);
- //check if there may be a postal code
- $plz = getPlz($astr[0]);
- //check if there is a housenumber
- $hsnr = getNr($astr[0]);
- if($plz != false){
-
- //checkSize($astr[0]);
- checkWP($plz, strtoupper(getCity($astr[0])));
- checkGfromWP();
- }
- else if($hsnr != false){
-
- }
- else if($hsnr == false && $plz == false){
- checkWP(false,strtoupper($astr[0]));
- checkG(strtoupper($astr[0]));
- checkGfromWP();
- checkK(strtoupper($astr[0]));
- checkVg($astr[0]);
- }
-}
-//if 2 parts are given - the first one may be a combined or a single value
-// '56743 mendig' or 'ferdinand-sauerbruch-strasse 15' or 'koblenz' or 'mendig' or, or, or ...
-else if(count($astr) == 2){
- $e = new mb_notice("gaz_geom_mobile: two strings detected: ".$astr[0]." and ".$astr[1]);
- $astr[0] = trim($astr[0]);
- $astr[1] = trim($astr[1]);
- $ckeys = array();
- $cnames = array();
- $cmissing = array();
-
- $myplz = false;
- $mycity = false;
- $mystr = false;
- $mynr = false;
- $myzs = false;
- $both = array();
-
- // check first entry for postal code
- if(getPlz($astr[0])){
- $myplz = getPlz($astr[0]);
- $e = new mb_notice("gaz_geom_mobile: postalcode detected: ".$myplz);
- if(getNr($astr[1])){
- $mynr = getNr($astr[1]);
- $myzs = getAppendix($astr[1]);
- $mystr = getStrn($astr[1]);
- }
- else{
- $mystr = trim($astr[1]);
- }
- }
- //check first entry for number
- else if(getNr($astr[0])){
- $mynr = getNr($astr[0]);
- $myzs = getAppendix($astr[0]);
- $mystr = getStrn($astr[0]);
- $e = new mb_notice('gaz_geom_mobile: search for streetname: '.$mystr);
- //check if in second value there is a postalcode
- if(getPlz($astr[1])){
- $myplz = getPlz($astr[1]);
- }
- //maybe it will be a city name
- else{
- $mycity = trim($astr[1]);
- $e = new mb_notice('gaz_geom_mobile: search for city: '.$mycity);
- }
- }
- //check second for postal code
- else{
- if(getPlz($astr[1])){
- $myplz = getPlz($astr[1]);
- }
- if(getNr($astr[1])){
- $mynr = getNr($astr[1]);
- $myzs = getAppendix($astr[1]);
- $mystr = getStrn($astr[1]);
- $mycity = getCity($astr[0]);
- }
- else{
- array_push($both,$astr[0]);
- array_push($both,$astr[1]);
- }
- }
- // workflow
- if(count($both) == 2){
- //$a = "%".strtoupper(trim($both[0]))."%";
- //$b = "%".strtoupper(trim($both[1]))."%";
- $a = strtoupper(trim($both[0]))."%";
- $b = strtoupper(trim($both[1]))."%";
-
-
- $v = array($a, $a);
- $t = array('s', 's');
- $sql = "SELECT DISTINCT * FROM (SELECT DISTINCT gem_schl_neu, gemeinde AS gem FROM gis.verwaltungseinheit ";
- $sql .= "WHERE gemeinde_upper LIKE $1";
- $sql .= "UNION SELECT DISTINCT gem_schl_neu, gemeinde_gem_teile AS gem FROM gis.wohnplatz ";
- $sql .= "WHERE gemeinde_gem_teile_upper LIKE $2) AS str";
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($ckeys, $row['gem_schl_neu']);
- array_push($cnames, encode($row['gem']));
- array_push($cmissing, $b);
- }
- $v = array($b, $b);
- $t = array('s', 's');
- $sql = "SELECT DISTINCT * FROM (SELECT DISTINCT gem_schl_neu, gemeinde AS gem FROM gis.verwaltungseinheit ";
- $sql .= "WHERE gemeinde_upper LIKE $1";
- $sql .= "UNION SELECT DISTINCT gem_schl_neu, gemeinde_gem_teile AS gem FROM gis.wohnplatz ";
- $sql .= "WHERE gemeinde_gem_teile_upper LIKE $2) AS str";
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($ckeys, $row['gem_schl_neu']);
- array_push($cnames, encode($row['gem']));
- array_push($cmissing, $a);
- }
-
- if(count($ckeys)>0){
- for($i=0; $i<count($ckeys); $i++){
-
- $v = array($ckeys[$i], $cmissing[$i]);
- $t = array('i', 's');
- $sql = "SELECT DISTINCT str_name_ewois, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(the_geom) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferSH.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferSH.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferSH.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferSH.") as maxy ";
- $sql .= "FROM gis.strassenschluessel WHERE gem_schl = $1 ";
- $sql .= " AND (str_name_ewois_upper LIKE $2)";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- $show = encode($row["str_name_ewois"])." ".$cnames[$i];
- $e = new mb_notice('gaz_geom_mobile: street found: '.$row["str_name_ewois"]);
- stack_it($arraySTR,"str",$show,"str",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
- }
-
- }
- }
- else{
-// echo $myplz ."#";
-// echo $mycity ."#";
-// echo $mystr ."#";
-// echo $mynr ."#";
-// echo $myzs ."#";
-// print_r($both);
- checkSH($mystr,$mynr,$myzs,$myplz,$mycity);
- }
-}
-
-
-
-//$fillSH = checkSH("Akazienweg",30,false,56075,"Koblenz");
-
-xml_output();
-
-function checkMinLength($str) {
- global $searchThruWeb;
- if (strlen($str) < 3) {
- if ($searchThruWeb) {
- //errorOutput();
- null_json_output();
- } else {
- null_output();
- }
- die();
- }
-}
-//Strasse Hausnummer
-function checkSH($s,$h,$z,$p,$o){
- global $bufferSH, $arraySH, $epsg;
-
- if ($o && $s) {
- $str_schl = array();
- $str_schl_gem = array();
- $ckeys = array();
- $cnames = array();
- $a = "%".strtoupper(trim($o))."%";
- $v = array($a, $a);
- $t = array('s', 's');
- $sql = "SELECT DISTINCT * FROM (SELECT DISTINCT gem_schl_neu, gemeinde AS gem FROM gis.verwaltungseinheit ";
- $sql .= "WHERE gemeinde_upper LIKE $1";
- $sql .= "UNION SELECT DISTINCT gem_schl_neu, gemeinde_gem_teile AS gem FROM gis.wohnplatz ";
- $sql .= "WHERE gemeinde_gem_teile_upper LIKE $2) AS str";
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($ckeys, $row['gem_schl_neu']);
- array_push($cnames, $row['gem']);
- }
-
- if(count($ckeys)>0){
- for($i=0; $i<count($ckeys); $i++){
-
- //$v = array($ckeys[$i], "%". strtoupper(trim($s)). "%");
- $v = array($ckeys[$i], strtoupper(trim($s)). "%");
- $t = array('i', 's');
- $sql = "SELECT DISTINCT str_schl_alt ";
- $sql .= "FROM gis.strassenschluessel WHERE gem_schl = $1 ";
- $sql .= " AND str_name_ewois_upper ILIKE $2";
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($str_schl, $row['str_schl_alt']);
- $e = new mb_notice('gaz_geom_mobile: strassenschluessel: '.$row["str_schl_alt"].' for '.$s.' found' );
- array_push($str_schl_gem, $cnames[$i]);
- }
- }
- //select all streetkeys
- if (count($str_schl > 0)) {
- $v = array($h);
- $t = array('i');
- $sql = "SELECT DISTINCT name, hausnummer, zusatz, plz, post_ortsname, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(the_geom) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferSH.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferSH.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferSH.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferSH.") as maxy ";
- $sql .= "FROM gis.hauskoordinaten ";
- $sql .= "WHERE hausnummer = $1 AND strschl IN (";
-
- for($i=0; $i<count($str_schl); $i++){
- if($i > 0){$sql .= ",";}
- $sql .= "$".($i+2);
- array_push($v,$str_schl[$i]);
- array_push($t,'i');
- }
- $sql .= ")";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
-
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
-
-
-#$show = $row["name"]." ".$row["hausnummer"];
- if($row["zusatz"] != 'null'){
- # $show .= $row["zusatz"];
-
-$show = utf8_decode($row["name"])." ".$row["hausnummer"].$row["zusatz"];
-//$show = $row["name"]." ".$row["hausnummer"].$row["zusatz"]; TODO: exchange this, when the hauskoordinaten table is delivered in a homogenous encoding!
-}
- else
-{$show = utf8_decode( $row["name"])." ".$row["hausnummer"];}
- $show .= ", " . $row["plz"]. " " . $row["post_ortsname"];
-
-
- stack_it($arraySH,"haus",$show,"sh",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
- }
- }
-
- }
- else {
- //is this 'else' obsolete?
- $sql = "SELECT DISTINCT name, hausnummer, zusatz, plz, post_ortsname, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(the_geom) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferSH.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferSH.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferSH.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferSH.") as maxy ";
- $sql .= "FROM gis.hauskoordinaten ";
- $sql .= "WHERE name ILIKE $1 AND hausnummer = $2 ";
- //$v = array("%".$s."%",$h);
- $v = array($s."%",$h);
- $t = array('s','i');
- if($z){
- $sql .= "AND zusatz = $" . (count($v)+1);
- array_push($v,$z);
- array_push($t,'s');
- }
- if($p){
- $sql .= "AND plz = $" . (count($v)+1);
- array_push($v,$p);
- array_push($t,'i');
- }
- if($o){
- $sql .= "AND post_ortsname ILIKE $" . (count($v)+1);
- array_push($v,"%".$o."%");
- array_push($t,'s');
- }
- #$sql .= " GROUP BY the_geom, name, hausnummer, zusatz, plz, post_ortsname";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
-
- $show = utf8_decode($row["name"])." ".$row["hausnummer"];
- $e = new mb_notice('gaz_geom_mobile.php: streetname2: '.utf8_decode($row["name"]));
- //$show = $row["name"]." ".$row["hausnummer"]; TODO: see above
- if($row["zusatz"] != null){
- $show .= $row["zusatz"];
- }
- $show .= ", " . $row["plz"]. " " . utf8_decode($row["post_ortsname"]);
- stack_it($arraySH,"haus",$show,"sh",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
- }
- return true;
-}
-//Wohnplatz
-function checkWP($plz,$name){
- global $bufferWP, $arrayWP, $arrayWPKey, $epsg;
- $v = array();
- $t = array();
- checkMinLength($name);
- $sql = "SELECT DISTINCT gemeinde_gem_teile, gem_schl_neu, postleitzahl,";
- $sql .= "SRID(the_geom) AS srid, AsGML(the_geom) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferWP.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferWP.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferWP.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferWP.") as maxy ";
- $sql .= "FROM gis.wohnplatz WHERE ";
- if($plz == false){
- $sql .= "gemeinde_gem_teile_upper ILIKE $1 ";
- array_push($v,"%".$name."%");
- array_push($t,'s');
- }
- else if($name == false){
- $sql .= "postleitzahl = $1 ";
- array_push($v,$plz);
- array_push($t,'i');
- }
- else{
- $sql .= "postleitzahl = $1 AND gemeinde_gem_teile_upper ILIKE $2 ";
- array_push($v,$plz);
- array_push($t,'i');
- array_push($v,"%".$name."%");
- array_push($t,'s');
- }
- $sql .= "GROUP BY the_geom, gemeinde_gem_teile, gem_schl_neu, postleitzahl";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- $show = encode($row["gemeinde_gem_teile"]);
- $show.= " (Wohnplatz)";
- if(intval($row['postleitzahl'])> 1){ $show .= " (".$row['postleitzahl'].")"; }
- stack_it($arrayWP,"wohnplatz",$show,"wp",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- if(!in_array($row["gem_schl_neu"],$arrayWPKey)){
- array_push($arrayWPKey,$row["gem_schl_neu"]);
- }
- }
- return true;
-}
-function checkGfromWP(){
- global $arrayWPKey, $bufferG, $arrayG, $toleranceG, $epsg;
- if(count($arrayWPKey) == 0){
- return false;
- }
- $v = array();
- $t = array();
- $sql = "SELECT DISTINCT gemeinde, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,$toleranceG)) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferG.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferG.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferG.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferG.") as maxy ";
- $sql .= "FROM gis.verwaltungseinheit WHERE gem_schl_neu IN(";
- for($i=0; $i<count($arrayWPKey); $i++){
- if($i > 0){$sql .= ",";}
- $sql .= "$".($i+1);
- array_push($v,$arrayWPKey[$i]);
- array_push($t,'i');
- }
- $sql .= ") GROUP BY the_geom, gemeinde";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayG,"gemeinde",encode($row["gemeinde"]." (Wohnplatz)"),"g",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-function checkG($str){
- global $bufferG, $arrayG, $toleranceG, $arrayWPKey, $epsg;
- checkMinLength($str);
- $tmp = array();
- $sql = "SELECT DISTINCT gemeinde, gem_schl_neu, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,$toleranceG)) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferG.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferG.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferG.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferG.") as maxy ";
- $sql .= "FROM gis.verwaltungseinheit WHERE gemeinde_upper ILIKE $1 ";
- #$sql .= "GROUP BY the_geom, gemeinde, gem_schl_neu";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array("%".$str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayG,"gemeinde",encode($row["gemeinde"]." (Gemeinde)"),"g",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- $tmp[count($tmp)] = $row["gem_schl_neu"];
- }
- $arrayWPKey = array_diff($arrayWPKey,$tmp);
-}
-
-function checkK($str){
- global $bufferK, $arrayK, $toleranceK, $epsg;
- checkMinLength($str);
- $sql = "SELECT DISTINCT kreis, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceK.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferK.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferK.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferK.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferK.") as maxy ";
- $sql .= "FROM gis.kreis_pl WHERE kreis_upper ILIKE $1 ";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array("%".$str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayK,"kreis",encode($row["kreis"]." (Landkreis)"),"k",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-function checkVg($str){
- global $bufferV, $arrayV, $toleranceV, $epsg;
- checkMinLength($str);
- $sql = "SELECT DISTINCT vg, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceV.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferV.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferV.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferV.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferV.") as maxy ";
- $sql .= "FROM gis.vg_fl WHERE vg ILIKE $1 ";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array("%".$str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayV,"verbandsgemeinde",encode($row["vg"]." (Verbandsgemeinde)"),"vg",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-function stack_it(&$stack,$category,$showtitle,$prefix,$srid,$minx,$miny,$maxx,$maxy,$gml){
- global $searchThruWeb;
- if (!$searchThruWeb) {
- $doc = new DOMDocument();
- $member = $doc->createElement("member");
- $doc->appendChild($member);
- $member->setAttribute('id',$prefix.count($stack));
- $fc = $doc->createElement("FeatureCollection");
- $member->appendChild($fc);
- $fc->setAttribute("xmlns:gml","http://www.opengis.net/gml");
- $bb = $doc->createElement("boundedBy");
- $fc->appendChild($bb);
- $box = $doc->createElement("Box");
- $bb->appendChild($box);
- $box->setAttribute('srsName',"EPSG:".$srid);
- $c = $doc->createElement("coordinates");
- $box->appendChild($c);
- $coords = $doc->createTextNode($minx.",".$miny." ".$maxx.",".$maxy);
- $c->appendChild($coords);
- $fm = $doc->createElement("featureMember");
- $fc->appendChild($fm);
- $wp = $doc->createElement($category);
- $fm->appendChild($wp);
- $title = $doc->createElement("title");
- $wp->appendChild($title);
- $ttitle = $doc->createTextNode($showtitle);
- $title->appendChild($ttitle);
- $geom = $doc->createElement("the_geom");
- $wp->appendChild($geom);
- $myNode = @simplexml_load_string($gml);
- $mySNode = dom_import_simplexml($myNode);
- $domNode = $doc->importNode($mySNode, true);
- $geom->appendChild($domNode);
- array_push($stack,$member);
- } else {
- //generate simple json objects as array elements
- $classJSON = new Mapbender_JSON;
- $returnJSON = new stdClass;
- $returnJSON->title = $showtitle;
- $returnJSON->category = $category;
- $returnJSON->minx = $minx;
- $returnJSON->miny = $miny;
- $returnJSON->maxx = $maxx;
- $returnJSON->maxy = $maxy;
- $returnJSON = $classJSON->encode($returnJSON);
- array_push($stack,$returnJSON);
- }
-}
-
-function null_output(){
- global $sstr, $arrayWP, $arrayG, $arrayK, $arraySH, $arraySTR, $arrayV;
- $doc = new DOMDocument('1.0');
- $doc->encoding = CHARSET;
- $result = $doc->createElement("result");
- $doc->appendChild($result);
- $ready = $doc->createElement('ready');
- $result->appendChild($ready);
- $tready = $doc->createTextNode("true");
- $ready->appendChild($tready);
- echo $doc->saveXML();
-}
-
-function null_json_output(){
- global $sstr, $arrayWP, $arrayG, $arrayK, $arraySH, $arraySTR, $arrayV;
- echo "{\"totalResultsCount\":0,\"geonames\":[]}";
-}
-
-
-
-
-
-function xml_output(){
- global $sstr, $arrayWP, $arrayG, $arrayK, $arraySH, $arraySTR, $arrayV, $searchThruWeb, $callback, $maxResults;
- if (!$searchThruWeb) {
- $doc = new DOMDocument('1.0');
- $doc->encoding = CHARSET;
- $result = $doc->createElement("result");
- $doc->appendChild($result);
-
- for($i=0; $i<count($arrayWP); $i++){
- $domNode = $doc->importNode($arrayWP[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arrayG); $i++){
- $domNode = $doc->importNode($arrayG[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arrayK); $i++){
- $domNode = $doc->importNode($arrayK[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arraySH); $i++){
- $domNode = $doc->importNode($arraySH[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arraySTR); $i++){
- $domNode = $doc->importNode($arraySTR[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arrayV); $i++){
- $domNode = $doc->importNode($arrayV[$i], true);
- $result->appendChild($domNode);
- }
- $ready = $doc->createElement('ready');
- $result->appendChild($ready);
- $tready = $doc->createTextNode("true");
- $ready->appendChild($tready);
- //if ($searchThruWeb) {
- // header("Content-type: application/xhtml+xml; charset=UTF-8");
- //}
- echo $doc->saveXML();
- } else {
- //generate json object with gml content
- $classJSON = new Mapbender_JSON;
- $returnJSON = new stdClass;
-
- $countGeonames = 0;
- $returnJSON->totalResultsCount = 0;
-
- for($i=0; $i<count($arrayK); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayK[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arrayV); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayV[$i]);
- $countGeonames++;
- }
-
- for($i=0; $i<count($arrayG); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayG[$i]);
- $countGeonames++;
- }
-
- for($i=0; $i<count($arraySTR); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arraySTR[$i]);
- $countGeonames++;
- }
-
- for($i=0; $i<count($arrayWP); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayWP[$i]);
- $countGeonames++;
- }
-
- for($i=0; $i<count($arraySH); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arraySH[$i]);
- $countGeonames++;
- }
- $returnJSON->totalResultsCount = $countGeonames;
- if ($returnJSON->totalResultsCount == 0) {
- $returnJSON->geonames = array();
- }
- if (isset($callback) && $callback != '') {
- $returnJSON = $callback."(".$classJSON->encode($returnJSON).")";
- } else {
- $returnJSON = $classJSON->encode($returnJSON);
- }
-
- echo $returnJSON;
- }
-
-}
-function encode($s){
-# if(CHARSET == 'UTF-8'){
-# $s = utf8_encode($s);
-# }
- return $s;
-}
-function getPlz($str){
- $p = "/.*(\d{5}).*/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return $am[1];
- }
- else{
- return false;
- }
-}
-function getCity($str){
- $p = "/(^\d{5}){0,1}(.*)/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return trim($am[2]);
- }
- else{
- return false;
- }
-}
-function getNr($str){
- $p = "/.*[^0-9](\d{1,4})[^0-9]*/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return $am[(count($am)-1)];
- }
- else{
- return false;
- }
-}
-function getStrn($str){
- $p = "/^(\D+)\d/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return trim($am[1]);
- }
- else{
- return false;
- }
-}
-function getAppendix($str){
- $p = "/.*\d+.*(\D{1})/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return $am[1];
- }
- else{
- return false;
- }
-}
-function getCKeysByName($city){
- global $ckeys;
- $city = "%".strtoupper(trim($city))."%";
- $sql = "SELECT gem_schl_neu FROM gis.wohnplatz ";
- $sql .= "WHERE gemeinde_gem_teile_upper ILIKE $1 ";
- $v = array($city);
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($ckeys, $row['gem_schl_neu']);
- }
-}
-?>
Deleted: trunk/mapbender/http/geoportal/gaz_geom_mobile_alt_neu.php
===================================================================
--- trunk/mapbender/http/geoportal/gaz_geom_mobile_alt_neu.php 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/gaz_geom_mobile_alt_neu.php 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,847 +0,0 @@
-<?php
-# $Id$
-# http://www.mapbender.org/index.php/gaz_service.php
-# 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__)."/../../conf/geoportal.conf");
-require_once(dirname(__FILE__)."/../classes/class_mb_exception.php");
-require_once(dirname(__FILE__)."/../classes/class_json.php");
-
-//Check if the result should be delivered as a webservice
-
-
-IF ($_REQUEST['resultTarget'] != 'web') {
- (isset($_SERVER["argv"][1]))? ($user_id = $_SERVER["argv"][1]) : ($e = new mb_exception("geom: user lacks!"));
- (isset($_SERVER["argv"][2]))? ($sstr = $_SERVER["argv"][2]) : ($e = new mb_exception("geom: string lacks!"));
- (isset($_SERVER["argv"][3]))? ($epsg = $_SERVER["argv"][3]) : ($e = new mb_exception("geom: epsg lacks!"));
- $searchThruWeb = false;
-} else {
- $maxResults = 15; //set default
- $outputFormat = 'json'; //set default
- $epsg = 31466;
-
- if (isset($_REQUEST["maxResults"]) & $_REQUEST["maxResults"] != "") {
- //validate integer to 100 - not more
- $testMatch = $_REQUEST["maxResults"];
- //give max 99 entries - more will be to slow
- $pattern = '/^([0-9]{0,1})([0-9]{1})$/';
- if (!preg_match($pattern,$testMatch)){
- echo 'maxResults: <b>'.$testMatch.'</b> is not valid.<br/>';
- die();
- }
- $maxResults = $testMatch;
- $testMatch = NULL;
- }
- if (isset($_REQUEST["outputFormat"]) & $_REQUEST["outputFormat"] != "") {
- $testMatch = $_REQUEST["outputFormat"];
- if (!($testMatch == 'json')){
- echo 'outputFormat: <b>'.$testMatch.'</b> is not valid.<br/>';
- die();
- }
- $outputFormat = $testMatch;
- $testMatch = NULL;
- }
- if (isset($_REQUEST["searchEPSG"]) & $_REQUEST["searchEPSG"] != "") {
- $testMatch = $_REQUEST["searchEPSG"];
- if (!($testMatch == '31467' or $testMatch == '31468' or $testMatch == '25832' or $testMatch == '4326')){
- echo 'searchEPSG: <b>'.$testMatch.'</b> is not valid.<br/>';
- die();
- }
- $searchEPSG = $testMatch;
- $testMatch = NULL;
- }
- /*if (isset($_REQUEST["callback"]) & $_REQUEST["callback"] != "") {
- $testMatch = $_REQUEST["callback"];
- $pattern = '/^jQuery\d+_\d+$/';
- if (!preg_match($pattern,$testMatch)){
- //if (!($testMatch == '31467' or $testMatch == '31468' or $testMatch == '25832' or $testMatch == '4326')){
- echo 'callback: <b>'.$testMatch.'</b> is not valid.<br/>';
- die();
- }
- $callback = $testMatch;
- $testMatch = NULL;
- }*/
- //for debugging
- $callback = $_REQUEST["callback"];
- //get searchText as a parameter
- $searchText = $_REQUEST['searchText']; //TODO: filter for insecure texts
- $sstr = $searchText;
- $epsg = $searchEPSG;
- $searchThruWeb = true;
-}
-
-
-$e = new mb_exception("maxResults: ".$maxResults);
-$con = pg_connect("host=".GEOMDB_HOST." port=".GEOMDB_PORT." dbname=".GEOMDB_NAME." user=".GEOMDB_USER." password=".GEOMDB_PASSWORD)
-or die('Verbindungsaufbau fehlgeschlagen: ' . pg_last_error());
-
-function replaceChars($text){
-// $search = array( "ä", "ö", "ü", "Ä", "Ö", "Ü", "tr.", "ß" );
-// $repwith = array("ae", "oe", "ue", "AE", "OE", "UE", "tr","ss");
-
- //if(CHARSET=="UTF-8")
- // $text = utf8_decode($text);
-
-// $ret = str_replace($search, $repwith, $text);
-
- //if(CHARSET=="UTF-8")
- // $ret = utf8_encode($ret);
-
-// return $ret;
-
- return $text;
-
-}
-
-
-/******* conf ***********************************/
-$factor = 1;
-if (intval($epsg) == 4326) $factor = 0.00001;
-/******* wohnplätze *******************/
-$bufferWP = 1000*$factor;
-$arrayWP = array();
-$arrayWPKey = array();
-
-/******* gemeinde *********************/
-$bufferG = 100*$factor;
-$arrayG = array();
-$toleranceG = 100*$factor;
-
-/******* kreis *********************/
-$bufferK = 100*$factor;
-$arrayK = array();
-$toleranceK = 1000*$factor;
-/******* verbandsgemeinde *********************/
-$bufferV = 100*$factor;
-$arrayV = array();
-$toleranceV = 1000*$factor;
-/******* strasse *********************/
-$bufferSTR = 175*$factor;
-$arraySTR = array();
-$toleranceSTR = 100*$factor;
-/******* Strasse / Hsnr ****************/
-$bufferSH = 75*$factor;
-$arraySH = array();
-$toleranceSH = 1000*$factor;
-
-
-$e = new mb_exception("gaz_geom_mobile was invoked with string:".$sstr);
-/****** Workflow *********************************/
-/**/
-$test = str_replace("ß", "ss", $sstr);
-$e = new mb_exception("replaced test string: ".$test);
-$astr = split(",",replaceChars($sstr));
-$e = new mb_exception("replaced string: ".$astr[0]." ".$astr[1]." ".$astr[2]);
-//if only one string without any comma is given
-if(count($astr) == 1){
-
- $astr[0] = trim($astr[0]);
- $e = new mb_exception("gaz_geom_mobile: only one string detected: ".$astr[0]);
- //check if there may be a postal code
- $plz = getPlz($astr[0]);
- //check if there is a housenumber
- $hsnr = getNr($astr[0]);
- if($plz != false){
-
- //checkSize($astr[0]);
- checkWP($plz, strtoupper(getCity($astr[0])));
- checkGfromWP();
- }
- else if($hsnr != false){
-
- }
- else if($hsnr == false && $plz == false){
- checkWP(false,strtoupper($astr[0]));
- checkG(strtoupper($astr[0]));
- checkGfromWP();
- checkK(strtoupper($astr[0]));
- checkVg($astr[0]);
- }
-}
-//if 2 parts are given - the first one may be a combined or a single value
-// '56743 mendig' or 'ferdinand-sauerbruch-strasse 15' or 'koblenz' or 'mendig' or, or, or ...
-else if(count($astr) == 2){
- $e = new mb_exception("gaz_geom_mobile: two strings detected: ".$astr[0]." and ".$astr[1]);
- $astr[0] = trim($astr[0]);
- $astr[1] = trim($astr[1]);
- $ckeys = array();
- $cnames = array();
- $cmissing = array();
-
- $myplz = false;
- $mycity = false;
- $mystr = false;
- $mynr = false;
- $myzs = false;
- $both = array();
-
- // check first entry for postal code
- if(getPlz($astr[0])){
- $myplz = getPlz($astr[0]);
- $e = new mb_exception("gaz_geom_mobile: postalcode detected: ".$myplz);
- if(getNr($astr[1])){
- $mynr = getNr($astr[1]);
- $myzs = getAppendix($astr[1]);
- $mystr = getStrn($astr[1]);
- }
- else{
- $mystr = trim($astr[1]);
- }
- }
- //check first entry for number
- else if(getNr($astr[0])){
- $mynr = getNr($astr[0]);
- $myzs = getAppendix($astr[0]);
- $mystr = getStrn($astr[0]);
- $e = new mb_exception('gaz_geom_mobile: search for streetname: '.$mystr);
- //check if in second value there is a postalcode
- if(getPlz($astr[1])){
- $myplz = getPlz($astr[1]);
- }
- //maybe it will be a city name
- else{
- $mycity = trim($astr[1]);
- $e = new mb_exception('gaz_geom_mobile: search for city: '.$mycity);
- }
- }
- //check second for postal code
- else{
- if(getPlz($astr[1])){
- $myplz = getPlz($astr[1]);
- }
- if(getNr($astr[1])){
- $mynr = getNr($astr[1]);
- $myzs = getAppendix($astr[1]);
- $mystr = getStrn($astr[1]);
- $mycity = getCity($astr[0]);
- }
- else{
- array_push($both,$astr[0]);
- array_push($both,$astr[1]);
- }
- }
- // workflow
- if(count($both) == 2){
- $a = "%".strtoupper(trim($both[0]))."%";
- $b = "%".strtoupper(trim($both[1]))."%";
- //$a = strtoupper(trim($both[0]))."%";
- //$b = strtoupper(trim($both[1]))."%";
-
-
- $v = array($a, $a);
- $t = array('s', 's');
- $sql = "SELECT DISTINCT * FROM (SELECT DISTINCT gem_schl_neu, gemeinde_neu AS gem FROM gemeinden ";
- $sql .= "WHERE gemeinde_upper LIKE $1";
- $sql .= "UNION SELECT DISTINCT gem_schl_neu, gemeinde_gem_teile AS gem FROM wohnplatz ";
- $sql .= "WHERE gemeinde_gem_teile_upper LIKE $2) AS str";
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($ckeys, $row['gem_schl_neu']);
- array_push($cnames, encode($row['gem']));
- array_push($cmissing, $b);
- }
- $v = array($b, $b);
- $t = array('s', 's');
- $sql = "SELECT DISTINCT * FROM (SELECT DISTINCT gem_schl_neu, gemeinde_neu AS gem FROM gemeinden ";
- $sql .= "WHERE gemeinde_upper LIKE $1";
- $sql .= "UNION SELECT DISTINCT gem_schl_neu, gemeinde_gem_teile AS gem FROM wohnplatz ";
- $sql .= "WHERE gemeinde_gem_teile_upper LIKE $2) AS str";
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($ckeys, $row['gem_schl_neu']);
- array_push($cnames, encode($row['gem']));
- array_push($cmissing, $a);
- }
-
- if(count($ckeys)>0){
- for($i=0; $i<count($ckeys); $i++){
-
- $v = array($ckeys[$i], $cmissing[$i]);
- $t = array('i', 's');
- $sql = "SELECT DISTINCT strassenname, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(the_geom) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferSTR.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferSTR.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferSTR.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferSTR.") as maxy ";
- $sql .= "FROM strassenschluessel WHERE gem_schl = $1 ";
- $sql .= " AND (strassenname_upper LIKE $2)";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- $show = encode($row["strassenname"])." ".$cnames[$i];
- $e = new mb_exception('gaz_geom_mobile: street found: '.$row["strassenname"]);
- stack_it($arraySTR,"str",$show,"str",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
- }
-
- }
- }
- else{
-// echo $myplz ."#";
-// echo $mycity ."#";
-// echo $mystr ."#";
-// echo $mynr ."#";
-// echo $myzs ."#";
-// print_r($both);
- checkSH($mystr,$mynr,$myzs,$myplz,$mycity);
- }
-}
-
-
-
-//$fillSH = checkSH("Akazienweg",30,false,56075,"Koblenz");
-
-xml_output();
-
-function checkMinLength($str) {
- global $searchThruWeb;
- if (strlen($str) < 3) {
- if ($searchThruWeb) {
- //errorOutput();
- null_json_output();
- } else {
- null_output();
- }
- die();
- }
-}
-//Strasse Hausnummer
-function checkSH($s,$h,$z,$p,$o){
- global $bufferSH, $arraySH, $epsg;
-
- if ($o && $s) {
- $str_schl = array();
- $str_schl_gem = array();
- $ckeys = array();
- $cnames = array();
- $a = "%".strtoupper(trim($o))."%";
- $v = array($a, $a);
- $t = array('s', 's');
- $sql = "SELECT DISTINCT * FROM (SELECT DISTINCT gem_schl_neu, gemeinde_neu AS gem FROM gemeinden ";
- $sql .= "WHERE gemeinde_upper LIKE $1";
- $sql .= "UNION SELECT DISTINCT gem_schl_neu, gemeinde_gem_teile AS gem FROM wohnplatz ";
- $sql .= "WHERE gemeinde_gem_teile_upper LIKE $2)";
- $sql .=" AS str";
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($ckeys, $row['gem_schl_neu']);
- array_push($cnames, $row['gem']);
- }
-
- if(count($ckeys)>0){
- for($i=0; $i<count($ckeys); $i++){
-
- $v = array($ckeys[$i], "%". strtoupper(trim($s)). "%");
- //$v = array($ckeys[$i], strtoupper(trim($s)). "%");
- $t = array('i', 's');
- $sql = "SELECT DISTINCT strassenschluessel ";
- $sql .= "FROM strassenschluessel WHERE gem_schl = $1 ";
- $sql .= " AND strassenname_upper ILIKE $2";
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($str_schl, $row['strassenschluessel']);
- $e = new mb_exception('gaz_geom_mobile: strassenschluessel: '.$row["strassenname"].' for '.$s.' found' );
- array_push($str_schl_gem, $cnames[$i]);
- }
- }
- //select all streetkeys
- if (count($str_schl > 0)) {
- $v = array($h);
- $t = array('i');
- $sql = "SELECT DISTINCT name, hausnummer, zusatz, plz, post_ortsname, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(the_geom) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferSH.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferSH.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferSH.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferSH.") as maxy ";
- $sql .= "FROM hauskoordinaten ";
- $sql .= "WHERE hausnummer = $1 AND strschl_gesamt IN (";
-
- for($i=0; $i<count($str_schl); $i++){
- if($i > 0){$sql .= ",";}
- $sql .= "$".($i+2);
- array_push($v,$str_schl[$i]);
- array_push($t,'i');
- }
- $sql .= ")";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
-
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
-
-
-#$show = $row["name"]." ".$row["hausnummer"];
- if($row["zusatz"] != 'null'){
- # $show .= $row["zusatz"];
-
-$show = $row["name"]." ".$row["hausnummer"].$row["zusatz"];
-//$show = $row["name"]." ".$row["hausnummer"].$row["zusatz"]; TODO: exchange this, when the hauskoordinaten table is delivered in a homogenous encoding!
-}
- else
-{$show = $row["name"]." ".$row["hausnummer"];}
- $show .= ", " . $row["plz"]. " " . $row["post_ortsname"];
-
-
- stack_it($arraySH,"haus",$show,"sh",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
- }
- }
-
- }
- else {
- //is this 'else' obsolete?
- $sql = "SELECT DISTINCT name, hausnummer, zusatz, plz, post_ortsname, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(the_geom) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferSH.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferSH.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferSH.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferSH.") as maxy ";
- $sql .= "FROM hauskoordinaten ";
- $sql .= "WHERE name ILIKE $1 AND hausnummer = $2 ";
- $v = array("%".$s."%",$h);
- //$v = array($s."%",$h);
- $t = array('s','i');
- if($z){
- $sql .= "AND zusatz = $" . (count($v)+1);
- array_push($v,$z);
- array_push($t,'s');
- }
- if($p){
- $sql .= "AND plz = $" . (count($v)+1);
- array_push($v,$p);
- array_push($t,'i');
- }
- if($o){
- $sql .= "AND post_ortsname ILIKE $" . (count($v)+1);
- array_push($v,"%".$o."%");
- array_push($t,'s');
- }
- #$sql .= " GROUP BY the_geom, name, hausnummer, zusatz, plz, post_ortsname";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
-
- $show = $row["name"]." ".$row["hausnummer"];
- $e = new mb_exception('gaz_geom_mobile.php: streetname2: '.$row["name"]);
- //$show = $row["name"]." ".$row["hausnummer"]; TODO: see above
- if($row["zusatz"] != null){
- $show .= $row["zusatz"];
- }
- $show .= ", " . $row["plz"]. " " . $row["post_ortsname"];
- stack_it($arraySH,"haus",$show,"sh",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
- }
- return true;
-}
-//Wohnplatz
-function checkWP($plz,$name){
- global $bufferWP, $arrayWP, $arrayWPKey, $epsg;
- $v = array();
- $t = array();
- checkMinLength($name);
- $sql = "SELECT DISTINCT gemeinde_gem_teile, gem_schl_neu, postleitzahl,";
- $sql .= "SRID(the_geom) AS srid, AsGML(the_geom) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferWP.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferWP.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferWP.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferWP.") as maxy ";
- $sql .= "FROM wohnplatz WHERE ";
- if($plz == false){
- $sql .= "gemeinde_gem_teile_upper ILIKE $1 ";
- array_push($v,"%".$name."%");
- array_push($t,'s');
- }
- else if($name == false){
- $sql .= "postleitzahl = $1 ";
- array_push($v,$plz);
- array_push($t,'i');
- }
- else{
- $sql .= "postleitzahl = $1 AND gemeinde_gem_teile_upper ILIKE $2 ";
- array_push($v,$plz);
- array_push($t,'i');
- array_push($v,"%".$name."%");
- array_push($t,'s');
- }
- $sql .= "GROUP BY the_geom, gemeinde_gem_teile, gem_schl_neu, postleitzahl";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- $show = encode($row["gemeinde_gem_teile"]);
- $show.= " (Wohnplatz)";
- if(intval($row['postleitzahl'])> 1){ $show .= " (".$row['postleitzahl'].")"; }
- stack_it($arrayWP,"wohnplatz",$show,"wp",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- if(!in_array($row["gem_schl_neu"],$arrayWPKey)){
- array_push($arrayWPKey,$row["gem_schl_neu"]);
- }
- }
- return true;
-}
-function checkGfromWP(){
- global $arrayWPKey, $bufferG, $arrayG, $toleranceG, $epsg;
- if(count($arrayWPKey) == 0){
- return false;
- }
- $v = array();
- $t = array();
- $sql = "SELECT DISTINCT gemeinde_neu, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,$toleranceG)) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferG.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferG.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferG.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferG.") as maxy ";
- $sql .= "FROM gemeinden WHERE gem_schl_neu IN(";
- for($i=0; $i<count($arrayWPKey); $i++){
- if($i > 0){$sql .= ",";}
- $sql .= "$".($i+1);
- array_push($v,$arrayWPKey[$i]);
- array_push($t,'i');
- }
- $sql .= ") GROUP BY the_geom, gemeinde_neu";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayG,"gemeinde_neu",encode($row["gemeinde_neu"]." (Wohnplatz)"),"g",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-function checkG($str){
- global $bufferG, $arrayG, $toleranceG, $arrayWPKey, $epsg;
- checkMinLength($str);
- $tmp = array();
- $sql = "SELECT DISTINCT gemeinde_neu, gem_schl_neu, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,$toleranceG)) AS gml ,";
- $sql .= "(xmin(the_geom) - ".$bufferG.") as minx, ";
- $sql .= "(ymin(the_geom) - ".$bufferG.") as miny, ";
- $sql .= "(xmax(the_geom) + ".$bufferG.") as maxx, ";
- $sql .= "(ymax(the_geom) + ".$bufferG.") as maxy ";
- $sql .= "FROM gemeinden WHERE gemeinde_upper ILIKE $1 ";
- #$sql .= "GROUP BY the_geom, gemeinde, gem_schl_neu";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array("%".$str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayG,"gemeinde_neu",encode($row["gemeinde_neu"]." (Gemeinde)"),"g",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- $tmp[count($tmp)] = $row["gem_schl_neu"];
- }
- $arrayWPKey = array_diff($arrayWPKey,$tmp);
-}
-
-function checkK($str){
- global $bufferK, $arrayK, $toleranceK, $epsg;
- checkMinLength($str);
- $sql = "SELECT DISTINCT kreis, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceK.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferK.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferK.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferK.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferK.") as maxy ";
- $sql .= "FROM kreis_fl WHERE kreis_upper ILIKE $1 ";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array("%".$str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayK,"kreis",encode($row["kreis"]." (Landkreis)"),"k",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-function checkVg($str){
- global $bufferV, $arrayV, $toleranceV, $epsg;
- checkMinLength($str);
- $sql = "SELECT DISTINCT vg, ";
- $sql .= "SRID(the_geom) AS srid, AsGML(Simplify(the_geom,".$toleranceV.")) AS gml ,";
- $sql .= "(xmin(the_geom)-".$bufferV.") as minx, ";
- $sql .= "(ymin(the_geom)-".$bufferV.") as miny, ";
- $sql .= "(xmax(the_geom)+".$bufferV.") as maxx, ";
- $sql .= "(ymax(the_geom)+".$bufferV.") as maxy ";
- $sql .= "FROM vg_fl WHERE vg ILIKE $1 ";
- if (isset($epsg) && is_numeric($epsg) && intval($epsg) != 31466) {
- $sql = str_replace("the_geom", "transform(the_geom,".$epsg.")", $sql);
- }
- $v = array("%".$str."%");
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- stack_it($arrayV,"verbandsgemeinde",encode($row["vg"]." (Verbandsgemeinde)"),"vg",$row["srid"],$row["minx"],$row["miny"],$row["maxx"],$row["maxy"],$row["gml"]);
- }
-}
-function stack_it(&$stack,$category,$showtitle,$prefix,$srid,$minx,$miny,$maxx,$maxy,$gml){
- global $searchThruWeb;
- if (!$searchThruWeb) {
- $doc = new DOMDocument();
- $member = $doc->createElement("member");
- $doc->appendChild($member);
- $member->setAttribute('id',$prefix.count($stack));
- $fc = $doc->createElement("FeatureCollection");
- $member->appendChild($fc);
- $fc->setAttribute("xmlns:gml","http://www.opengis.net/gml");
- $bb = $doc->createElement("boundedBy");
- $fc->appendChild($bb);
- $box = $doc->createElement("Box");
- $bb->appendChild($box);
- $box->setAttribute('srsName',"EPSG:".$srid);
- $c = $doc->createElement("coordinates");
- $box->appendChild($c);
- $coords = $doc->createTextNode($minx.",".$miny." ".$maxx.",".$maxy);
- $c->appendChild($coords);
- $fm = $doc->createElement("featureMember");
- $fc->appendChild($fm);
- $wp = $doc->createElement($category);
- $fm->appendChild($wp);
- $title = $doc->createElement("title");
- $wp->appendChild($title);
- $ttitle = $doc->createTextNode($showtitle);
- $title->appendChild($ttitle);
- $geom = $doc->createElement("the_geom");
- $wp->appendChild($geom);
- $myNode = @simplexml_load_string($gml);
- $mySNode = dom_import_simplexml($myNode);
- $domNode = $doc->importNode($mySNode, true);
- $geom->appendChild($domNode);
- array_push($stack,$member);
- } else {
- //generate simple json objects as array elements
- $classJSON = new Mapbender_JSON;
- $returnJSON = new stdClass;
- $returnJSON->title = $showtitle;
- $returnJSON->category = $category;
- $returnJSON->minx = $minx;
- $returnJSON->miny = $miny;
- $returnJSON->maxx = $maxx;
- $returnJSON->maxy = $maxy;
- $returnJSON = $classJSON->encode($returnJSON);
- array_push($stack,$returnJSON);
- }
-}
-
-function null_output(){
- global $sstr, $arrayWP, $arrayG, $arrayK, $arraySH, $arraySTR, $arrayV;
- $doc = new DOMDocument('1.0');
- $doc->encoding = CHARSET;
- $result = $doc->createElement("result");
- $doc->appendChild($result);
- $ready = $doc->createElement('ready');
- $result->appendChild($ready);
- $tready = $doc->createTextNode("true");
- $ready->appendChild($tready);
- echo $doc->saveXML();
-}
-
-function null_json_output(){
- global $sstr, $arrayWP, $arrayG, $arrayK, $arraySH, $arraySTR, $arrayV;
- echo "{\"totalResultsCount\":0,\"geonames\":[]}";
-}
-
-
-
-
-
-function xml_output(){
- global $sstr, $arrayWP, $arrayG, $arrayK, $arraySH, $arraySTR, $arrayV, $searchThruWeb, $callback, $maxResults;
- if (!$searchThruWeb) {
- $doc = new DOMDocument('1.0');
- $doc->encoding = CHARSET;
- $result = $doc->createElement("result");
- $doc->appendChild($result);
-
- for($i=0; $i<count($arrayWP); $i++){
- $domNode = $doc->importNode($arrayWP[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arrayG); $i++){
- $domNode = $doc->importNode($arrayG[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arrayK); $i++){
- $domNode = $doc->importNode($arrayK[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arraySH); $i++){
- $domNode = $doc->importNode($arraySH[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arraySTR); $i++){
- $domNode = $doc->importNode($arraySTR[$i], true);
- $result->appendChild($domNode);
- }
- for($i=0; $i<count($arrayV); $i++){
- $domNode = $doc->importNode($arrayV[$i], true);
- $result->appendChild($domNode);
- }
- $ready = $doc->createElement('ready');
- $result->appendChild($ready);
- $tready = $doc->createTextNode("true");
- $ready->appendChild($tready);
- //if ($searchThruWeb) {
- // header("Content-type: application/xhtml+xml; charset=UTF-8");
- //}
- echo $doc->saveXML();
- } else {
- //generate json object with gml content
- $classJSON = new Mapbender_JSON;
- $returnJSON = new stdClass;
-
- $countGeonames = 0;
- $returnJSON->totalResultsCount = 0;
-
- for($i=0; $i<count($arrayK); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayK[$i]);
- $countGeonames++;
- if (countGeonames >= $maxResults) {
- }
- }
-
- for($i=0; $i<count($arrayV); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayV[$i]);
- $countGeonames++;
- }
-
- for($i=0; $i<count($arrayG); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayG[$i]);
- $countGeonames++;
- }
-
- for($i=0; $i<count($arraySTR); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arraySTR[$i]);
- $countGeonames++;
- }
-
- for($i=0; $i<count($arrayWP); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arrayWP[$i]);
- $countGeonames++;
- }
-
- for($i=0; $i<count($arraySH); $i++){
- if ($countGeonames >= $maxResults) {
- break;
- }
- $returnJSON->geonames[$countGeonames] = $classJSON->decode($arraySH[$i]);
- $countGeonames++;
- }
- $returnJSON->totalResultsCount = $countGeonames;
- if ($returnJSON->totalResultsCount == 0) {
- $returnJSON->geonames = array();
- }
- if (isset($callback) && $callback != '') {
- $returnJSON = $callback."(".$classJSON->encode($returnJSON).")";
- } else {
- $returnJSON = $classJSON->encode($returnJSON);
- }
-
- echo $returnJSON;
- }
-
-}
-function encode($s){
-# if(CHARSET == 'UTF-8'){
-# $s = utf8_encode($s);
-# }
- return $s;
-}
-function getPlz($str){
- $p = "/.*(\d{5}).*/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return $am[1];
- }
- else{
- return false;
- }
-}
-function getCity($str){
- $p = "/(^\d{5}){0,1}(.*)/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return trim($am[2]);
- }
- else{
- return false;
- }
-}
-function getNr($str){
- $p = "/.*[^0-9](\d{1,4})[^0-9]*/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return $am[(count($am)-1)];
- }
- else{
- return false;
- }
-}
-function getStrn($str){
- $p = "/^(\D+)\d/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return trim($am[1]);
- }
- else{
- return false;
- }
-}
-function getAppendix($str){
- $p = "/.*\d+.*(\D{1})/";
- $am = array();
- if(preg_match($p, $str, $am)){
- return $am[1];
- }
- else{
- return false;
- }
-}
-function getCKeysByName($city){
- global $ckeys;
- $city = "%".strtoupper(trim($city))."%";
- $sql = "SELECT gem_schl_neu FROM gis.wohnplatz ";
- $sql .= "WHERE gemeinde_gem_teile_upper ILIKE $1 ";
- $v = array($city);
- $t = array('s');
- $res = db_prep_query($sql,$v,$t);
- while($row = db_fetch_array($res)){
- array_push($ckeys, $row['gem_schl_neu']);
- }
-}
-?>
Deleted: trunk/mapbender/http/geoportal/geoportal_mobile.html
===================================================================
--- trunk/mapbender/http/geoportal/geoportal_mobile.html 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/geoportal_mobile.html 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,78 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
- <title>GeoPortal.rlp Mobile</title>
- <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0;">
- <meta name="apple-mobile-web-app-capable" content="yes">
- <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css">
- <script src="http://code.jquery.com/jquery-1.5.min.js"></script>
- <script src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js"></script>
- <link rel="stylesheet" href="http://www.openlayers.org/dev/examples/style.mobile.css" type="text/css">
- <link rel="stylesheet" href="http://www.openlayers.org/dev/examples/style.mobile-jq.css" type="text/css">
- <script src="http://www.openlayers.org/dev/OpenLayers.mobile.js"></script>
- <script src="../extensions/proj4js/lib/proj4js-combined.js"></script>
- <script src="../extensions/proj4js/lib/defs/EPSG25832.js"></script >
- <script src="../extensions/proj4js/lib/defs/EPSG4326.js"></script >
- <script src="mobile-base_rlp.js"></script>
- <script src="mobile-jq_rlp.js"></script>
- </head>
- <body>
- <h1 id="title">GeoPortal.rlp Mobile</h1>
- <div id="tags">
- mobile, jquery, geoportal.rlp, GeoPortal.rlp
- </div>
- <p id="shortdesc">
- OpenLayers Version des GeoPortal.rlp für mobile Endgeräte
- </p>
-
- <div data-role="page" id="mappage">
- <div data-role="content">
- <div id="map"></div>
- </div>
-
- <div data-role="footer">
- <a href="#searchpage" data-icon="search" data-role="button">Suche</a>
- <a href="#" id="locate" data-icon="locate" data-role="button">Positionierung</a>
- <a href="#layerspage" data-icon="layers" data-role="button">Ebenen</a>
- </div>
- <div id="navigation" data-role="controlgroup" data-type="vertical">
- <a href="#" data-role="button" data-icon="plus" id="plus"
- data-iconpos="notext"></a>
- <a href="#" data-role="button" data-icon="minus" id="minus"
- data-iconpos="notext"></a>
- </div>
- </div>
-
- <div data-role="page" id="searchpage">
- <div data-role="header">
- <h1>Suche</h1>
- </div>
- <div data-role="fieldcontain">
- <input type="search" name="query" id="query"
- value="" placeholder="Search for places"
- autocomplete="off"/>
- </div>
- <ul data-role="listview" data-inset="true" id="search_results"></ul>
- </div>
-
- <div data-role="page" id="layerspage">
- <div data-role="header">
- <h1>Ebenen</h1>
- </div>
- <div data-role="content">
- <ul data-role="listview" data-inset="true" data-theme="d" data-dividertheme="c" id="layerslist">
- </div>
- </div>
-
- <div id="popup" data-role="dialog">
- <div data-position="inline" data-theme="d" data-role="header">
- <h1>Details</h1>
- </div>
- <div data-theme="c" data-role="content">
- <ul id="details-list" data-role="listview">
- </ul>
- </div>
- </div>
- </body>
-</html>
Deleted: trunk/mapbender/http/geoportal/logo_breitband.png
===================================================================
--- trunk/mapbender/http/geoportal/logo_breitband.png 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/logo_breitband.png 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,28 +0,0 @@
-PNG
-
-
-IHDR ú % \Zõ tEXtSoftware Adobe ImageReadyqÉe< PLTE³:½@Ö¦³´³´ôÛâÖzÙj1BèµÃ½,Tééé´<R(âââõõõÌ\{ìÂÎë½Ê¬ '¤¢£Á7]íííÊRsۢ䩹lklÜÜÜà®æ®½Óq÷äéùíð꫼ÉÈÉîÊÔCAD¸E¶@æ²À¼SRU[mòÖÞtsuùêîåååÙÙÚdbdýùúÞ¬{z{ÖÖÖÎ`~ÏeàÑÖñÑÙLKM+*,ÐiüüüÒnÇIk#!$ÍÍÍóóó[[[<:=¼&OÃ@díÅЫt¿1XÁÁÁÆÅÆÑÑѸ?ª©ª®®Â<a¹¸¹øøøÂD㤶ɱ4ߪjqûúû·C2136ðÍ×ê¹Æࡲ{7½¼½áßౡ¸Wq°2Ü¥m)=ÇMm¸\vþýýûòô²7ÅEh»%N%&毿üôöÒdõßæJ\ðððíæèÕÎÐÁ¾À*66ÁMhº JÕwÔÆ˽>º"L¡ix±2(')ÿÿÿ¨ ÎÅɹHͧ9FEÈOpúïò647!"ÚG6:¯-¨B©3SROR979nmo,G㧸Ø#-.þüýü÷ø//0ÎÒÒ¿¾À}}맺HFH[QT:-,.¬#H⢳ËYxþûüùùù×¼(Q'$'W[]㥶¯ .yxy¸4GIK
-a_alpqNRT3;<qpr ÄÃÄÔÓÔÏÏЧ¦§òñòNMO^\_¶"?fegYXYÑÔÔÇÇÈ»»»w{|º8뮿ñÓÛ»0M÷ðòå«»íèéÈRn÷æëççè÷èìëæçÊVv¸ E>>?á±¼ KBGI֨䨸ÂH`hghËÊË_^_wvwUGK,%&SVV ÒÓÔðÏØ×}á¾È" ÆÈɬ«¬ê¢¶±3䡳µ>ÿÿÿ8 Uf tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ S÷%
- IDATxÚÄ{\S×À/DÂ+h &(¤Þ" b$bÃJeá±èÙ
-¶iAX[Àú´Z[zÁXMëúPâ®ÎºU76é,~6çckk;gçÞ$Ûsÿðó©å÷ù$¹÷þι÷~Ïïüç?DÖ×GàåäòÓØ.g-õÉ«q
-ÿØ.
iäs8
¡¸A¤ùþEâ§A7|QO&s±Ûr°}îæ7p°ä7¶ËÅrp«)67(&Y$ìÆ -
Ø.÷çñ ¯õ>XEb,9Õð²õ»& æô7°¸d:GÈaXÃU$t¥°
-_ß7Ièpe/yrq?V8BÎÃápÌÀ*Î'G°u|½dÐár*^3´ác]yÙ]g'.bA_ËðìÙ2á$¡Ãèï¢ð}²Ô«e!wâ»#³`[e`5!fþåIB«Ü¦ê\Õ¬ÈwÅß,ìâ.ÎÙ5$/¸2Ièð2kV6BÎÏà.üV'áAíÀÇM(ýû& ÝÐMßÕ,J#ñqN%[ðÖ
-ë"@@wC*à7Iè#Nçrz|FÎ8O.Àw¹Yï¸È;¿U´èË&
:Þ ð6ÙòåYä]®P·?FÈø.12cü$¡£$7)ù
-¾Ë]²_ÙÀAò×°à+X :&}ß[\NýB}Ú_ñen/Ù»¹:É3Bä/â*nàjcÃe7ú»+Wäb$çt÷¬([þ
9÷ \²±Ðµ¦ªþå×üØ9§PyHJqRÜk3|¯úªRÖ t_)Ò3ÕjcqÝx#äL®9äÀ/ï`^éF÷´µ8ŶØóÝýcÛo¢wè>Àìo9xèa]=®z²¨ÈÌf¤ÀSªªyEE¯ßÓ+©)²/3^rÆËÐùXgº=$Gèø4à³h\èñt·Ï1tû®wz;Â3tcûýí±÷Þã*U£D@&¢/S¼pálqI¯-\XÌÛ[+÷Z{o-2¤
- HW_> ѵ¸:ß²«þúD¥prE:³ÈÂ
-.«ÇÒ®EãêAE Y 0lÉ)vün<ÃfUBIPâ*Ki΢r¸}1<·2':Ñ],WX¸b{æ¿(&®(ÌItyϹEÑ9§fìhq¢w Ða@<îz|ÐäÚEÈÖþ+ÐÓ-3L*qÝr3/íÖjMn.%ñå?ô!sØ¡_2îÎóhc?yj1Mß@Ó;y¹%«Ýr0Õ[?I¼YÚBç§Ùæåd÷î´eYZ>]ÅÒØaëéI³ÝF÷³ôØû=iítÏ vðηY²ló
κÐ㬠¦m´4¹Ý5nôƵÏÔ@0È Ø ³¯xMü!Æ|/ûðö9ÌÆåí2~`#y'² O¾hiï<r$.:HwÎÎ96Bß^
-ýÓK¼§æ§ùä],Ya˲}·ßû¶ÅrÕ3éûW>Bô«?£-3>1BBì
üödïmgÏ·[zôCÈà~0IT8ô¢µ´¦+" uZ GÖI>Q$ÙêÖt¿bÞáüY\Uó
-³kâÜè,FÚé,¦tØf£0ýn7=]RÒÞpk,N[º:\`Êg·Í²Þú²[»záênúCÖC¢é®@¶µÀN:AÕ-Z@üçܦú/þIz{d`v*Anf\Q?¢7;#¢/àXÀµXI¨·qÊãpNôäUyHÎNïjG¾¾½ùY]ôûDvÒó]è7ówø;Ã+iÞ ÑsKüWæ;<hÙÁ¢;WZÃåå0é
-s¥ìWpWVöЫ¹@iø!z®êqǸ¥¢²ÑòBþ¿Ôÿ
-^áUÞIÏlbòÁá£I®t³äXôE5´VßæàFKË,¸?k=9c£c²xÞù{гλ=
-JOl{WìÁÎäØR>Îs¦½vWì#-¿C±UÏZ-WîåjB0èOç[Ü3~Gæ3nϼý\ªs´â¦ 7±é°4+#/yðJJ¿Î
îdå-í§×b×î}Ê°IɹY[a½kE_î|Açt$Ì£»V%¡ÄÎbÐÏN ï¤]+^=¥RùäÓ¯ ôt ·Ûg¾Ù@vi¬Tʾ
-ÍEîñhyw®ßß«pÍ×]è 'èO¶£gì¤;ÙµÔóÇÿíBÿf×ûmô|Ö½}Ú[ß|çf;ãÝ÷¢¿a±±UëÒtï§ÖQh0àÎÝ¢{ÑÕo>÷ö#®_?*d
-«ÙÆÕñµ^@´¦Î ÷
·±Öy·¸zc#^ãÛп¡o}i`äkF>þdà©P)ým§+;Ìèù(òöüæñ}ðO/}û34-:ùQä7ðÙMößéóú{'÷ =»gÓï½_ÿxSïÉ73>Xåôî Ü{Sû{S}vþåäòC¹ã«å·642dÎAy=ĵ_,r½¬1W$xÔ:~¶iªÿYëôZcUA
-ªmB<;°cã¿oÛªøñO²pÚÛ.yâaÅÜKLñ¦â¡-ÎË*.¡V]:Ê\¶þ±iºT¼¹oÖ>â<~î·¶¬ßðè¥ë»vÍ}1`Úß/ÍU¸ÛMxÑYÚ¯Ý9bèÒ
-^Ð!Ýd»ÌE¹¹ÌlÚ¡¡Vj«ÐÉÿ
-xGîr}XáñgʹúxÂ\kxZÛØèÕØØøÁèÛ=×Ë«(×ù//¯Fô)b®æ¢9úf~Ñ*Ä)*ÊrÙ#Ô¶±¨±øàrBÐdf:»9oÁtó÷#îC¼îésuïDQ~äX{gqlðÀõ z?^mm-o¶öåôJ £æÆù¥*ëöRö² è(Ó]ÐîéØ!¤CZ
¤×Yû*mLÕR+àG`µIת=,ÖQε|ó#D¬ntéÎe
-U§ÕÐ5³"]I tTSEUúÝÞZC N¢Bo&ä]`®m¯²³/Ci¾LW¾¬ÚÜjzk¡«¸º]=Oð Ñ73ñI,ãkc9ïËOaÐãLÏ>¯lÓï«ÆS:$D¡I¡tR¸¸X¢¶w
-¨;e}CÌEñQ^jïÖÕ¿4ÚbT¹¸®ãòæZ©Àó2ísD"a§áÉ
͵5ç!¾ZfÐ/kï>Ü#~Ù/IZÓÔß`;jýJ¯
-Õ\·U÷7ð5BÂ/u¬jT-û"Ʈޡ5§$Ûwùöó[cÚ.«ªÆ¨k2qQVMkS ¯2ªwm÷úÊúãK¹vs9ö¼µzjD!nVV*´ªoj3¥HÓCx¯Ï.¼VA
NI~£<<Ezg4Æn¬6Úå¾&ku(aW·©åh^ÕvE[Y0D,Ö
-s+j¬£zE(!o<° ¶¿; ÏÇ8Ü*+;áýB+*ì}uâä¾áñ|S)]Þ®+[oëöÝëz³*õ°êé5Pcq2ûJùûÂ×
ªç é;Sø:¡ÐN ¨1Á´No2+SÑ/à}õ¼ýÁ¡öÐÃ\è[ß°µéÌu(²ÙUñJ_Þ¿]kõ½öGy¿°*tÄ®YÐ;|åqvELðËQ_enÏÓ5\9¬ãÕý¥)S³7ÓÎAÄhì íSâõ¡¼+¨ñhuCøvÚ7>¸ª?ÜL<@ôûEoBV×ÏN§§f5§,Õµ|»hHX[¦Sâ):±4+e1¥¬¹&UÜÕ(Jv-¸YV"ê¸îNnb±3ãé®öéu¢ë¨±Ia*d«4!^Ù.>õc¢÷ïõ@ïHàúf'ÕÍDfM¶Sj²Ùn17
-ø²¦ñól¶9]5[µÍÌÚ9+V«¯ågÿRîéë±ÿÓ»,Tþ/À 0íwPo IEND®B`
\ No newline at end of file
Deleted: trunk/mapbender/http/geoportal/mobile-base_rlp.js
===================================================================
--- trunk/mapbender/http/geoportal/mobile-base_rlp.js 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/mobile-base_rlp.js 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,181 +0,0 @@
-// initialize map when page ready
-var map;
-var mapProj = new OpenLayers.Projection("EPSG:25832");
-var mapProjEpsgCode = '25832';
-var boundsProj = '293000,5417000,471000,5650000';
-var projUnits = 'm';
-var logo = "<img src='geoportal_logo.png' height='26' width='150' alt='Geoportal Logo'/>";
-var init = function (onSelectFeatureFunction) {
- var vector = new OpenLayers.Layer.Vector("Vector Layer", {});
- var geolocate = new OpenLayers.Control.Geolocate({
- id: 'locate-control',
- geolocationOptions: {
- enableHighAccuracy: false,
- maximumAge: 0,
- timeout: 7000
- }
- });
- // create map
- map = new OpenLayers.Map({
- div: "map",
- theme: null,
- projection: mapProj,
- units: projUnits,
- minResolution: 0.01,
- maxExtent: new OpenLayers.Bounds(
- 293000,5417000,471000,5650000
- ),
- controls: [
- new OpenLayers.Control.Attribution(),
- new OpenLayers.Control.TouchNavigation({
- dragPanOptions: {
- interval: 100,
- enableKinetic: true
- }
- }),
- geolocate
- // selectControl
- ],
- /* layers: [
- new OpenLayers.Layer.OSM("OpenStreetMap", null, {
- transitionEffect: 'resize'
- }),
- new OpenLayers.Layer.Bing({
- key: apiKey,
- type: "Road",
- // custom metadata parameter to request the new map style - only useful
- // before May 1st, 2011
- metadataParams: {
- mapVersion: "v1"
- },
- name: "Bing Road",
- transitionEffect: 'resize'
- }),
- new OpenLayers.Layer.Bing({
- key: apiKey,
- type: "Aerial",
- name: "Bing Aerial",
- transitionEffect: 'resize'
- }),
- new OpenLayers.Layer.Bing({
- key: apiKey,
- type: "AerialWithLabels",
- name: "Bing Aerial + Labels",
- transitionEffect: 'resize'
- }),
- vector,
- sprintersLayer
- ],*/
- layers : [
- new OpenLayers.Layer.WMS( "Luftbild RP",
- "http://geo4.service24.rlp.de/wms/dop40_geo4.fcgi?",
- {
- layers: "dop",
- format: "image/jpeg",
- transparent: "On",
- transitionEffect: 'resize'
- },
- {
- projection: mapProj,
- units: projUnits,
- numZoomLevels: 20,
- minScale: 0.1,
- maxScale: 10000000,
- singleTile: false,
- attribution: logo
- } ),
- new OpenLayers.Layer.WMS( "Relief RP",
- "http://www.gdi-rp-dienste2.rlp.de/cgi-bin/mapserv.fcgi?map=/data/umn/geoportal/relief_rp/rlp_relief.map&",
- {
- layers: "relief",
- format: "image/png; mode=24bit",
- transparent: "TRUE",
- transitionEffect: 'resize'
- },
- {
- projection: mapProj,
- units: projUnits,
- singleTile: true,
- minScale: 200000,
- maxScale: 100000000,
- 'isBaseLayer': false,
- alwaysInRange: true
-
- } ),
- new OpenLayers.Layer.WMS( "Rheinland-Pfalz Zusammenstellung",
- "http://www.gdi-rp-dienste2.rlp.de/cgi-bin/mapserv.fcgi?map=/data/umn/geoportal/karte_rp/rheinland-pfalz-gesamt2.map&",
- {
- layers: "ATKIS-Praes",
- format: "image/png",
- transparent: "TRUE",
- transitionEffect: 'resize'
- },
- {
- projection: mapProj,
- units: projUnits,
- singleTile: true,
- numZoomLevels: 20,
- minScale: 0.1,
- maxScale: 10000000,
- 'isBaseLayer': false,
- alwaysInRange: true
- } ),
- new OpenLayers.Layer.WMS( "Liegenschaftskarte 02/2010",
- "http://geo4.service24.rlp.de/wms/lika_basis.fcgi?",
- {
- layers: "likar:likar",
- format: "image/png",
- transparent: "TRUE",
- transitionEffect: 'resize'
- },
- {
- projection: mapProj,
- units: projUnits,
- singleTile: true,
- numZoomLevels: 20,
- minScale: 0.1,
- maxScale: 8000,
- 'isBaseLayer': false,
- alwaysInRange: true
-
- } ),
- vector
- ],
- zoom: 1
- });
- map.addControl(new OpenLayers.Control.Attribution());
- map.zoomToExtent(map.maxExtent);
- var style = {
- fillOpacity: 0.1,
- fillColor: '#000',
- strokeColor: '#f00',
- strokeOpacity: 0.6
- };
- geolocate.events.register("locationupdated", this, function(e) {
- vector.removeAllFeatures();
- vector.addFeatures([
- new OpenLayers.Feature.Vector(
- e.point,
- {},
- {
- graphicName: 'cross',
- strokeColor: '#f00',
- strokeWidth: 2,
- fillOpacity: 0,
- pointRadius: 10
- }
- ),
- new OpenLayers.Feature.Vector(
- OpenLayers.Geometry.Polygon.createRegularPolygon(
- new OpenLayers.Geometry.Point(e.point.x, e.point.y),
- e.position.coords.accuracy / 2,
- 50,
- 0
- ),
- {},
- style
- )
- ]);
- map.zoomToExtent(vector.getDataExtent());
- });
-};
Deleted: trunk/mapbender/http/geoportal/mobile-jq_rlp.js
===================================================================
--- trunk/mapbender/http/geoportal/mobile-jq_rlp.js 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/mobile-jq_rlp.js 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,151 +0,0 @@
-var selectedFeature = null;
-
-$(document).ready(function() {
-
- // Start with the map page
- if (window.location.hash && window.location.hash!='#mappage') {
- $.mobile.changePage('mappage');
- }
-
- // fix height of content
- function fixContentHeight() {
- var footer = $("div[data-role='footer']:visible"),
- content = $("div[data-role='content']:visible:visible"),
- viewHeight = $(window).height(),
- contentHeight = viewHeight - footer.outerHeight();
-
- if ((content.outerHeight() + footer.outerHeight()) !== viewHeight) {
- contentHeight -= (content.outerHeight() - content.height());
- content.height(contentHeight);
- }
- if (window.map) {
- map.updateSize();
- } else {
- // initialize map
- init(function(feature) {
- selectedFeature = feature;
- $.mobile.changePage($("#popup"), "pop");
- });
- }
- }
- $(window).bind("orientationchange resize pageshow", fixContentHeight);
- fixContentHeight();
- //init();
-
- // Map zoom
- $("#plus").click(function(){
- map.zoomIn();
- });
- $("#minus").click(function(){
- map.zoomOut();
- });
- $("#locate").click(function(){
- var control = map.getControlsBy("id", "locate-control")[0];
- if (control.active) {
- control.getCurrentLocation();
- } else {
- control.activate();
- }
- });
-
- $('div#popup').live('pageshow',function(event, ui){
- var li = "";
- for(var attr in selectedFeature.attributes){
- li += "<li><div style='width:25%;float:left'>" + attr + "</div><div style='width:75%;float:right'>"
- + selectedFeature.attributes[attr] + "</div></li>";
- }
- $("ul#details-list").empty().append(li).listview("refresh");
- });
-
- $('#searchpage').live('pageshow',function(event, ui){
- $('#query').bind('change', function(e){
- $('#search_results').empty();
- if ($('#query')[0].value === '') {
- return;
- }
- $.mobile.pageLoading();
-
- // Prevent form send
- e.preventDefault();
-
- var searchUrl = 'http://www.geoportal.rlp.de/mapbender/geoportal/gaz_geom_mobile.php?resultTarget=web&outputFormat=json&searchEPSG='+mapProjEpsgCode;
- searchUrl += '&searchText=' + $('#query')[0].value;
- $.getJSON(searchUrl, function(data) {
- $.each(data.geonames, function() {
- var place = this;
- $('<li>')
- .hide()
- .append($('<h2 />', {
- text: place.title
- }))
- .append($('<p />', {
- html: '<b>' + place.category + '</b> '
- }))
- .appendTo('#search_results')
- .click(function() {
- $.mobile.changePage('mappage');
- //generate new extent
- var bounds = new OpenLayers.Bounds(place.minx, place.miny, place.maxx, place.maxy);
- map.zoomToExtent(bounds);
- })
- .show();
- });
- $('#search_results').listview('refresh');
- $.mobile.pageLoading(true);
- });
- });
- // only listen to the first event triggered
- $('#searchpage').die('pageshow', arguments.callee);
- });
-
- $('#layerslist').listview();
- $('<li>', {
- "data-role": "list-divider",
- text: "Base Layers"
- })
- .appendTo('#layerslist');
- var baseLayers = map.getLayersBy("isBaseLayer", true);
- $.each(baseLayers, function() {
- addLayerToList(this);
- });
-
- $('<li>', {
- "data-role": "list-divider",
- text: "Overlay Layers"
- })
- .appendTo('#layerslist');
- var overlayLayers = map.getLayersBy("isBaseLayer", false);
- $.each(overlayLayers, function() {
- addLayerToList(this);
- });
- $('#layerslist').listview('refresh');
-
- map.events.register("addlayer", this, function(e) {
- addLayerToList(e.layer);
- });
-});
-
-function addLayerToList(layer) {
- var item = $('<li>', {
- "data-icon": "check",
- "class": layer.visibility ? "checked" : ""
- })
- .append($('<a />', {
- text: layer.name
- })
- .click(function() {
- $.mobile.changePage('mappage');
- if (layer.isBaseLayer) {
- layer.map.setBaseLayer(layer);
- } else {
- layer.setVisibility(!layer.getVisibility());
- }
- })
- )
- .appendTo('#layerslist');
- layer.events.on({
- 'visibilitychanged': function() {
- $(item).toggleClass('checked');
- }
- });
-}
Deleted: trunk/mapbender/http/geoportal/mod_digitize_tab_komserv.php
===================================================================
--- trunk/mapbender/http/geoportal/mod_digitize_tab_komserv.php 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/mod_digitize_tab_komserv.php 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,3114 +0,0 @@
-<?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");
-
-$e_target = $_GET["e_target"];
-?>
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="cache-control" content="no-cache">
-<meta http-equiv="pragma" content="no-cache">
-<meta http-equiv="expires" content="0">
-<?php
-echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';
-?>
-<title>Digitize</title>
-<?php
-$digitize_conf_filename = "digitize_default.conf";
-include '../include/dyn_css.php';
-?>
-<script type='text/javascript' src='../extensions/jquery-ui-1.7.2.custom/js/jquery-1.3.2.min.js'></script>
-<script type='text/javascript'>
-/**
- * Package: digitize
- *
- * Description:
- * Allows the user to digitize polygons, lines and points.
- *
- * Files:
- * - http/javascripts/mod_digitize_tab.php
- * - http/php/mod_digitize_messages.php
- * - http/css/digitize.css
- * - conf/digitize_default.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 ('<appId>','digitize',
- * > 2,1,'Digitize tool.','Digitize','iframe',
- * > '../javascripts/mod_digitize_tab.php?sessionID','frameborder = "0" ',
- * > 1,1,1,1,5,'','','iframe','','geometry.js','mapframe1','mapframe1',
- * > 'http://www.mapbender.org/Digitize');
- * >
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name,
- * > var_value, context, var_type) VALUES('<appId>', 'digitize', 'cssUrl',
- * > '../css/digitize.css', 'url to the style sheet of the mapframe' ,
- * > 'var');
- * >
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name,
- * > var_value, context, var_type) VALUES('<appId>', 'digitize',
- * > 'digitize_conf_filename', 'digitize_default.conf', '' ,'php_var');
- * >
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name,
- * > var_value, context, var_type) VALUES('<appId>', 'digitize',
- * > 'text css',
- * > 'digitizeGeometryList {position:absolute; top:50px; left:0px;} .digitizeGeometryListItem {color:#000000; font-size:10px;} body {font-family: Arial, Helvetica, sans-serif; font-size:12px; color:#ff00ff; background-color:#ffffff; margin-top: 0px; margin-left:0px;} .button {height:18px; width:32px;}',
- * > 'text css' ,'text/css');
- * >
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name,
- * > var_value, context, var_type) VALUES('<appId>', 'digitize',
- * > 'wfsCssUrl', '../css/mapbender.css', 'var' ,'var');
- *
- * Help:
- * http://www.mapbender.org/Digitize
- *
- * Maintainer:
- * http://www.mapbender.org/User:Christoph_Baudson
- *
- * Parameters:
- * cssUrl - path/filename of CSS which specifies the design of digitize
- * objects in the map do not change the default file, create your
- * own css file from the default file
- * text css - CSS text for the geometry list
- * wfsCssUrl - path/filename of CSS which specifies the design of the popup
- * which appears when a feature is saved or updated
- *
- * 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
- */
-
-//
-// Buttons
-//
-function addButtonDig(id, isOn, src, titleOff, titleOn, x, y) {
- buttonDig_id.push(id);
- buttonDig_on.push(isOn);
- buttonDig_src.push(src);
- buttonDig_title_off.push(titleOff);
- buttonDig_title_on.push(titleOn);
- buttonDig_x.push(x);
- buttonDig_y.push(y);
-}
-
-function htmlspecialchars(p_string) {
- p_string = p_string.replace(/&/g, '&');
- p_string = p_string.replace(/</g, '<');
- p_string = p_string.replace(/>/g, '>');
- p_string = p_string.replace(/"/g, '"');
- // p_string = p_string.replace(/'/g, ''');
- return p_string;
-};
-
-//default definition of image directory for digitize buttons, might
-//be overwritten with digitize conf data
-var buttonDig_imgdir = "../img/button_digitize/";
-var buttonDig_id = [];
-var buttonDig_on = [];
-var buttonDig_src = [];
-var buttonDig_title_off = [];
-var buttonDig_title_on = [];
-var buttonDig_x = [];
-var buttonDig_y = [];
-
-var mapWindow;
-var mapDomElement;
-var mapType = "";
-
-var DigitizeHistory = function () {
- var historyItemArray = [];
- var currentIndex = 0;
-
- this.addItem = function (obj) {
- if (typeof obj == "object"
- && obj.back && typeof obj.back === "function"
- && obj.forward && typeof obj.forward === "function"
- ) {
- for (var i = currentIndex; i < historyItemArray.length; i++) {
- delete historyItemArray[i];
- }
- historyItemArray.length = currentIndex;
- historyItemArray.push({
- back: obj.back,
- forward: obj.forward
- });
- return true;
- }
- return false;
- };
-
- this.back = function () {
- if (currentIndex > 0) {
- currentIndex --;
- historyItemArray[currentIndex].back();
- executeDigitizeSubFunctions();
- return true;
- }
- return false;
- };
-
- this.forward = function () {
- if (currentIndex < historyItemArray.length) {
- historyItemArray[currentIndex].forward();
- currentIndex ++;
- executeDigitizeSubFunctions();
- return true;
- }
- return false;
- };
-};
-
-var digitizeHistory = new DigitizeHistory();
-
-var registerAnotherFunction = function () {
- var mapIndex = parent.getMapObjIndexByName(mod_digitize_target);
- mapDomElement = parent.mb_mapObj[mapIndex].getDomElement();
- mapType = mapDomElement.tagName.toUpperCase();
- if (mapType == "DIV") {
- mapWindow = parent.window;
- }
- else if (mapType == "IFRAME") {
- mapWindow = mapDomElement.window;
- }
- else {
- new parent.Mb_warning("Could not set CSS for map in digitizing module.");
- }
-
- eventCloseGeometry = new parent.Mapbender.Event();
- eventCloseGeometry.register(function (obj) {
- d.close(obj.index);
- });
- if (openMetadataEditorAfterNewGeometryHasBeenCreated) {
- eventCloseGeometry.register(function (obj) {
- if (typeof obj !== "object") {
- return;
- }
- if (typeof obj.index !== "number") {
- return;
- }
- showWfs(obj.index);
- });
- }
-
- /**
- * Property: events
- *
- * Description:
- * Your callback functions receive an object with the
- * following attributes
- * - geometryIndex: index of feature in current feature collection
- * - feature: the <Mapbender.MultiGeometry>
- */
- parent.Mapbender.modules[mod_digitize_elName].events = {
- /**
- * Property: events.closeGeometry
- *
- * Description:
- * This <Mapbender.Event> is fired after a new geometry has been
- * digitized.
- */
- closeGeometry: eventCloseGeometry,
- /**
- * Property: events.beforeUpdateOrInsert
- *
- * Description:
- * This <Mapbender.Event> is fired before a feature is updated
- * or inserted by WFS-T.
- */
- beforeUpdateOrInsert: new parent.Mapbender.Event(),
- /**
- * Property: events.beforeUpdate
- *
- * Description:
- * This <Mapbender.Event> is fired before a feature is updated
- * by WFS-T.
- */
- beforeUpdate: new parent.Mapbender.Event(),
- /**
- * Property: events.beforeInsert
- *
- * Description:
- * This <Mapbender.Event> is fired before a feature is inserted
- * by WFS-T.
- */
- beforeInsert: new parent.Mapbender.Event(),
- /**
- * Property: events.openDialog
- *
- * Description:
- * This <Mapbender.Event> is fired before the user opens the dialog
- * for inserting or updating. Returning false in your callback prevents
- * the default dialog from popping up.
- */
- openDialog: new parent.Mapbender.Event(),
- /**
- * Property: events.clickDelete
- *
- * Description:
- * This <Mapbender.Event> is fired when the user clicks the button to
- * delete features by WFS-T
- */
- clickDelete: new parent.Mapbender.Event(),
- /**
- * Property: events.geometryInserted
- *
- * Description:
- * This <Mapbender.Event> is fired after a feature has been inserted
- * by WFS-T
- */
- geometryInserted: new parent.Mapbender.Event(),
- /**
- * Property: events.afterWfs
- *
- * Description:
- * This <Mapbender.Event> is fired after a feature has been inserted,
- * updated or deleted by WFS-T
- */
- afterWfs: new parent.Mapbender.Event(),
- /**
- * Property: events.mergeLines
- *
- * Description:
- * This <Mapbender.Event> is fired when 2 lines are merged to a single line,
- */
- mergeLines: new parent.Mapbender.Event()
- };
-
- eventCloseGeometry.register(function () {
- _currentGeomIndex = -1;
- });
-
- parent.Mapbender.modules[mod_digitize_elName].cancelAjaxRequest = false;
- parent.Mapbender.modules[mod_digitize_elName].cancelAjaxRequestMessage = "An error occured.";
-
- parent.Mapbender.modules[mod_digitize_elName].dataCheck = false;
-};
-
-
-<?php
-echo "var mod_digitize_target = '".$e_target."';";
-$digitizeConfFilenameAndPath = dirname(__FILE__) . "/../../conf/" . $digitize_conf_filename;
-if ($digitize_conf_filename && file_exists($digitizeConfFilenameAndPath)) {
- /*
- * @security_patch finc done
- */
- include(secure($digitizeConfFilenameAndPath));
-}
-?>
-if (typeof snapping === "undefined") {
- snapping = true;
-}
-
-var wfsWindow;
-var wfsConf = [];
-var d;
-var mod_digitize_width;
-var mod_digitize_height;
-var mod_digitizeEvent = false;
-var nonTransactionalHighlight;
-
-var button_point;
-var button_line;
-var button_polygon;
-var button_line_continue = "lineContinue";
-var button_move = "dragBasePoint";
-var button_insert = "setBasePoint";
-var button_delete = "delBasePoint";
-var button_clear = "clear";
-var button_split = "digitizeSplit";
-var button_merge = "digitizeMerge";
-var button_difference = "digitizeDifference";
-var button_line_merge = "mergeLine";
-var _currentGeomIndex = -1;
-
-var digitizeDivTag;
-
-var GeometryArray;
-var MultiGeometry = parent.MultiGeometry;
-var Geometry;
-var Point;
-var geomType;
-
-var msgObj;
-var featureTypeElementFormId = "featureTypeElementForm";
-
-try {if(mod_digitize_elName){}}catch(e) {mod_digitize_elName = "digitize";}
-try {if(nonTransactionalEditable){}}catch(e) {nonTransactionalEditable = false;}
-try {if(updatePointGeometriesInstantly){}}catch(e) {updatePointGeometriesInstantly = false;}
-try {if(addCloneGeometryButton){}}catch(e) {addCloneGeometryButton = false;}
-
-if (typeof featuresMustHaveUniqueId === "undefined") {
- var featuresMustHaveUniqueId = false;
-}
-
-if (typeof allowUndoPolygonBySnapping === "undefined") {
- var allowUndoPolygonBySnapping = false;
-}
-
-if (typeof openMetadataEditorAfterNewGeometryHasBeenCreated === "undefined") {
- var openMetadataEditorAfterNewGeometryHasBeenCreated = false;
-}
-
-
-var eventCloseGeometry;
-
-function toggleTabs(tabId) {
- if(!initialTab) {
- return;
- }
-
- var tabHeaders = wfsWindow.document.getElementsByTagName('a');
- var tabs = wfsWindow.document.getElementsByTagName('div');
-
- for(var i = 0; i < tabHeaders.length; i++) {
- if(tabHeaders[i].id.indexOf('tabheader') != -1) {
- tabHeaders[i].className = 'tabheader';
- }
- }
-
- for(var i = 0; i < tabs.length; i++) {
- if(tabs[i].className === 'tabcontent') {
- tabs[i].style.visibility = 'hidden';
- tabs[i].style.display = 'none';
- }
- }
-
- wfsWindow.document.getElementById('tabheader_' + tabId).className += ' active';
-
- wfsWindow.document.getElementById('tab_' + tabId).style.visibility = 'visible';
- wfsWindow.document.getElementById('tab_' + tabId).style.display = 'block';
-
- return false;
-}
-
-function showHelptext(helptextId) {
- hideHelptext();
- wfsWindow.document.getElementById('helptext' + helptextId).style.visibility = 'visible';
- wfsWindow.document.getElementById('helptext' + helptextId).style.display = 'block';
-
- return false;
-}
-
-function hideHelptext(helptextId) {
- if(helptextId) {
- wfsWindow.document.getElementById('helptext' + helptextId).style.visibility = 'hidden';
- wfsWindow.document.getElementById('helptext' + helptextId).style.display = 'none';
- }
-
- var helptext = wfsWindow.document.getElementsByTagName('div');
-
- for(var i = 0; i < helptext.length; i++) {
- if(helptext[i].className === 'helptext') {
- helptext[i].style.visibility = 'hidden';
- helptext[i].style.display = 'none';
- }
- }
-
- return false;
-}
-function getMousePosition(e) {
- var map = parent.getMapObjByName(mod_digitize_target);
-
- return map.getMousePosition(e);
-}
-
-
-function initializeDigitize () {
- d = new parent.GeometryArray();
- GeometryArray = parent.GeometryArray;
- Geometry = parent.Geometry;
- Point = parent.Point;
- geomType = parent.geomType;
- button_point = parent.geomType.point; //"Point";
- button_line = parent.geomType.line; //"Line";
- button_polygon = parent.geomType.polygon; //"Polygon";
-}
-
-/**
- * Append geometries from KML when KML has been loaded
- */
-function appendGeometryArrayFromKML () {
- try {
- parent.kmlHasLoaded.register(function(properties){
- d = new parent.GeometryArray();
- d.importGeoJSON(properties);
-// d = parent.geoJsonToGeometryArray(properties);
- executeDigitizeSubFunctions();
- });
- }
- catch (e) {
- var exc = new parent.Mb_warning(e);
- }
-}
-
-
-// ------------------------------------------------------------------------------------------------------------------------
-// --- polygon, line, point insertion (begin) ----------------------------------------------------------------------------------------------
-
-function appendGeometryArray(obj) {
- executeDigitizePreFunctions();
- d.union(obj, featuresMustHaveUniqueId);
- executeDigitizeSubFunctions();
-}
-
-function mod_digitize_go(e){
- // track mouse position
- var currentPos = getMousePosition(e);
- s.check(currentPos);
-}
-
-function mod_digitize_timeout(){
- var el = mapDomElement;
- $(el).unbind("mousedown")
- .unbind("mouseup")
- .unbind("mousemove");
-}
-
-var isLastLinePointSnapped = function (newPoint) {
- return d.get(_currentGeomIndex).geomType === parent.geomType.line
- && d.getGeometry(_currentGeomIndex,-1).count() > 1
- && d.getGeometry(_currentGeomIndex,-1).get(-1).equals(newPoint);
-};
-
-var innerPointSnapped = function (newPoint) {
- if (d.count() === 0) {
- return null;
- }
- var start = 1;
- if (d.getGeometry(_currentGeomIndex, -1).count() < 3) {
- start = 0;
- }
- for (var i = start; i < d.getGeometry(_currentGeomIndex, -1).count(); i++) {
- if (d.getGeometry(_currentGeomIndex,-1).get(i).equals(newPoint)) {
- return i;
- }
- }
- return null;
-};
-
-var isFirstPolygonPointSnapped = function (newPoint) {
- return d.get(_currentGeomIndex).geomType == parent.geomType.polygon
- && d.getGeometry(_currentGeomIndex,-1).count() >= 3
- && d.getGeometry(_currentGeomIndex,-1).get(0).equals(newPoint);
-};
-
-var editingPolygonAndThreePointsHaveBeenInserted = function () {
- return d.get(_currentGeomIndex).geomType == parent.geomType.polygon && d.getGeometry(_currentGeomIndex,-1).count() == 2;
-};
-
-var editingLineAndTwoPointsHaveBeenInserted = function () {
- return d.get(_currentGeomIndex).geomType == parent.geomType.line && d.getGeometry(_currentGeomIndex,-1).count() >= 1;
-};
-
-function mod_digitize_start(e){
- if (mod_digitizeEvent !== button_point
- && mod_digitizeEvent !== button_line
- && mod_digitizeEvent !== button_line_continue
- && mod_digitizeEvent !== button_polygon) {
-
- alert(msgObj.errorMessageNoGeometrySelected);
- return false;
- }
-
- (function () {
- //
- // get the last point the user digitized
- //
- var realWorldPos;
- var isSnapped = s.isSnapped();
- if (isSnapped) {
- realWorldPos = s.getSnappedPoint();
- s.clean();
- }
- else {
- var currentPos = getMousePosition(e);
- realWorldPos = parent.mapToReal(mod_digitize_target,currentPos);
- }
-
- var geometryType = mod_digitizeEvent;
- var currentPoint = realWorldPos;
- var currentEpsg = parent.mb_mapObj[parent.getMapObjIndexByName(mod_digitize_target)].epsg;
- var currentGeomIndex = _currentGeomIndex;
-
- if (mod_digitizeEvent === button_line_continue) {
- if (isSnapped) {
- // find corresponding line
- for (var i = 0; i < d.count(); i++) {
- var lastPointSnapped = false;
- var firstPointSnapped = false;
- if (d.get(i).geomType !== parent.geomType.line) {
- continue;
- }
- if (d.getPoint(i, -1, -1) === realWorldPos) {
- lastPointSnapped = true;
- }
- else if (d.getPoint(i, -1, 0) === realWorldPos) {
- firstPointSnapped = true;
- }
- else {
- continue;
- }
- if (firstPointSnapped) {
- // reverse line!
- // we can only add points to the end of the line, not insert them at the beginning
- var oldLine = parent.Mapbender.cloneObject(d.getGeometry(i, -1));
- var newLine = d.getGeometry(i, -1);
- var len = oldLine.count();
- for (var j = len-1; j >= 0; j--) {
- newLine.updatePointAtIndex(oldLine.get(j), len-j-1);
- }
- }
- // enable snapping to all points except
- // the ones from this line
- s.resetPoints();
- if (snapping) {
- s.store(d);
- for (var j = 0; j < d.get(i).count(); j++) {
- var currentLine = d.getGeometry(i, j);
- for (var k = 0; k < currentLine.count(); k++) {
- s.removePoint(currentLine.get(k));
- }
- }
- }
-
-
- // delete last point, will be added again below,
- // as the event has changed to "button_line"
- d.getGeometry(i, -1).del(-1);
- d.getGeometry(i, -1).reopen();
- currentGeomIndex = i;
- _currentGeomIndex = i;
-
- parent.mb_enableButton(d.get(i).geomType);
- break;
- }
- }
- // check if event is still "line continue",
- // as it might have changed
- if (mod_digitizeEvent === button_line_continue) {
- return;
- }
- }
- //
- // A new geometry has to be created
- //
- if (d.count() === 0 || (d.get(currentGeomIndex).count()> 0 && d.getGeometry(currentGeomIndex, -1).isComplete())) {
- digitizeHistory.addItem({
- // remove the entire multigeometry
- back: function () {
- s.resetPoints();
- d.del(currentGeomIndex);
- if (snapping) {
- s.store(d);
- }
- },
- // add the multigeometry to the geometry array
- forward: function () {
- if (snapping) {
- s.store(d);
- }
- parent.mb_enableButton(geometryType);
- d.addMember(geometryType);
- d.get(currentGeomIndex).addGeometry();
- d.getGeometry(currentGeomIndex,-1).setEpsg(currentEpsg);
- d.getGeometry(currentGeomIndex,-1).addPoint(realWorldPos);
- if (geometryType == parent.geomType.point){
- eventCloseGeometry.trigger({
- index: currentGeomIndex,
- geometry: d.get(currentGeomIndex)
- });
- parent.mb_disableThisButton(mod_digitizeEvent);
- }
- }
- });
- }
- //
- // a point is added to an existing multigeometry
- //
- else {
- var innerPointIndex = innerPointSnapped(realWorldPos);
- //
- // editing polygon and first point is snapped -> close polygon
- //
- if (isFirstPolygonPointSnapped(realWorldPos)) {
- digitizeHistory.addItem({
- back: function () {
- d.getGeometry(currentGeomIndex, -1).reopen();
- parent.mb_enableButton(d.get(currentGeomIndex).geomType);
- // activate button
- },
- forward: function () {
- // close the polygon
- eventCloseGeometry.trigger({
- index: currentGeomIndex,
- geometry: d.get(currentGeomIndex)
- });
- parent.mb_disableThisButton(mod_digitizeEvent);
- }
- });
- }
- //
- // editing line and last point is snapped -> close line
- //
- else if (isLastLinePointSnapped(realWorldPos)) {
- digitizeHistory.addItem({
- back: function () {
- d.getGeometry(currentGeomIndex, -1).reopen();
- parent.mb_enableButton(d.get(currentGeomIndex).geomType);
- },
- forward: function () {
- // close the polygon
- eventCloseGeometry.trigger({
- index: currentGeomIndex,
- geometry: d.get(currentGeomIndex)
- });
- parent.mb_disableThisButton(mod_digitizeEvent);
- }
- });
- }
- //
- // another point is snapped (undo for polygons!)
- //
- else if (innerPointIndex !== null && allowUndoPolygonBySnapping && geometryType == parent.geomType.polygon) {
- while (d.getGeometry(currentGeomIndex, -1).count() > innerPointIndex) {
- digitizeHistory.back();
- }
- // avoids the history.forward()!
- return;
- }
- //
- // just add the point
- //
- else {
- if (editingPolygonAndThreePointsHaveBeenInserted()) {
- digitizeHistory.addItem({
- back: function () {
- s.removePoint(d.getPoint(currentGeomIndex, -1, 0));
- if (allowUndoPolygonBySnapping && geometryType == parent.geomType.polygon) {
- s.removePoint(d.getPoint(currentGeomIndex, -1, -1));
- }
- d.getGeometry(currentGeomIndex, -1).del(-1);
- },
- forward: function () {
- d.getGeometry(currentGeomIndex,-1).addPoint(realWorldPos);
- s.add(d.getPoint(currentGeomIndex, -1, 0));
- if (allowUndoPolygonBySnapping && geometryType == parent.geomType.polygon) {
- s.add(d.getPoint(currentGeomIndex, -1, -1));
- }
- }
- });
- }
- else if (editingLineAndTwoPointsHaveBeenInserted()) {
- digitizeHistory.addItem({
- back: function () {
- s.removePoint(d.getPoint(currentGeomIndex, -1, -1));
- s.add(d.getPoint(currentGeomIndex, -1, -2));
- d.getGeometry(currentGeomIndex, -1).del(-1);
- },
- forward: function () {
- d.getGeometry(currentGeomIndex,-1).addPoint(realWorldPos);
- s.removePoint(d.getPoint(currentGeomIndex, -1, -2));
- s.add(d.getPoint(currentGeomIndex, -1, -1));
- }
- });
- }
- else {
- digitizeHistory.addItem({
- back: function () {
- if (allowUndoPolygonBySnapping && geometryType == parent.geomType.polygon) {
- s.removePoint(d.getPoint(currentGeomIndex, -1, -1));
- }
- if (geometryType === parent.geomType.line) {
- d.getGeometry(currentGeomIndex, -1).del(-1);
- }
- else {
- d.getGeometry(currentGeomIndex, -1).del(-1);
- }
- },
- forward: function () {
- d.getGeometry(currentGeomIndex, -1).addPoint(realWorldPos);
- if (allowUndoPolygonBySnapping && geometryType == parent.geomType.polygon) {
- s.add(d.getPoint(currentGeomIndex, -1, -1));
- }
- }
- });
- }
- }
- }
- digitizeHistory.forward();
- })();
-
- return true;
-}
-// --- polygon, line, point insertion (begin) ----------------------------------------------------------------------------------------------
-// ------------------------------------------------------------------------------------------------------------------------
-
-// ------------------------------------------------------------------------------------------------------------------------
-// --- basepoint handling (begin) -----------------------------------------------------------------------------------------
-
-var basepointObject = false;
-var basepointMemberIndex = null;
-var basepointGeometryIndex = null;
-var basepointRingIndex = null;
-var basepointPointIndex = null;
-var basepointDragActive = false;
-
-function handleBasepoint(obj,memberIndex, geometryIndex, ringIndex, pointIndex){
- if (!(
- mod_digitizeEvent == button_move ||
- mod_digitizeEvent == button_insert ||
- mod_digitizeEvent == button_delete)
- ) {
- return false;
- }
-
- basepointObject = obj;
- basepointMemberIndex = memberIndex;
- basepointGeometryIndex = geometryIndex;
-
- if (pointIndex == undefined) {
- pointIndex = ringIndex;
- basepointRingIndex = undefined;
- }
- else {
- basepointRingIndex = ringIndex;
- }
- basepointPointIndex = pointIndex;
-
- if(mod_digitizeEvent == button_move){
- mod_digitize_timeout();
- basepointObject.style.cursor = 'move';
- parent.$(basepointObject).bind("mousedown", parent.frames[mod_digitize_elName].selectBasepoint);
- }
-
- if(mod_digitizeEvent == button_delete){
- mod_digitize_timeout();
- basepointObject.style.cursor = 'crosshair';
- parent.$(basepointObject).bind("mousedown", parent.frames[mod_digitize_elName].deleteBasepoint);
- }
-}
-
-function convertLinepointToBasepoint(obj, memberIndex, geomIndex, ringIndex, pointIndex){
- if(!(mod_digitizeEvent == button_insert)){ return false; }
-
- if(mod_digitizeEvent == button_insert){
- mod_digitize_timeout();
- obj.style.cursor = 'crosshair';
- $(obj).unbind("click").click(function (e){
- insertBasepoint(e);
- return false;
- });
-
- basepointObject = obj;
- basepointMemberIndex = memberIndex;
- basepointGeometryIndex = geomIndex;
- basepointRingIndex = ringIndex;
- basepointPointIndex = pointIndex;
- }
-}
-
-function insertBasepoint(e){
- var i = basepointMemberIndex;
- var j = basepointGeometryIndex;
- var k = basepointRingIndex;
- var l = basepointPointIndex;
-
- var currentPos = getMousePosition(e);
-
- var ind = parent.getMapObjIndexByName(mod_digitize_target);
- var p = parent.mb_mapObj[ind].convertPixelToReal(new Point(currentPos.x, currentPos.y));
-
- if (k == undefined) {
- d.getGeometry(i,j).addPointAtIndex(p, l);
- }
- else {
- d.getGeometry(i,j).innerRings.get(k).addPointAtIndex(p, l);
- }
-
- executeDigitizeSubFunctions();
-}
-
-function deleteBasepoint(){
- var i = basepointMemberIndex;
- var j = basepointGeometryIndex;
- var k = basepointRingIndex;
- var l = basepointPointIndex;
-
- if (k != undefined) {
- d.delAllPointsLike(d.getPoint(i, j, k, l));
- }
- else {
- d.delAllPointsLike(d.getPoint(i, j, l));
- }
-
- executeDigitizeSubFunctions();
-}
-
-function selectBasepoint(e){
- if(!basepointDragActive && mod_digitizeEvent == button_move){
- basepointDragActive = true;
- if (snapping) {
- s.store(d, d.getPoint(basepointMemberIndex, basepointGeometryIndex, basepointPointIndex));
- }
- // replace basepoint by transparent blob
- basepointObject.style.width = mod_digitize_width + "px";
- basepointObject.style.height = mod_digitize_height + "px";
- basepointObject.style.left = "0px";
- basepointObject.style.top = "0px";
-
- if (parent.ie) {
- // ie cannot handle backgroundColor = 'transparent'
- basepointObject.style.background = "url(../img/transparent.gif)";
- }
- else{
- basepointObject.style.backgroundColor = 'transparent';
- }
-
- parent.$(basepointObject).bind("mouseup", releaseBasepoint);
- parent.$(basepointObject).bind("mousemove", dragBasepoint);
- }
-}
-
-function dragBasepoint(e){
- if(basepointDragActive){
- var currentPos = getMousePosition(e);
- var res = s.check(currentPos);
-
- }
-}
-
-function updateAllPointsOfNonTransactionalLike(oldP, newP){
- for (var i = 0; i < d.count(); i++) {
- if (isTransactional(d.get(i))) {
- d.get(i).updateAllPointsLike(oldP, newP);
- }
- }
-}
-
-
-function releaseBasepoint(e){
-
- var i = basepointMemberIndex;
- var j = basepointGeometryIndex;
- var k = basepointRingIndex;
- var l = basepointPointIndex;
- basepointDragActive = false;
-
- var currentPos = getMousePosition(e);
- var basepointDragEnd = currentPos;
- parent.$(basepointObject).unbind("mousedown");
- var ind = parent.getMapObjIndexByName(mod_digitize_target);
- var p = parent.mb_mapObj[ind].convertPixelToReal(new Point(basepointDragEnd.x, basepointDragEnd.y));
-
- var oldPoint;
- if (k == undefined) {
- oldPoint = parent.Mapbender.cloneObject(d.getPoint(i,j,l));
- }
- else {
- oldPoint = parent.Mapbender.cloneObject(d.getPoint(i,j,k,l));
- }
- if (s.isSnapped()) {
- var snappedPoint = parent.Mapbender.cloneObject(s.getSnappedPoint());
- if (!nonTransactionalEditable) {
- updateAllPointsOfNonTransactionalLike(oldPoint, snappedPoint);
- }
- else {
- d.updateAllPointsLike(oldPoint, snappedPoint);
- }
- s.clean();
- }
- else {
- if (!nonTransactionalEditable) {
- updateAllPointsOfNonTransactionalLike(oldPoint, p);
- }
- else {
- d.updateAllPointsLike(oldPoint, p);
- }
- }
- basepointMemberIndex = null;
- basepointGeometryIndex = null;
- basepointPointIndex = null;
-
- executeDigitizeSubFunctions();
-
- var isPoint = d.get(i).geomType === parent.geomType.point;
- var hasFid = d.get(i).e.getElementValueByName("fid") !== false;
- if (mod_digitizeEvent == button_move &&
- updatePointGeometriesInstantly &&
- isPoint &&
- hasFid) {
-
- dbGeom("update", i, function () {
- d.del(i);
- });
- }
-}
-// --- basepoint handling (end) -----------------------------------------------------------------------------------------
-// ------------------------------------------------------------------------------------------------------------------------
-
-// ------------------------------------------------------------------------------------------------------------------------
-// --- registered functions (begin) ---------------------------------------------------------------------------------------
-
-function registerDigitizePreFunctions(stringFunction){
- mod_digitizePreFunctions[mod_digitizePreFunctions.length] = stringFunction;
-}
-
-function registerDigitizeSubFunctions(stringFunction){
- mod_digitizeSubFunctions[mod_digitizeSubFunctions.length] = stringFunction;
-}
-
-function executeDigitizeSubFunctions(){
- for(var i=0; i<mod_digitizeSubFunctions.length; i++){
- eval(mod_digitizeSubFunctions[i]);
- }
-}
-
-function executeDigitizePreFunctions(){
- for(var i=0; i<mod_digitizePreFunctions.length; i++){
- eval(mod_digitizePreFunctions[i]);
- }
-}
-
-function completeInitialization() {
- registerAnotherFunction();
- initializeDigitize();
- setStyleForTargetFrame();
- checkDigitizeTag();
- initialiseSnapping();
-// appendGeometryArrayFromKML();
- if (!nonTransactionalEditable) {
- initialiseHighlight();
- }
- initialiseMeasure();
- getMessages();
-}
-
-function registerFunctions(){
-
- mod_digitizePreFunctions = [];
- mod_digitizeSubFunctions = [];
- registerDigitizePreFunctions("updateExtent()");
- registerDigitizePreFunctions("drawDashedLine()");
- registerDigitizeSubFunctions("updateListOfGeometries()");
- registerDigitizeSubFunctions("drawDashedLine()");
-
- if (parent.Mapbender.events.init.done) {
- completeInitialization();
- }
- else {
- parent.Mapbender.events.init.register(completeInitialization);
- }
- parent.eventLocalize.register(function() {
- getMessages();
- });
-
- parent.eventAfterMapRequest.register(function () {
- updateExtent();
- });
- parent.mb_registerWfsWriteSubFunctions(function(){parent.zoom(mod_digitize_target, true, 0.999);});
-}
-
-function checkDigitizeTag(){
- var digitizeTagName = "digitizeDiv";
- var digitizeTagStyle;
-
-
- if (mapType == "DIV") {
-
- digitizeTagStyle = {"z-index":digitizeTransactionalZIndex, "font-size":"10px"};
- digitizeDivTag = new parent.DivTag(digitizeTagName, "", digitizeTagStyle, mapDomElement);
- }
- else {
- digitizeTagStyle = {"position":"absolute", "top":"0px", "left":"0px", "z-index":digitizeTransactionalZIndex, "font-size":"10px"};
- digitizeDivTag = new parent.DivTag(digitizeTagName, mod_digitize_target, digitizeTagStyle);
- }
- parent.mb_registerPanSubElement(digitizeTagName);
- parent.mb_registerSubFunctions("window.frames['"+ mod_digitize_elName + "'].drawDashedLine()");
-}
-
-
-function setStyleForTargetFrame(){
- var cssLink = mapWindow.document.createElement("link");
- var cssHead = mapWindow.document.getElementsByTagName("head")[0];
- cssLink.setAttribute("href", cssUrl);
- cssLink.setAttribute("type", "text/css");
- cssLink.setAttribute("rel", "stylesheet");
- cssHead.appendChild(cssLink);
-}
-
-function initialiseSnapping(){
- s = new parent.Snapping(mod_digitize_target, snappingTolerance, snappingColor, snappingHighlightZIndex);
-}
-function initialiseHighlight(){
- nonTransactionalHighlight = new parent.Highlight([mod_digitize_target], "nonTransactional", {"position":"absolute", "top":"0px", "left":"0px", "z-index":digitizeNonTransactionalZIndex}, nonTransactionalLineWidth);
-}
-function initialiseMeasure(){
- if (mapType == "DIV") {
- measureDivTag = new parent.DivTag(measureTagName, "", measureTagStyle);
- }
- else {
- measureDivTag = new parent.DivTag(measureTagName, measureTagTarget, measureTagStyle);
- }
- parent.mb_registerSubFunctions("window.frames['"+ mod_digitize_elName + "'].updateMeasureTag()");
-}
-// --- registered functions (end) -----------------------------------------------------------------------------------------
-// ------------------------------------------------------------------------------------------------------------------------
-
-
-function updateMeasureTag () {
- if (d.count() > 0 ) {
- if (d.get(_currentGeomIndex).count() > 0) {
- if (d.getGeometry(_currentGeomIndex, -1).count() > 0) {
- if (mod_digitizeEvent == button_line || mod_digitizeEvent == button_polygon) {
- var measureString = "";
- measureString += msgObj.measureTagLabelCurrent + d.getGeometry(_currentGeomIndex, -1).getCurrentDist(measureNumberOfDigits) + "<br>";
- measureString += msgObj.measureTagLabelTotal + d.getGeometry(_currentGeomIndex, -1).getTotalDist(measureNumberOfDigits);
- measureDivTag.write(measureString);
- return true;
- }
- }
- }
- }
- measureDivTag.clean();
-}
-
-
-
-// ------------------------------------------------------------------------------------------------------------------------
-// --- button handling (begin) --------------------------------------------------------------------------------------------
-
-function displayButtons(){
- for (var i = 0 ; i < buttonDig_id.length ; i ++) {
- if (parseInt(buttonDig_on[i])==1) {
- var divTag = document.createElement("div");
- divTag.setAttribute("id", "div_" + buttonDig_id[i]);
-// FIREFOX
- document.getElementById("digButtons").appendChild(divTag);
-
-//IE WORKAROUND, WORKS ALSO FOR FIREFOX
- var tagContent = "<div style='position:absolute; top:"+buttonDig_y[i]+"px; left:"+buttonDig_x[i]+"px;'><img name=\""+buttonDig_id[i]+"\" onmouseover=\"parent.mb_regButton_frame('initDigButton', mod_digitize_elName, "+i+");\" id=\""+buttonDig_id[i]+"\" title=\""+buttonDig_title_off[i]+"\" src=\""+buttonDig_imgdir+buttonDig_src[i]+"\"></div>";
- parent.writeTag(mod_digitize_elName,"div_" + buttonDig_id[i],tagContent);
- }
- }
-}
-
-function updateButtons() {
- for (var i = 0 ; i < buttonDig_id.length ; i ++) {
- if (parseInt(buttonDig_on[i])==1) {
- var currentButton = document.getElementById(buttonDig_id[i]);
- var currentStatus = buttonDig_id[i].status;
- var currentTitle = "";
- switch (buttonDig_id[i]) {
- case "point":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelPointOn;
- }
- else {
- currentTitle = msgObj.buttonLabelPointOff;
- }
- break;
- case "line":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelLineOn;
- }
- else {
- currentTitle = msgObj.buttonLabelLineOff;
- }
- break;
- case "lineContinue":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelLineContinueOn;
- }
- else {
- currentTitle = msgObj.buttonLabelLineContinueOff;
- }
- break;
- case "polygon":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelPolygonOn;
- }
- else {
- currentTitle = msgObj.buttonLabelPolygonOff;
- }
- break;
- case "dragBasePoint":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelMoveBasepointOn;
- }
- else {
- currentTitle = msgObj.buttonLabelMoveBasepointOff;
- }
- break;
- case "setBasePoint":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelInsertBasepointOn;
- }
- else {
- currentTitle = msgObj.buttonLabelInsertBasepointOff;
- }
- break;
- case "delBasePoint":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelDeleteBasepointOn;
- }
- else {
- currentTitle = msgObj.buttonLabelDeleteBasepointOff;
- }
- break;
- case "clear":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelClearListOn;
- }
- else {
- currentTitle = msgObj.buttonLabelClearListOff;
- }
- break;
- case "digitizeSplit":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelSplitOn;
- }
- else {
- currentTitle = msgObj.buttonLabelSplitOff;
- }
- break;
- case "digitizeMerge":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelMergeOn;
- }
- else {
- currentTitle = msgObj.buttonLabelMergeOff;
- }
- break;
- case "digitizeDifference":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelDifferenceOn;
- }
- else {
- currentTitle = msgObj.buttonLabelDifferenceOff;
- }
- break;
- case "mergeLine":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelMergeLineOn;
- }
- else {
- currentTitle = msgObj.buttonLabelMergeLineOff;
- }
- break;
- }
- currentButton.title = currentTitle;
- }
- }
-}
-
-function initDigButton(ind, pos){
- parent.mb_button[ind] = document.getElementById(buttonDig_id[pos]);
- parent.mb_button[ind].img_over = buttonDig_imgdir + buttonDig_src[pos].replace(/_off/,"_over");
- parent.mb_button[ind].img_on = buttonDig_imgdir + buttonDig_src[pos].replace(/_off/,"_on");
- parent.mb_button[ind].img_off = buttonDig_imgdir + buttonDig_src[pos];
- parent.mb_button[ind].title_on = buttonDig_title_on[pos];
- parent.mb_button[ind].title_off = buttonDig_title_off[pos];
- parent.mb_button[ind].status = 0;
- parent.mb_button[ind].elName = buttonDig_id[pos];
- parent.mb_button[ind].fName = "";
- parent.mb_button[ind].go = new Function ("digitizeEnable(parent.mb_button["+ind+"])");
- parent.mb_button[ind].stop = new Function ("digitizeDisable(parent.mb_button["+ind+"])");
-}
-
-function digitizeEnable(obj) {
- if (obj.id == button_move || obj.id == button_insert || obj.id == button_delete) {
- mod_digitizeEvent = obj.id;
- executeDigitizePreFunctions();
- }
- else if (obj.id == button_point || obj.id == button_line ||
- obj.id == button_polygon || obj.id == button_clear ||
- obj.id == button_split || obj.id == button_merge ||
- obj.id == button_difference || obj.id == button_line_continue ||
- obj.id == button_line_merge){
-
- var el = mapDomElement;
- $(el).mousemove(function (e) {
- mod_digitize_go(e);
- }).mousedown(function (e) {
- mod_digitize_start(e);
- });
-
-
- mod_digitizeEvent = obj.id;
-
- //get a first snapping point for digitizing
- if (mod_digitizeEvent == button_point || mod_digitizeEvent == button_line || mod_digitizeEvent == button_polygon || mod_digitizeEvent == button_insert ) {
- s.resetPoints();
- if (snapping) {
- s.store(d);
- }
- }
-
- if (mod_digitizeEvent == button_point || mod_digitizeEvent == button_line || mod_digitizeEvent == button_polygon || mod_digitizeEvent == button_insert ) {
- //
- // complete a previously unfinished geometry
- //
- (function () {
- var currentGeometryDoesNotCorrespondToTheCurrentButton =
- (d.count() > 0 && d.get(_currentGeomIndex).count() > 0 &&
- !d.get(_currentGeomIndex).get(-1).isComplete() &&
- mod_digitizeEvent !== d.get(_currentGeomIndex).geomType);
- var currentGeometryType = mod_digitizeEvent;
-
- if (currentGeometryDoesNotCorrespondToTheCurrentButton) {
- var currentEpsg = parent.mb_mapObj[parent.getMapObjIndexByName(mod_digitize_target)].epsg;
- digitizeHistory.addItem({
- back: function(){
- s.resetPoints();
- d.del(_currentGeomIndex);
- if (snapping) {
- s.store(d);
- }
- d.getGeometry(_currentGeomIndex, -1).reopen();
- },
- forward: function(){
- d.close(-1);
- if (snapping) {
- s.store(d);
- }
- d.addMember(currentGeometryType);
- d.get(_currentGeomIndex).addGeometry();
- d.getGeometry(_currentGeomIndex,-1).setEpsg(currentEpsg);
- }
- });
- digitizeHistory.forward();
- }
- })();
-
- }
-
- executeDigitizePreFunctions();
- if (obj.id == button_polygon) {
- // close previous open polygons
- if (d.count() > 0 && d.get(_currentGeomIndex).count() > 0 && !d.get(_currentGeomIndex).get(-1).isComplete()) {
- if (d.get(_currentGeomIndex).geomType !== parent.geomType.polygon) {
-// d.close();
-// executeDigitizeSubFunctions();
- }
- else {
- s.add(d.getPoint(-1, -1, 0));
- }
- }
- }
- else if (obj.id == button_line) {
- if (d.count() > 0 && d.get(_currentGeomIndex).count() > 0 && !d.get(_currentGeomIndex).get(-1).isComplete()) {
- if (d.get(_currentGeomIndex).geomType != parent.geomType.line) {
-// d.close();
-// executeDigitizeSubFunctions();
- }
- else {
-// s.add(d.getPoint(-1, -1, -1));
- }
- }
- }
- else if (obj.id == button_line_continue) {
- s.resetPoints();
- for (var i = 0; i < d.count(); i++) {
- if (d.get(i).geomType !== parent.geomType.line) {
- continue;
- }
- s.add(d.getPoint(i, -1, 0));
- s.add(d.getPoint(i, -1, -1));
- }
- }
- else if (obj.id == button_clear) {
- var clear = confirm(msgObj.messageConfirmDeleteAllGeomFromList);
- if (clear) {
- d = new parent.GeometryArray();
- s.resetPoints();
- parent.mb_disableThisButton(mod_digitizeEvent);
- digitizeHistory = new DigitizeHistory();
- }
- }
- else if (obj.id == button_merge) {
- var applicable = (d.count() > 1);
-
- var polygonTextArray = [];
- for (var i = 0; i < d.count(); i++) {
- if (d.get(i).geomType != parent.geomType.polygon) {
- applicable = false;
- polygonTextArray = [];
- break;
- }
- polygonTextArray.push(d.get(i).toText());
- }
-
- if (!applicable) {
- alert(msgObj.messageErrorMergeNotApplicable);
- parent.mb_disableThisButton(mod_digitizeEvent);
- return false;
- }
-
- parent.mb_ajax_post("../php/mod_digitize_mergePolygon.php", {polygons: polygonTextArray.join(";")}, function(json, status) {
- var response = json;
- var polygon = response.polygon;
- var mapIndex = parent.getMapObjIndexByName(mod_digitize_target);
- d.importGeometryFromText(polygon, parent.mb_mapObj[mapIndex].epsg);
-
- // remove the original polygons
- var len = d.count();
- for (var i = 0; i < len-1; i++) {
- d.del(0);
- }
- parent.mb_disableThisButton(mod_digitizeEvent);
- });
- }
- else if (obj.id == button_split) {
- var applicable = (d.count() == 2) &&
- (
- d.get(0).geomType == parent.geomType.polygon ||
- d.get(0).geomType == parent.geomType.line
- ) && (d.get(1).geomType == parent.geomType.line);
- if (!applicable) {
- alert(msgObj.messageErrorSplitNotApplicable);
- parent.mb_disableThisButton(mod_digitizeEvent);
- return false;
- }
-
- var splitCallback = function (json, status) {
- var response = json;
- var resultArray = response.geometries;
- var wfsConfId = d.get(0).wfs_conf;
- var mapIndex = parent.getMapObjIndexByName(mod_digitize_target);
- for (var i in resultArray) {
- d.importGeometryFromText(resultArray[i], parent.mb_mapObj[mapIndex].epsg);
- d.get(-1).wfs_conf = wfsConfId;
- var wfsProperties = d.get(0).e;
-
- for (var j = 0; j < wfsProperties.count(); j++) {
- if (i > 0 && wfsProperties.getName(j) === "fid") {
- continue;
- }
- d.get(-1).e.setElement(
- wfsProperties.getName(j),
- wfsProperties.getValue(j)
- );
- }
- }
- // remove the original geometry and the temporary line
- d.del(0);
- d.del(0);
- parent.mb_disableThisButton(mod_digitizeEvent);
- };
-
- if (d.get(0).geomType == parent.geomType.polygon) {
- var polygonText = d.get(0).toText();
- var lineText = d.get(1).toText();
-
- parent.mb_ajax_post("../php/mod_digitize_splitPolygon.php", {
- polygon: polygonText,
- line: lineText
- }, splitCallback);
- }
- else {
- var line1text = d.get(0).toText();
- var line2text = d.get(1).toText();
-
- parent.mb_ajax_post("../php/mod_digitize_splitLine.php", {
- line1: line1text,
- line2: line2text
- }, splitCallback);
- }
- }
- else if (obj.id == button_difference) {
- var applicable = (d.count() == 2) &&
- (d.get(0).geomType == parent.geomType.polygon) &&
- (d.get(1).geomType == parent.geomType.polygon);
- if (!applicable) {
- alert(msgObj.messageErrorDifferenceNotApplicable);
- parent.mb_disableThisButton(mod_digitizeEvent);
- return false;
- }
-
- var polygon1Text = d.get(0).toText();
- var polygon2Text = d.get(1).toText();
-
- parent.mb_ajax_post("../php/mod_digitize_differencePolygon.php", {polygon1: polygon1Text, polygon2: polygon2Text}, function(json, status) {
- var response = json;
- var polygonArray = response.polygons;
- var wfsConfId = d.get(0).wfs_conf;
- var wfsProperties = d.get(0).e;
- var mapIndex = parent.getMapObjIndexByName(mod_digitize_target);
- for (var i in polygonArray) {
- d.importGeometryFromText(polygonArray[i], parent.mb_mapObj[mapIndex].epsg);
- d.get(-1).wfs_conf = wfsConfId;
- for (var i = 0; i < wfsProperties.count(); i++) {
- if (wfsProperties.getName(i) === "fid") {
- continue;
- }
- d.get(-1).e.setElement(wfsProperties.getName(i), wfsProperties.getValue(i));
- }
- }
- // remove the original and the temporary polygon
- d.del(0);
- d.del(0);
- parent.mb_disableThisButton(mod_digitizeEvent);
- });
- }
- else if (obj.id == button_line_merge) {
- //var applicable = (d.count() > 1);
-
-/* var lineTextArray = [];
- for (var i = 0; i < d.count(); i++) {
- if (d.get(i).geomType != parent.geomType.line) {
- applicable = false;
- lineTextArray = [];
- break;
- }
- lineTextArray.push(d.get(i).toText());
- }
-*/
- var applicable = (d.count() == 2) &&
- (d.get(0).geomType == parent.geomType.line) &&
- (d.get(1).geomType == parent.geomType.line);
-
- if (!applicable) {
- alert(msgObj.messageErrorMergeLineNotApplicable);
- parent.mb_disableThisButton(mod_digitizeEvent);
- return false;
- }
-
- var line1Text = d.get(0).toText();
- var line2Text = d.get(1).toText();
-
- parent.mb_ajax_post("../php/mod_digitize_mergeLines.php", {line1: line1Text, line2: line2Text}, function(json, status) {
- var response = json;
- var line = response.line;
- if(line == "") {
- alert(msgObj.errorMessageInvalidLineGeometries);
- parent.mb_disableThisButton(mod_digitizeEvent);
- return false;
- }
- var wfsConfId = d.get(-1).wfs_conf;
- var wfsProperties = d.get(-1).e;
- var mapIndex = parent.getMapObjIndexByName(mod_digitize_target);
-
- d.importGeometryFromText(line, parent.mb_mapObj[mapIndex].epsg);
- d.get(-1).wfs_conf = wfsConfId;
- for (var i = 0; i < wfsProperties.count(); i++) {
- d.get(-1).e.setElement(wfsProperties.getName(i), wfsProperties.getValue(i));
- }
-
- var len = d.count();
- var obsoleteFeatureArray = [];
- wfsConf = parent.get_complete_wfs_conf();
- for (var i = 0; i < len-2; i++) {
- if(typeof wfsConf == 'object' && typeof wfsConf[d.get(i).wfs_conf] == 'object') {
- var featureCollection = new GeometryArray();
- featureCollection.importGeoJSON(d.get(i).toString());
- obsoleteFeatureArray.push({
- geoJson : featureCollection.toString(),
- wfsConfId : wfsConf[d.get(i).wfs_conf]['wfs_conf_id']
- });
- }
- }
- var mergedFeatureId = d.get(-1).e.getElementValueByName("fid");
-
- // remove the original lines
- var len = d.count();
- //for (var i = len-1 ; i >= 1; i--) {
- for (var i = 0; i < len-1; i++) {
- d.del(0);
- }
- parent.mb_disableThisButton(mod_digitizeEvent);
-
- var res = true;
- res = parent.Mapbender.modules.digitize.events.mergeLines.trigger({
- mergedFeatureId: mergedFeatureId,
- obsoleteFeature: obsoleteFeatureArray
-
- }, "AND");
-
- if (res === false) {
- return;
- }
-
- if(mergedFeatureId !== false) {
- parent.Mapbender.modules.digitize.events.afterWfs.register(function (obj) {
- for(var j = 0; j < obsoleteFeatureArray.length; j++) {
- if(obj.type == 'update' && obj.feature.e.getElementValueByName("fid") == mergedFeatureId) {
- parent.mb_ajax_post(
- "../extensions/geom2wfst.php",
- {
- 'geoJson' : obsoleteFeatureArray[j].geoJson,
- 'method' : "delete",
- 'wfs_conf_id' : obsoleteFeatureArray[j].wfsConfId
- },
- function(json,status){
- parent.zoom(mod_digitize_target, true, 0.999);
- }
- );
- }
- }
- });
- }
- });
- }
- }
- else {
- alert("unknown type: " + obj.id);
- }
-}
-
-function digitizeDisable(obj) {
- mod_digitize_timeout();
- executeDigitizeSubFunctions();
- mod_digitizeEvent = false;
-}
-// --- button handling (end) ----------------------------------------------------------------------------------------------
-// ------------------------------------------------------------------------------------------------------------------------
-
-// -----------------------------------------------------------------------------------------------------------
-// --- display (begin) -----------------------------------------------------------------------------------------
-
-function updateExtent() {
- var anInd = parent.getMapObjIndexByName(mod_digitize_target);
- var change = false;
- if (typeof(mod_digitize_width) == 'undefined' || mod_digitize_width != parent.mb_mapObj[anInd].width) {
- mod_digitize_width = parent.mb_mapObj[anInd].width;
- change = true;
- }
- if (typeof(mod_digitize_height) == 'undefined' || mod_digitize_height != parent.mb_mapObj[anInd].height) {
- mod_digitize_height = parent.mb_mapObj[anInd].height;
- change = true;
- }
- if (typeof(mod_digitize_epsg) == 'undefined' || mod_digitize_epsg != parent.mb_mapObj[anInd].epsg) {
- mod_digitize_epsg = parent.mb_mapObj[anInd].epsg;
- change = true;
- }
-// if (change) {
-// drawDashedLine();
-// }
-}
-
-function drawDashedLine(){
- if (!nonTransactionalEditable) {
- nonTransactionalHighlight.clean();
- }
- var smP = "";
- smP += "<div class='t_img'>";
- smP += "<img src='"+parent.mb_trans.src+"' width='"+mod_digitize_width+"' height='0'></div>";
- smP += "<div class='t_img'>";
- smP += "<img src='"+parent.mb_trans.src+"' width='0' height='"+mod_digitize_height+"'></div>";
-
- if (!nonTransactionalEditable) {
- nonTransactionalHighlight.clean();
- }
- var smPArray = [];
- smPArray[smPArray.length] = "<div class='t_img'>"
- + "<img src='"+parent.mb_trans.src+"' width='"+mod_digitize_width+"' height='0'></div>"
- + "<div class='t_img'>"
- + "<img src='"+parent.mb_trans.src+"' width='0' height='"+mod_digitize_height+"'></div>";
-
- var mapObj = parent.mb_mapObj[parent.getMapObjIndexByName(mod_digitize_target)];
- var width = mapObj.width;
- var height = mapObj.height;
- var arrayBBox = mapObj.extent.toString().split(",")
- var minX = parseFloat(arrayBBox[0]);
- var minY = parseFloat(arrayBBox[1]);
- var maxX = parseFloat(arrayBBox[2]);
- var maxY = parseFloat(arrayBBox[3]);
- var cx = width/(maxX - minX);
- var cy = height/(maxY - minY);
- var isMoveOrInsertOrDelete = mod_digitizeEvent == button_move || mod_digitizeEvent == button_insert || mod_digitizeEvent == button_delete;
- var minDist = 6;
-
- for(var i=0, lenGeomArray = d.count(); i < lenGeomArray; i++){
- var currentGeomArray = d.get(i);
-
- if (!nonTransactionalEditable && !isTransactional(currentGeomArray)) {
- nonTransactionalHighlight.add(currentGeomArray, nonTransactionalColor);
- }
- else {
- for(var j=0, lenGeom = currentGeomArray.count(); j < lenGeom ; j++){
- var currentGeometry = d.getGeometry(i,j);
- var isPolygon = currentGeomArray.geomType == parent.geomType.polygon;
- var isLine = currentGeomArray.geomType == parent.geomType.line;
- var isComplete = currentGeometry.isComplete();
- var lastPaintedPoint = false;
-
- for(var k = 0, lenPoint = currentGeometry.count(); k < lenPoint; k++){
- var currentPoint = currentGeometry.get(k);
- var totalDistMeasureTag = "";
- var currentPointMap = new Point(Math.round((currentPoint.x - minX)*cx), Math.round((maxY - currentPoint.y)*cy));
-// var isTooCloseToPrevious = lastPaintedPoint && (k > 0) && Math.abs(currentPointMap.x-lastPaintedPoint.x) <= minDist && Math.abs(currentPointMap.y-lastPaintedPoint.y) <= minDist;
-// if (!isTooCloseToPrevious) {
- var currentPointIsVisible = currentPointMap.x > 0 && currentPointMap.x < width && currentPointMap.y > 0 && currentPointMap.y < height;
- if (currentPointIsVisible) {
- if (!isComplete && ((k == 0 && isPolygon) || (k == lenPoint-1 && isLine))) {
- smPArray[smPArray.length] = "<div class='bp' style='top:"+
- (currentPointMap.y-2)+"px;left:"+(currentPointMap.x-2)+"px;z-index:"+
- parseInt(digitizeTransactionalZIndex+10, 10)+";background-color:"+linepointColor+"'";
- if(measuring) {
- if(isLine && k != 0) {
- totalDistMeasureTag = "<p class='measure'>"+currentGeometry.getAggregatedDist(k-1, 2)+"</p>";
- }
- }
-
- }
- else {
- smPArray[smPArray.length] = "<div class='bp' style='top:"+(currentPointMap.y-2)+"px;left:"+(currentPointMap.x-2)+"px;z-index:"+parseInt(digitizeTransactionalZIndex+10, 10)+";'";
- if(measuring) {
- if(isLine && k == 0) {
- //nothing
- totalDistMeasureTag = "";
- }
- else {
- totalDistMeasureTag = "<p class='measure'>"+currentGeometry.getAggregatedDist(k-1, 2)+"</p>";
- }
- }
-
- }
- if(k==0 && isPolygon && !isComplete){
- smPArray[smPArray.length] = " title='"+msgObj.closePolygon_title+"' ";
-
- }
- if(isMoveOrInsertOrDelete) {
- smPArray[smPArray.length] = " onmouseover='window.frames[\""+mod_digitize_elName+"\"].handleBasepoint(this,"+i+","+j+","+k+")' ;";
- }
- smPArray[smPArray.length] = ">";
- if (isPolygon || isLine) {
- smPArray[smPArray.length] = totalDistMeasureTag;
- }
- smPArray[smPArray.length] = "</div>";
- lastPaintedPoint = currentPointMap;
-
- }
- if (k > 0) {
- points = parent.calculateVisibleDash(currentPointMap, previousPointMap, width, height);
- if (points != false) {
- smPArray[smPArray.length] = evaluateDashes(points[0], points[1], i, j, k);
- }
- }
-// }
- var previousPointMap = currentPointMap;
- }
- if (isPolygon && currentGeometry.innerRings.count() > 0) {
- // draw inner rings
-
- for (var l = 0, lenRings = currentGeometry.innerRings.count(); l < lenRings; l++) {
- var currentRing = currentGeometry.innerRings.get(l);
- var lastPaintedPoint = false;
-
- for (var m = 0, lenPoint = currentRing.count(); m < lenPoint; m++) {
- var currentPoint = currentRing.get(m);
- var currentPointMap = new Point(Math.round((currentPoint.x - minX) * cx), Math.round((maxY - currentPoint.y) * cy));
-
- // var isTooCloseToPrevious = lastPaintedPoint && (k > 0) && Math.abs(currentPointMap.x-lastPaintedPoint.x) <= minDist && Math.abs(currentPointMap.y-lastPaintedPoint.y) <= minDist;
- // if (!isTooCloseToPrevious) {
- var currentPointIsVisible = currentPointMap.x > 0 && currentPointMap.x < width && currentPointMap.y > 0 && currentPointMap.y < height;
- if (currentPointIsVisible) {
- if (!isComplete && ((k == 0 && isPolygon) || (k == lenPoint - 1 && isLine))) {
- smPArray[smPArray.length] = "<div class='bp' style='top:" +
- (currentPointMap.y - 2) +
- "px;left:" +
- (currentPointMap.x - 2) +
- "px;z-index:" +
- parseInt(digitizeTransactionalZIndex+10, 10) +
- ";background-color:" +
- linepointColor +
- "'";
- }
- else {
- smPArray[smPArray.length] = "<div class='bp' style='top:" + (currentPointMap.y - 2) + "px;left:" + (currentPointMap.x - 2) + "px;z-index:" + parseInt(digitizeTransactionalZIndex+10, 10) + ";'";
- }
- if (m == 0 && isPolygon && !isComplete) {
- smPArray[smPArray.length] = " title='" + msgObj.closePolygon_title + "' ";
- }
- if (isMoveOrInsertOrDelete) {
- smPArray[smPArray.length] = " onmouseover='window.frames[\"" + mod_digitize_elName + "\"].handleBasepoint(this," + i + "," + j + "," + l + "," + m + ")' ;";
- }
- smPArray[smPArray.length] = "></div>";
- lastPaintedPoint = currentPointMap;
- }
- if (m > 0) {
- points = parent.calculateVisibleDash(currentPointMap, previousPointMap, width, height);
- if (points != false) {
- smPArray[smPArray.length] = evaluateDashes(points[0], points[1], i, j, l, m);
- }
- }
- // }
- var previousPointMap = currentPointMap;
- }
- }
- }
- }
- }
- }
- if (!nonTransactionalEditable) {
- nonTransactionalHighlight.paint();
- }
-
- digitizeDivTag.write(smPArray.join(""));
-}
-
-function evaluateDashes(start, end, memberIndex, geomIndex, ringIndex, pointIndex){
- if (pointIndex == undefined) {
- pointIndex = ringIndex;
- ringIndex = undefined;
- }
-
- var strArray = [];
- var delta = new parent.Point(end.x - start.x, end.y - start.y);
- var lastGeomIsComplete = d.getGeometry(-1,-1).isComplete();
-
- var vecLength = start.dist(end);
- var n = Math.round(vecLength/dotDistance);
- if (n > 0) {
- var step = delta.dividedBy(n);
- }
- var lineCenter = Math.round(n/2);
-
- for(var i=1; i < n; i++){
- var x = Math.round(start.x + i * step.x) - 2;
- var y = Math.round(start.y + i * step.y) - 2;
- if(x >= 0 && x <= mod_digitize_width && y >= 0 && y <= mod_digitize_height){
- if (memberIndex == d.count()-1 && !lastGeomIsComplete) {
- strArray[strArray.length] = "<div class='lp' style='top:"+y+"px;left:"+x+"px;z-index:"+digitizeTransactionalZIndex+";background-color:"+linepointColor+"' ";
- }
- else {
- strArray[strArray.length] = "<div class='lp' style='top:"+y+"px;left:"+x+"px;z-index:"+digitizeTransactionalZIndex+";' onmousedown='return false;' ";
- }
- if(mod_digitizeEvent == button_insert) {
- strArray[strArray.length] = "onmouseover='window.frames[\""+mod_digitize_elName+"\"].convertLinepointToBasepoint(this,"+memberIndex+","+geomIndex+","+ringIndex+","+pointIndex+")'";
- }
- strArray[strArray.length] = ">";
- if(measuring) {
- if(i == lineCenter) {
- strArray[strArray.length] = "<p class='measure'>"+d.getGeometry(memberIndex, geomIndex).getDist(pointIndex-1, 2)+"</p>";
- }
- }
- strArray[strArray.length] = "</div>";
- }
- }
- return strArray.join("");
-}
-
-function isTransactional(geom) {
-// alert(typeof(geom.wfs_conf) + " " + geom.wfs_conf + " " + wfsConf.length);
- if (typeof(geom.wfs_conf) == 'number') {
- if (geom.wfs_conf >= 0 && geom.wfs_conf < wfsConf.length) {
- var isTransactionalGeom = (wfsConf[geom.wfs_conf]['wfs_transaction'] != "" && wfsConf[geom.wfs_conf]['fkey_featuretype_id'] != "");
- if (isTransactionalGeom) {
- return true;
- }
- else{
- return false;
- }
- }
- }
- else if (typeof(geom.wfs_conf) == 'undefined') {
- return true;
- }
-}
-
-function isValidWfsConfIndex (wfsConf, wfsConfIndex) {
- return (typeof(wfsConfIndex) == "number" && wfsConfIndex >=0 && wfsConfIndex < wfsConf.length);
-}
-
-function getName (geom) {
- wfsConfId = geom.wfs_conf;
- wfsConf = parent.get_complete_wfs_conf();
- if (isValidWfsConfIndex(wfsConf, wfsConfId)) {
- var resultName = "";
- for (var i = 0 ; i < wfsConf[wfsConfId]['element'].length ; i++) {
- if (wfsConf[wfsConfId]['element'][i]['f_show'] == 1) {
- var attrValue = geom.e.getElementValueByName(wfsConf[wfsConfId]['element'][i]['element_name']);
- if(attrValue === false) {
- resultName += "";
- }
- else{
- resultName += geom.e.getElementValueByName(wfsConf[wfsConfId]['element'][i]['element_name']) + " ";
- }
- }
- }
- if (resultName == "") {
- resultName = wfsConf[wfsConfId]['g_label'];
- }
- return resultName;
- }
- else if (geom.e.getElementValueByName("name")) {
- return geom.e.getElementValueByName("name");
- }
- else {
- return msgObj.digitizeDefaultGeometryName;
- }
-}
-
-function updateListOfGeometries(){
- var listOfGeom = "<ul>";
- if (d.count() > 0) {
- wfsConf = parent.get_complete_wfs_conf();
- //for (var i = 0 ; i < d.count(); i ++) {
- for (var i = d.count()-1 ; i >= 0; i--) {
-// if (d.get(i).get(-1).isComplete() && (nonTransactionalEditable || isTransactional(d.get(i)))) {
- if ((nonTransactionalEditable || isTransactional(d.get(i)))) {
-
- // for the geometries from a kml, there is another save dialogue
- if (d.get(i).isFromKml()) {
- // if the kml is in the db (id = id in database)
- if (d.get(i).e.getElementValueByName("Mapbender:id")) {
- // button: geometry information, update kml
- listOfGeom += "<li>";
- listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_wfs_src+"' title='"+msgObj.buttonDig_wfs_title+"' onclick='showWfsKml("+i+")'>";
- }
- }
- else {
- // button: geometry information, save, update, delete
- listOfGeom += "<li>";
- if (d.get(i).get(-1).isComplete() && wfsExistsForGeom(d.get(i), wfsConf)) {
- listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_wfs_src+"' title='"+msgObj.buttonDig_wfs_title+"' onclick='showWfs("+i+")'>";
- }
-
- // button: remove this geometry
- listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_remove_src+"' title='"+msgObj.buttonDig_remove_title+"' onclick='parent.mb_disableThisButton(mod_digitizeEvent);d.del("+i+");executeDigitizeSubFunctions();'>";
-
- // button clone this geometry
- if (d.get(i).get(-1).isComplete() && addCloneGeometryButton === true) {
- listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_clone_src+"' title='"+msgObj.buttonDig_clone_title+"' onclick='d.addCopy(d.get("+i+"));d.get(-1).e.delElement(\"fid\");eventCloseGeometry.trigger({index: d.count() - 1, geometry: d.get(-1)});executeDigitizeSubFunctions();'>";
- }
- }
-
- // button: remove geometry from database
- if (d.get(i).e.getElementValueByName('fid')) {
- listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_removeDb_src +
- "' title='"+msgObj.buttonDig_removeDb_title +
- "' onclick=\"deleteFeature("+i+")\">";
- }
-
- listOfGeom += "<div class='digitizeGeometryListItem' onmouseover='parent.mb_wfs_perform(\"over\",d.get("+i+"),\""+geomHighlightColour+"\");' ";
- listOfGeom += " onmouseout='parent.mb_wfs_perform(\"clean\",d.get("+i+"),\""+geomHighlightColour+"\")' ";
- listOfGeom += " onclick='parent.mb_wfs_perform(\"click\",d.get("+i+"),\""+geomHighlightColour+"\");' ";
- var geomName = getName(d.get(i));
- var currentGeomType;
- if (d.get(i).geomType == parent.geomType.polygon) {
- currentGeomType = msgObj.messageDescriptionPolygon;
- }
- else if (d.get(i).geomType == parent.geomType.line) {
- currentGeomType = msgObj.messageDescriptionLine;
- }
- else if (d.get(i).geomType == parent.geomType.point) {
- currentGeomType = msgObj.messageDescriptionPoint;
- }
- var multi = "";
- if (d.get(i).count() > 1) {
- multi = "multi";
- }
- listOfGeom += ">" + htmlspecialchars(geomName) +" (" + multi + currentGeomType + ")</div>";
-
- // multigeometries
- listOfGeom += "<ul>";
- for (var j = 0; j < d.get(i).count(); j++) {
- var currentGeom = d.get(i).get(j);
- if (d.get(i).count() > 1 || (d.get(i).geomType == geomType.polygon &&
- d.get(i).get(j).innerRings &&
- d.get(i).get(j).innerRings.count() > 0)) {
- listOfGeom += "<li>";
- listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_remove_src+"' title='"+msgObj.buttonDig_remove_title+"' onclick='parent.mb_disableThisButton(mod_digitizeEvent);d.get("+i+").del(" + j + ");executeDigitizeSubFunctions();'>";
- listOfGeom += "<div class='digitizeGeometryListItem' onmouseover='parent.mb_wfs_perform(\"over\",d.get("+i+").get("+j+"),\""+geomHighlightColour+"\");' ";
- listOfGeom += " onmouseout='parent.mb_wfs_perform(\"clean\",d.get("+i+").get("+j+"),\""+geomHighlightColour+"\")' ";
- listOfGeom += " onclick='parent.mb_wfs_perform(\"click\",d.get("+i+").get("+j+"),\""+geomHighlightColour+"\");' ";
- listOfGeom += ">" + currentGeomType + "#" + (j+1) +"</div></li>";
- }
- if (d.get(i).geomType == geomType.polygon &&
- d.get(i).get(j).innerRings &&
- d.get(i).get(j).innerRings.count() > 0) {
- listOfGeom += "<ul>";
- for (var k = 0; k < d.get(i).get(j).innerRings.count(); k++) {
- var currentRing = d.get(i).get(j).innerRings.get(k);
- listOfGeom += "<li>";
- listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_remove_src+"' title='"+msgObj.buttonDig_remove_title+"' onclick='parent.mb_disableThisButton(mod_digitizeEvent);d.get("+i+").get(" + j + ").innerRings.del(" + k + ");executeDigitizeSubFunctions();'>";
- listOfGeom += "<div class='digitizeGeometryListItem' onmouseover='parent.mb_wfs_perform(\"over\",d.getGeometry("+i+","+j+").innerRings.get(" + k + "),\""+geomHighlightColour+"\");' ";
- listOfGeom += " onmouseout='parent.mb_wfs_perform(\"clean\",d.getGeometry("+i+","+j+").innerRings.get(" + k + "),\""+geomHighlightColour+"\")' ";
- listOfGeom += " onclick='parent.mb_wfs_perform(\"click\",d.getGeometry("+i+","+j+").innerRings.get(" + k + "),\""+geomHighlightColour+"\");' ";
- listOfGeom += ">inner ring #" + (k+1) +"</div></li>";
-
- }
- listOfGeom += "</ul>";
- }
- }
- listOfGeom += "</ul>";
- listOfGeom += "</li>";
- }
- }
- }
- listOfGeom += "<ul>";
- parent.writeTag(mod_digitize_elName,"listOfGeometries",listOfGeom);
-}
-// --- display (end) -----------------------------------------------------------------------------------------
-// -----------------------------------------------------------------------------------------------------------
-
-
-// -----------------------------------------------------------------------------------------------------------
-// --- wfs window (begin) -----------------------------------------------------------------------------------------
-
-// -----------------------------------------------------------------------------------------------------------
-// --- wfs window form check (begin) -----------------------------------------------------------------------------------------
-
-function formCorrect(doc, formId) {
- var isCorrect = true;
- var errorMessage = "";
- var result;
- var form = doc.getElementById(formId);
-
- result = mandatoryFieldsNotEmpty(doc, form);
- isCorrect = isCorrect && result.isCorrect;
- errorMessage += result.errorMessage;
-
- //select box is now checked within function mandatoryFieldsNotEmpty
- //result = validBoxEntrySelected(form);
- //isCorrect = isCorrect && result.isCorrect;
- //errorMessage += result.errorMessage;
-
- result = dataTypeIsCorrect(doc, form);
- isCorrect = isCorrect && result.isCorrect;
- errorMessage += result.errorMessage;
-
- return {"isCorrect":isCorrect, "errorMessage":errorMessage};
-}
-
-function validBoxEntrySelected(form){
- var isCorrect = true;
- var errorMessage = "";
- var name = "";
- for (var i = 0; i < form.childNodes.length && isCorrect; i++) {
- if (form.childNodes[i].nodeName.toUpperCase() == "SELECT") {
- name += form.childNodes[i].name;
- if (parseInt(form.childNodes[i].selectedIndex) == 0 && $(form.childNodes[i]).hasClass("mandatory")) {
- var msg = name + ": " + msgObj.messageSelectAnOption + "\n"
- var categ = form.childNodes[i].getAttribute("category");
- if (typeof(categ) != "undefined") {
- msg = categ + " => " + msg;
- }
- return {"isCorrect":false, "errorMessage":msg};
- }
- }
- else if (form.childNodes[i].hasChildNodes()) {
- var res = validBoxEntrySelected(form.childNodes[i]);
- errorMessage = res.errorMessage + errorMessage;
- isCorrect = res.isCorrect;
-
- }
- }
- return {"isCorrect":isCorrect, "errorMessage":errorMessage};
-}
-
-function mandatoryFieldsNotEmpty(doc, node){
- var isCorrect = true;
- var errorMessage = "";
-
- var $nodeArray = $(".mandatory", doc);
- for (var i = 0; i < $nodeArray.size() && isCorrect; i++) {
- var $currentNode = $nodeArray.eq(i);
- var tagName = $currentNode.get(0).nodeName.toUpperCase();
- if (tagName == "INPUT" && $currentNode.val() == "") {
- isCorrect = false;
- errorMessage += "'"+ $currentNode.attr("name") +"': "+ msgObj.messageErrorFieldIsEmpty +"\n";
- }
-
- if (tagName == "SELECT" && parseInt($currentNode.get(0).selectedIndex) == 0) {
- isCorrect = false;
- errorMessage += "'"+ $currentNode.attr("name") +"': "+ msgObj.messageErrorFieldIsEmpty +"\n";
- }
- }
- return {"isCorrect":isCorrect, "errorMessage":errorMessage};
-}
-
-function isInteger(str) {
- if (str.match(/^[0-9]{0,8}$/) || str == "" ) { //will be better ;-)
- return true;
- }
- return false;
-}
-
-function isFloat(str) {
- if (isInteger(str)) {
- return true;
- }
- if (str.match(/^\d+\.\d+$/)) {
- return true;
- }
- return false;
-}
-
-function replaceCommaByDecimalPoint(str) {
- var patternString = ",";
- var pattern = new RegExp(patternString);
- while (str.match(pattern)) {
- str = str.replace(pattern, ".");
- }
- return str;
-}
-
-function dataTypeIsCorrect(doc, node){
- var isCorrect = true;
- var errorMessage = "";
-
- nodeArray = doc.getElementsByName("datatype");
- for (var i = 0; i < nodeArray.length ; i++) {
- if (nodeArray[i].nodeName.toUpperCase() == "INPUT" && nodeArray[i].type == "hidden" && nodeArray[i].id.substr(0,9) == "datatype_") {
- var nodeId = nodeArray[i].id.substr(9);
- var nodeValue = doc.getElementById(nodeId).value;
-
- if (nodeArray[i].value == "int") {
- if (!isInteger(nodeValue)) {
- isCorrect = false;
- errorMessage += "'"+doc.getElementById(nodeId).name+"': "+ msgObj.messageErrorNotAnInteger + "\n";
- }
- }
- else if (nodeArray[i].value == "double" || nodeArray[i].value == "float") {
- nodeValue = replaceCommaByDecimalPoint(nodeValue);
- if (!isFloat(nodeValue)) {
- isCorrect = false;
- errorMessage += "'"+doc.getElementById(nodeId).name+"': "+ msgObj.messageErrorNotAFloat + "\n";
- }
- else {
- doc.getElementById(nodeId).value = nodeValue;
- }
- }
- }
- }
- return {"isCorrect":isCorrect, "errorMessage":errorMessage};
-}
-// --- wfs window form check (end) -----------------------------------------------------------------------------------------
-// -----------------------------------------------------------------------------------------------------------
-
-function getAvailableWfsForGeom(geom, wfsConf) {
- var wfsConfIndices = [];
-
- for (var attr in wfsConf) {
- var isTrans = (wfsConf[attr]['wfs_transaction'] != "");
- if (!isTrans) {
- continue;
- }
- /*
- if (isValidWfsConfIndex(wfsConf, parseInt(geom.wfs_conf))) {
- if (parseInt(geom.wfs_conf) == parseInt(attr)) {
- wfsConfIndices.push(attr);
- }
- }
- else {
- */
- for (var elementIndex = 0; elementIndex < wfsConf[attr]['element'].length ; elementIndex++) {
- var isGeomColumn = (parseInt(wfsConf[attr]['element'][elementIndex]['f_geom']) == 1);
- if (isGeomColumn) {
- var isMultiPolygon = (
- geom.geomType == parent.geomType.polygon &&
- (
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'MultiPolygonPropertyType' ||
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'GeometryPropertyType' ||
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'MultiSurfacePropertyType'
- )
- );
- var isPolygon = (
- geom.geomType == parent.geomType.polygon &&
- geom.count() == 1 &&
- (
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'PolygonPropertyType' ||
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'GeometryPropertyType' ||
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'SurfacePropertyType'
- )
- );
- var isMultiLine = (
- geom.geomType == parent.geomType.line &&
- (
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'MultiLineStringPropertyType' ||
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'GeometryPropertyType' ||
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'MultiCurvePropertyType'
- )
- );
- var isLine = (
- geom.geomType == parent.geomType.line &&
- geom.count() == 1 &&
- (
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'LineStringPropertyType' ||
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'GeometryPropertyType' ||
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'CurvePropertyType'
- )
- );
- var isPoint = (geom.geomType == parent.geomType.point && wfsConf[attr]['element'][elementIndex]['element_type'] == 'PointPropertyType');
- var isMultiPoint = (geom.geomType == parent.geomType.point && wfsConf[attr]['element'][elementIndex]['element_type'] == 'MultiPointPropertyType');
-// alert(isMultiPolygon + " " + isPolygon + " " + isMultiLine + " " + isLine + " " + isPoint);
- if (isMultiPolygon || isPolygon || isMultiLine || isLine || isMultiPoint || isPoint || wfsConf[attr]['element'][elementIndex]['element_type'] == 'GeometryPropertyType') {
-
- wfsConfIndices.push(attr);
- }
- }
- }
- //}
- }
- return wfsConfIndices;
-}
-function wfsExistsForGeom(geom, wfsConf) {
- wfsConfIndices = getAvailableWfsForGeom(geom, wfsConf);
-// alert(wfsConfIndices.join(","));
- if (wfsConfIndices.length > 0) {
- return true;
- }
- return false;
-}
-
-
-function showWfsKml (geometryIndex) {
- wfsKmlWindow = open("", "wfsattributes", "width="+wfsWindowWidth+", height="+wfsWindowHeight+", resizable, dependent=yes, scrollbars=yes");
- wfsKmlWindow.document.open("text/html");
- wfsKmlWindow.document.writeln("<html><head><meta http-equiv='Content-Type' content='text/html; charset=<?php echo CHARSET;?>'></head><body><div id='linkToKml'></div><div id='elementForm'></div></body></html>");
- wfsKmlWindow.document.close();
-
- str = "<form id = 'wmsKmlForm' onsubmit='return false;'><table>";
-
- var properties = d.get(geometryIndex).e;
- var propertyCount = properties.count();
- for (var i = 0; i < propertyCount; i++) {
- var key = properties.getName(i);
- var value = properties.getValue(i);
- var expr = /Mapbender:/;
- if (!key.match(expr)) {
- str += "\t\t<tr>\n";
- str += "\t\t\t<td>\n\t\t\t\t<div>" + key + "</div>\n\t\t\t</td>\n";
- str += "\t\t\t<td>\n";
- str += "\t\t\t\t<input id = 'wmskml_" + i + "' name='" + key + "' type='text' size=20 value = '" + value + "'>\n";
- str += "\t\t\t</td>\n\t\t</tr>\n";
- }
- }
-
- var updateOnClickText = "this.disabled=true;window.opener.updateKmlInDb("+geometryIndex+", 'update');";
- var deleteOnClickText = "var deltrans = confirm('This geometry will be removed from the KML.');";
- deleteOnClickText += "if (deltrans){";
- deleteOnClickText += "this.disabled=true;window.opener.updateKmlInDb("+geometryIndex+", 'delete')}";
-
- str += "\t\t\t<td><input type='button' name='updateButton' value='Update' onclick=\""+updateOnClickText+"\"/></td>\n";
-// delete button not yet implemented
-// str += "\t\t\t<td><input type='button' name='deleteButton' value='Delete' onclick=\""+deleteOnClickText+"\"/></td>\n";
- str += "\t\t\t<td><input type='button' name='abortButton' value='Abort' onclick=\"window.close();\" /></td>\n";
-
- str += "\t\t</tr>\n";
- str += "\t</table>\n";
- str += "</form>\n";
-
- wfsKmlWindow.document.getElementById("elementForm").innerHTML = str;
-}
-
-
-function stripslashes (str) {
- // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
- // + improved by: Ates Goral (http://magnetiq.com)
- // + fixed by: Mick at el
- // + improved by: marrtins
- // + bugfixed by: Onno Marsman
- // + improved by: rezna
- // + input by: Rick Waldron
- // + reimplemented by: Brett Zamir (http://brett-zamir.me)
- // + input by: Brant Messenger (http://www.brantmessenger.com/)
- // + bugfixed by: Brett Zamir (http://brett-zamir.me)
- // * example 1: stripslashes('Kevin\'s code');
- // * returns 1: "Kevin's code"
- // * example 2: stripslashes('Kevin\\\'s code');
- // * returns 2: "Kevin\'s code"
- return (str+'').replace(/\\(.?)/g, function (s, n1) {
- switch (n1) {
- case '\\':
- return '\\';
- case '0':
- return '\u0000';
- case '':
- return '';
- default:
- return n1;
- }
- });
-}
-
-function deleteFeature (geometryIndex) {
- var res = true;
- res = parent.Mapbender.modules[mod_digitize_elName].events.clickDelete.trigger({
- geometryIndex: geometryIndex,
- feature: d.get(geometryIndex)
- });
- if (res === false) {
- return;
- }
- var deltrans = confirm(msgObj.messageConfirmDeleteGeomFromDb);
- if (deltrans) {
- dbGeom('delete', geometryIndex);
- };
-
-}
-
-//
-// this method opens a new window and displays the attributes in wfs_conf
-//
-function showWfs(geometryIndex) {
- var res = true;
- res = parent.Mapbender.modules[mod_digitize_elName].events.openDialog.trigger({
- geometryIndex: geometryIndex,
- feature: d.get(geometryIndex)
- }, "AND");
- if (res === false) {
- return;
- }
-
- wfsConf = parent.get_complete_wfs_conf();
-
- if(typeof wfsWindow != 'undefined') {
- wfsWindow.close();
- }
-
- wfsWindow = open("", "wfsattributes", "width="+wfsWindowWidth+", height="+wfsWindowHeight+", resizable, dependent=yes, scrollbars=yes");
- wfsWindow.document.open("text/html");
- setTimeout(function () {
- wfsWindow.focus();
- }, 100);
-
- var str = "";
- var strStyle = "";
- var defaultIndex = -1;
-
- str += "<form id='wfs'>\n";
-
- //
- // 1. add select box
- //
-
- var onChangeText = "document.getElementById('elementForm').innerHTML = ";
- onChangeText += "window.opener.buildElementForm(this.value, " + geometryIndex + ");";
- onChangeText += "window.opener.setWfsWindowStyle(this.value);";
-
- var datePickerText = "$('.hasdatepicker').each(function () { " +
- "var data = $.parseJSON(window.opener.stripslashes($(this).attr('data'), true));" +
- "var defaults = {};" +
- "var settings = $.extend({}, defaults, data);" +
- /*"$.datepicker.regional['de'] = {
- closeText: 'schließen',
- prevText: '<zurück',
- nextText: 'Vor>',
- currentText: 'heute',
- monthNames: ['Januar','Februar','März','April','Mai','Juni',
- 'Juli','August','September','Oktober','November','Dezember'],
- monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
- 'Jul','Aug','Sep','Okt','Nov','Dez'],
- dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
- dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
- dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
- weekHeader: 'Wo',
- dateFormat: 'dd.mm.yy',
- firstDay: 1,
- isRTL: false,
- showMonthAfterYear: false,
- yearSuffix: ''};
-*/
- //"$(this).datepicker.setDefaults($.datepicker.regional['de']);" +
- "$(this).datepicker({dateFormat: 'yy-mm-dd', changeYear: true, yearRange: '1950:2050',monthNames: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'],dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa']});" +
- "});";
-
- onChangeText += datePickerText;
-
-
- var uploaderText =
- "deleteUploadedFile = function (domNode) {" +
- "$(domNode).siblings('input').val('');" +
- "$(domNode).siblings('a').remove();" +
- "$(domNode).remove();" +
- "};" +
- "var linkAndDeleteButtonHtml = '<a target=\\\'_blank\\\' title=\\\'show uploaded file\\\' " +
- "href=\\\'#\\\'>Show file</a>" +
- "<img src=\\\'../img/button_digitize/geomRemove.png\\\' " +
- "title=\\\'Delete uploaded file\\\' alt=\\\'Delete uploaded file\\\' " +
- "onclick=\\\'deleteUploadedFile(this);\\\' " +
- "style=\\\'cursor:pointer\\\'/>';" +
- "$('.upload').each(function () { " +
- "var $this = $(this).upload({ "+
- "callback: function(result,stat,msg){"+
- "if(stat !== true){alert(msg);}"+
- "else{" +
- "$this.prev().val(result.filename);" +
- "if ($this.siblings('a').size() === 0) {" +
- "$this.parent().prepend(linkAndDeleteButtonHtml);" +
- "}\n" +
- "$this.siblings('a').attr('href', result.filename);" +
- "}" +
- "}" +
- "});" +
- "});";
-
- onChangeText += uploaderText;
-
- str += "\t<select name='wfs' size='" + wfsConf.length + "'";
- str += " onChange=\""+ onChangeText +"\"";
- str += ">\n\t\t";
-
- var wfsConfIndices = getAvailableWfsForGeom(d.get(geometryIndex), wfsConf);
- var selected = false;
- // set the current wfs_conf as the selected
- // if wfs_conf is not yet set (for example when creating a new feature, just select the first one)
- var selectedIndex = d.get(geometryIndex).wfs_conf || wfsConfIndices[0];
- for (var i = 0; i < wfsConfIndices.length ; i++) {
- for (var j in wfsConf[i].element){
-
- }
- str += "<option value='" + wfsConfIndices[i] + "'";
- if (wfsConfIndices[i] == selectedIndex ) {
- str += " selected";
- selected = true;
- defaultIndex = parseInt(wfsConfIndices[i]);
- }
- str += ">" + wfsConf[wfsConfIndices[i]]['wfs_conf_abstract'];
- str += "</option>\n\t\t";
- }
-
-
- str += "</select>\n\t\t</form>\n\t";
-
- var elForm = "";
- if (defaultIndex != -1) {
- elForm = buildElementForm(defaultIndex, geometryIndex);
-
- var headStr = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=<?php echo CHARSET;?>'><style type='text/css'>" + wfsConf[defaultIndex]['g_style'] + "</style>";
- headStr += '<link rel="stylesheet" type="text/css" href="../extensions/jquery-ui-1.7.2.custom/development-bundle/themes/base/ui.all.css" />';
- headStr += '<style type="text/css">'
- headStr += 'a.tabheader { margin: 0 3px 0 0;float:left;padding: 1px 5px;text-decoration: none;color: #999;background-color: #F5F5F5;border: 1px solid #999;border-bottom: 0; }';
- headStr += 'a.tabheader.active { float:left;color: #666;background-color: transparent;border-color: #666;border-bottom: 0px solid #FFF;cursor: default; }';
- headStr += 'div.tabcontent { visibility: hidden;display: none;clear:left;margin: 1px 0 5px 0;padding: 5px;border: 1px solid #666; }';
- headStr += 'div.helptext { visibility: hidden;display: none;position: absolute;top: 5%;left: 5%;width: 85%;padding: 5px;color: #000;background-color: #EEEEEE;border: 1px solid #000;-moz-border-radius: 10px;-webkit-border-radius: 10px;}';
- headStr += 'div.helptext p { margin: 0 ; }';
- headStr += 'div.helptext p a.close { display: block;margin: 5px auto;text-align: center; }';
- headStr += 'a img { vertical-align: middle;border: 0; }';
- headStr += '.mandatory { border:1px solid red; }';
- headStr += '</style>';
- headStr += '</head><body onload="window.opener.toggleTabs(\''+initialTab+'\'); ' + datePickerText + uploaderText + '">';
- wfsWindow.document.write(headStr);
- }
- else {
- var headStr = "<html><head><style type='text/css'></style></head><body>";
- wfsWindow.document.write(headStr);
- }
- str += "<div id='elementForm'>\n" + elForm + "</div>";
- str += "<script type='text/javascript' src='../extensions/jquery-ui-1.7.2.custom/js/jquery-1.3.2.min.js'><\/script>";
- str += "<script type='text/javascript' src='../extensions/jquery-ui-1.7.1.w.o.effects.min.js'><\/script>";
- str += "<script type='text/javascript' src='../plugins/jq_upload.js'><\/script>";
- str += "<script type='text/javascript' src='../extensions/jqjson.js'><\/script>";
- str += "</body></html>";
- wfsWindow.document.write(str);
- wfsWindow.document.close();
-
-// toggleTabs(initialTab);
-
-}
-
-function setWfsWindowStyle(wfsConfIndex) {
- wfsWindow.document.getElementsByTagName("style")[0].innerHTML = wfsConf[wfsConfIndex]['g_style'];
-}
-
-function prepareSelectBox (formElementHtml, categoryName, isMandatory, elementLabel, elementValue, styleId) {
- var classString = (styleId == '0') ? "" : styleId;
- var patternString = "<select";
- var pattern = new RegExp(patternString);
- // set category
- if (categoryName) {
- formElementHtml = formElementHtml.replace(pattern, patternString + " category='" + categoryName + "' ");
- }
-
- if (isMandatory) {
- // set border if mandatory
- classString += " mandatory";
- }
- classString = (classString !== "") ? " class='"+classString+"' " : " ";
- formElementHtml = formElementHtml.replace(pattern, patternString + classString);
-
- // set name of select box to elementlabel
- patternString = "name\s*=\s*\\*'\w+\\*'";
- pattern = new RegExp(patternString);
- if (pattern.test(formElementHtml)) {
- formElementHtml = formElementHtml.replace(pattern, "name='" + elementLabel + "'");
- }
- else {
- patternString = "<select";
- pattern = new RegExp(patternString);
- formElementHtml = formElementHtml.replace(pattern, "<select name='" + elementLabel + "'");
- }
-
- // preselect the correct entry of the box
- patternString = "option( )+value( )*=( )*('|\")"+elementValue+"('|\")";
- pattern = new RegExp(patternString);
- var patternStringForReplace = "option value = '"+elementValue+"'";
- formElementHtml = formElementHtml.replace(pattern, patternStringForReplace+" selected");
- return formElementHtml;
-}
-
-function prepareDatepicker (formElementHtml, categoryName, isMandatory, elementLabel, elementValue, styleId) {
- var classString = (styleId == '0') ? "" : styleId;
- var patternString = "<input";
- var pattern = new RegExp(patternString);
-
- // set category
- if (categoryName) {
- formElementHtml = formElementHtml.replace(pattern, patternString + " category='" + categoryName + "' ");
- }
-
- if (isMandatory) {
- // set border if mandatory
- classString += " mandatory";
- }
- classString = (classString !== "") ? " class='"+classString+" hasdatepicker' " : " ";
- formElementHtml = formElementHtml.replace(pattern, patternString + classString);
-
- // set name of select box to elementlabel
- patternString = "name\s*=\s*\\*('|\")\w+\\*('|\")";
- pattern = new RegExp(patternString);
- if (pattern.test(formElementHtml)) {
- formElementHtml = formElementHtml.replace(pattern, "name='" + elementLabel + "'");
- }
- else {
- patternString = "<input";
- pattern = new RegExp(patternString);
- formElementHtml = formElementHtml.replace(pattern, "<input name='" + elementLabel + "'");
- }
-
- // preselect the correct entry of the box
- patternString = "<input";
- pattern = new RegExp(patternString);
- formElementHtml = formElementHtml.replace(pattern, patternString + " value='"+elementValue+"'");
-
- return formElementHtml;
-}
-
-function prepareTextArea (formElementHtml, categoryName, isMandatory, elementLabel, elementValue, styleId) {
- var classString = (styleId == '0') ? "" : styleId;
- var patternString = "<textarea";
- var pattern = new RegExp(patternString);
- // set category
- if (categoryName) {
- formElementHtml = formElementHtml.replace(pattern, patternString + " category='" + categoryName + "' ");
- }
-
- if (isMandatory) {
- // set border if mandatory
- classString += " mandatory";
- }
- classString = (classString !== "") ? " class='"+classString+"' " : " ";
- formElementHtml = formElementHtml.replace(pattern, patternString + classString);
-
- // set name of select box to elementlabel
- patternString = "name\s*=\s*\\*('|\")\w+\\*('|\")";
- pattern = new RegExp(patternString);
- if (pattern.test(formElementHtml)) {
- formElementHtml = formElementHtml.replace(pattern, "name='" + elementLabel + "'");
- }
- else {
- patternString = "<textarea";
- pattern = new RegExp(patternString);
- formElementHtml = formElementHtml.replace(pattern, "<textarea name='" + elementLabel + "'");
- }
-
- // preselect the correct entry of the box
- patternString = "<\/textarea>";
- pattern = new RegExp(patternString);
- formElementHtml = formElementHtml.replace(pattern, elementValue + patternString);
-
- return formElementHtml;
-}
-
-function prepareUploadField (formElementHtml, categoryName, isMandatory, elementLabel, elementValue, styleId) {
- //var elementValue = "../tmp/1-14bbb3d6987e16.png";
- var classString = (styleId == '0') ? "" : styleId;
- var patternString = "<div";
- var pattern = new RegExp(patternString);
-
- // set category
- if (categoryName) {
- formElementHtml = formElementHtml.replace(pattern, patternString + " category='" + categoryName + "' ");
- }
-
- classString = (classString !== "") ? " class='"+classString+"' " : " ";
- formElementHtml = formElementHtml.replace(pattern, patternString + classString);
-
- // preselect the correct entry of the box
- if(elementValue !== "") {
- formElementHtml = "<a title='show uploaded file' target='_blank' href='" +
- elementValue + "'>Show file</a><img title='Delete uploaded file' " +
- "alt='Delete uploaded file' style='cursor:pointer;' " +
- "onclick='$(this).siblings(\"input\").val(\"\");" +
- "$(this).siblings(\"a\").remove();$(this).remove();' " +
- "src='../img/button_digitize/geomRemove.png'/>" +
- formElementHtml;
- }
- patternString = "class\s*=\s*['\"]hiddenUploadField['\"]";
- pattern = new RegExp(patternString);
- replaceString = "class='hiddenUploadField' " + " value='"+elementValue+"'";
- formElementHtml = formElementHtml.replace(pattern, replaceString);
-
- return formElementHtml;
-}
-
-// Returns a form with the elements of a selected WFS grouped in tabs
-// (if the original WFS is the selected WFS, the values are set too)
-var initialTab = false;
-
-// returns a form with the elements of a selected wfs
-// (if the original wfs is the selected wfs, the values are set too)
-function buildElementForm(wfsConfIndex, memberIndex){
- var featureTypeMismatch = false;
- if (parseInt(d.get(memberIndex).wfs_conf) != parseInt(wfsConfIndex)) {featureTypeMismatch = true;}
- var str = "";
- var hasGeometryColumn = false;
- var featureTypeArray = wfsConf[wfsConfIndex];
- var memberElements;
- var fid = false;
-
- if (!featureTypeMismatch) {
- memberElements = d.get(memberIndex).e;
- fid = memberElements.getElementValueByName('fid');
- }
-
- if (typeof(featureTypeArray["element"]) !== "undefined") {
- featureTypeElementArray = featureTypeArray["element"];
-
-
- // Check if there are categories given and
- // build the form in tabs if necessary
- var elementCategories = [];
- for(var i = 0; i < featureTypeElementArray.length; i++){
- var categoryName = featureTypeElementArray[i].f_category_name;
- var categoryNameIsUnique = true;
-
- if(categoryName.length === 0) { continue; }
-
- for(var j = 0; j < elementCategories.length; j++) {
- if(elementCategories[j] == categoryName) {
- categoryNameIsUnique = false;
- }
- }
-
- if(categoryNameIsUnique) {
- elementCategories.push(categoryName);
- }
- }
-
- str += "<form id='"+featureTypeElementFormId+"'>\n\t";
-
- var hasCategories = (elementCategories.length > 0);
- if (hasCategories) {
- elementCategories.sort();
-
- initialTab = elementCategories[0];
- str +='<table><tr><td>';
- for (var currentCategory = 0; currentCategory < elementCategories.length; currentCategory++) {
- str += '<a href="#" id="tabheader_' + elementCategories[currentCategory] + '" class="tabheader" onclick="return window.opener.toggleTabs(\'' + elementCategories[currentCategory] + '\')">' + elementCategories[currentCategory] + '</a>';
- }
- str +='</td></tr></table>';
- }
-
- for (var currentCategory = 0; currentCategory < elementCategories.length || !hasCategories; currentCategory++) {
- if (hasCategories) {
- str += '<div id="tab_' + elementCategories[currentCategory] + '" class="tabcontent">';
- }
- str += '<table>';
-
- //
- // 2. add rows to form
- //
- for (var i = 0 ; i < featureTypeElementArray.length ; i++) {
- var featureTypeElement = featureTypeElementArray[i];
-
- var elementName = featureTypeElement['element_name'];
- var elementType = featureTypeElement['element_type'];
- var isEditable = (parseInt(featureTypeElement['f_edit']) == 1);
- var isMandatory = (parseInt(featureTypeElement['f_mandatory']) == 1);
- var isGeomColumn = (parseInt(featureTypeElement['f_geom']) == 1);
-
- if(hasCategories && featureTypeElement.f_category_name != elementCategories[currentCategory] && !isGeomColumn) {
- continue;
- }
-
-
- var elementLabelExists = (featureTypeElement['f_label'] != "");
- var elementLabel = "";
- if (elementLabelExists) {
- elementLabel = featureTypeElement['f_label'];
- }
- var elementLabelStyle = featureTypeElement['f_label_id'];
-
- if (!isGeomColumn) {
- if (isEditable) {
- str += "\t\t<tr>\n";
- if(elementLabelExists) {
- str += "\t\t\t<td>\n\t\t\t\t<div class = '"+elementLabelStyle+"'>" + elementLabel + "</div>\n\t\t\t</td>\n";
- str += "\t\t\t<td>\n";
- }
- else {
- str += '<td colspan="2">';
- }
-
- var elementValue = "";
- if (!featureTypeMismatch) {
- for (var j = 0 ; j < memberElements.count() ; j ++) {
- if (memberElements.getName(j) == featureTypeElement['element_name']) {
- elementValue = memberElements.getValue(j);
- }
- }
- }
- var formElementHtml = featureTypeElement['f_form_element_html'];
- if (!formElementHtml) {
- var classString = (styleId == '0') ? "" : featureTypeElement['f_style_id'];
- if (parseInt(featureTypeElement['f_mandatory']) == 1) {
- classString += " mandatory";
- }
-
- classString = (classString !== "") ? " class='"+classString+"' " : " ";
-
- str += "\t\t\t\t<input id = 'datatype_mb_digitize_form_" + elementName + "' name='datatype' type='hidden' value = '" + elementType + "'>\n";
- if (!hasCategories) {
- str += "\t\t\t\t<input id = 'mb_digitize_form_" + elementName + "' name='" + elementLabel + "' type='text' "+classString+" size=20 value = '" + elementValue + "'>\n";
- }
- else {
- str += "\t\t\t\t<input category='"+elementCategories[currentCategory]+"' id = 'mb_digitize_form_" + elementName + "' name='" + elementLabel + "' type='text' "+classString+" size=20 value = '" + elementValue + "'>\n";
- }
- }
- else {
- while (formElementHtml.match(/\\/)) {
- formElementHtml = formElementHtml.replace(/\\/, "");
- }
-
- var isMandatory = (parseInt(featureTypeElement['f_mandatory']) == 1);
-
- var patternString = "<select";
- pattern = new RegExp(patternString);
- var styleId = featureTypeElement['f_style_id'];
- if (pattern.test(formElementHtml)) {
- formElementHtml = prepareSelectBox(formElementHtml, "", isMandatory, elementLabel, elementValue, styleId);
- }
- var patternString = "hasdatepicker";
- pattern = new RegExp(patternString);
- if (pattern.test(formElementHtml)) {
- formElementHtml = prepareDatepicker(formElementHtml, "", isMandatory, elementLabel, elementValue, styleId);
- }
- var patternString = "<textarea";
- pattern = new RegExp(patternString);
- if (pattern.test(formElementHtml)) {
- formElementHtml = prepareTextArea(formElementHtml, "", isMandatory, elementLabel, elementValue, styleId);
- }
- var patternString = "upload";
- pattern = new RegExp(patternString);
- if (pattern.test(formElementHtml)) {
- formElementHtml = prepareUploadField(formElementHtml, "", isMandatory, elementLabel, elementValue, styleId);
- }
- str += formElementHtml;
- }
-
- if(featureTypeElement.f_helptext.length > 0) {
- str += ' <a href="#" onclick="return window.opener.showHelptext(' + i + ')"><img src="../img/help.png" width="16" height="16" alt="?" /></a> ';
- str += '<div id="helptext' +i+ '" class="helptext">';
- str += '<p>';
- str += featureTypeElement.f_helptext.replace(/(http:\/\/\S*)/g,'<a href="$1" target="blank">$1<\/a>');
- str += '<a href="#" class="close" onclick="return window.opener.hideHelptext(' + i + ')">close</a>';
- str += '</p>';
- str += '</div>';
- }
-
- str += "\t\t\t</td>\n\t\t</tr>\n";
- }
- }
- else {
- hasGeometryColumn = true;
- }
- }
-
- str += '</table>';
- if (hasCategories) {
- str += '</div>';
- }
-
- // if no categories exist, the for loop would be
- // infinite without this break
- if (!hasCategories) {
- break;
- }
- }
-
- //
- // 3. add buttons "save", "update", "delete"
- //
- str += "<table>";
- var isTransactional = (featureTypeArray['wfs_transaction']);
- if (isTransactional) {
- str += "\t\t<tr>\n";
-
- var options = ["insert", "update", "delete", "abort"];
- for (var i = 0 ; i < options.length ; i++) {
- var onClickText = "this.disabled=true;var result = window.opener.formCorrect(document, '"+featureTypeElementFormId+"');";
- onClickText += "if (result.isCorrect) {";
- onClickText += "window.opener.dbGeom('"+options[i]+"', "+memberIndex+"); ";
-// onClickText += "window.close();";
- onClickText += "}";
- onClickText += "else {";
- onClickText += "alert(result.errorMessage);this.disabled=false;"
- onClickText += "}";
-
- if (options[i] == "insert" && hasGeometryColumn && (!fid || showSaveButtonForExistingGeometries)) {
- str += "\t\t\t<td><input type='button' name='saveButton' value='"+msgObj.buttonLabelSaveGeometry+"' onclick=\""+onClickText+"\" /></td>\n";
- }
-
- if (!featureTypeMismatch && fid) {
- if (options[i] == "update" && hasGeometryColumn) {
- str += "\t\t\t<td><input type='button' name='updateButton' value='"+msgObj.buttonLabelUpdateGeometry+"' onclick=\""+onClickText+"\"/></td>\n";
- }
- if (options[i] == "delete"){
- var deleteOnClickText = "var deltrans = confirm('"+msgObj.messageConfirmDeleteGeomFromDb+"');";
- deleteOnClickText += "if (deltrans){";
- deleteOnClickText += onClickText + "}";
- str += "\t\t\t<td><input type='button' name='deleteButton' value='"+msgObj.buttonLabelDeleteGeometry+"' onclick=\""+deleteOnClickText+"\"/></td>\n";
- }
- }
- if (options[i] == "abort") {
- str += "\t\t\t<td><input type='button' name='abortButton' value='"+msgObj.buttonLabelAbort+"' onclick=\"window.close();\" /></td>\n";
- }
- }
- str += "\t\t</tr>\n";
- }
- str += "\t</table>\n";
- str += "<input type='hidden' id='fid' value='"+fid+"'>";
-// str += "<input type='text' name='mb_wfs_conf'>";
- str += "</form>\n";
- }
- return str;
-}
-
-function dbGeom(type, m, callback, dbWfsConfId) {
- if (typeof dbWfsConfId !== "undefined") {
- d.get(m).wfs_conf = getJsWfsConfIdByDbWfsConfId(wfsConf, dbWfsConfId);
- d.get(m).e = new parent.Wfs_element();
- }
-
- var hasFid = d.get(m).e.getElementValueByName("fid") !== false;
-
- if (!hasFid) {
- if (typeof(wfsWindow) != 'undefined' && !wfsWindow.closed) {
- d.get(m).wfs_conf = parseInt(wfsWindow.document.forms[0].wfs.options[wfsWindow.document.forms[0].wfs.selectedIndex].value);
- d.get(m).e = new parent.Wfs_element();
- }
- }
- else {
- wfsConf = parent.get_complete_wfs_conf();
- }
- var myconf = wfsConf[d.get(m).wfs_conf];
-
- var mapObjInd = parent.getMapObjIndexByName(mod_digitize_target);
-
- var proceed = true;
- var patternString = parent.mb_mapObj[mapObjInd].epsg.toUpperCase();
- var pattern = new RegExp(patternString);
-
-// if(!myconf['featuretype_srs'].match(pattern)){
-// proceed = confirm(msgObj.errorMessageEpsgMismatch + parent.mb_mapObj[mapObjInd].epsg + " / "+ myconf['featuretype_srs'] + ". Proceed?");
-// }
-// if (proceed) {
- var fid = false;
- var errorMessage = "";
- if (typeof(wfsWindow) != 'undefined' && !wfsWindow.closed && (type === "insert" || type === "update")) {
- myform = wfsWindow.document.getElementById(featureTypeElementFormId);
-
- for (var i=0; i<myform.length; i++){
- if (myform.elements[i].id == "fid") {
- fid = myform.elements[i].value;
- if (fid == "false") {
- fid = false;
- }
- else {
- d.get(m).e.setElement('fid', fid);
- }
- }
-
- //else if (myform.elements[i].type == 'text' { //merging geoportal.rlp
- else if (myform.elements[i].type == "text" ||
- myform.elements[i].tagName.toUpperCase() == "TEXTAREA" ||
- myform.elements[i].className == "hiddenUploadField"){
- if (myform.elements[i].id) {
- var elementId = String(myform.elements[i].id).replace(/mb_digitize_form_/, "");
- var $dataTypeNode = $(myform.elements[i]).prev("input");
- // if featuretype element is numeric, do not send empty fields
- if ($dataTypeNode.size() === 1 && -1 !== $.inArray($dataTypeNode.attr("value"), ["int", "double", "float", "decimal"])) {
- if (myform.elements[i].value !== "") {
- d.get(m).e.setElement(elementId, myform.elements[i].value);
- }
- }
- else {
- d.get(m).e.setElement(elementId, myform.elements[i].value);
- }
- }
- else {
- errorMessage = msgObj.messageErrorFormEvaluation;
- }
- }
- // selectbox
- else if (typeof(myform.elements[i].selectedIndex) == 'number') {
- if (myform.elements[i].id) {
- var elementId = String(myform.elements[i].id).replace(/mb_digitize_form_/, "");
- d.get(m).e.setElement(elementId, myform.elements[i].options[myform.elements[i].selectedIndex].value);
- }
- else {
- errorMessage = msgObj.messageErrorFormEvaluation;
- }
- }
- }
- }
- else {
- fid = d.get(m).e.getElementValueByName('fid');
- }
-// str = parent.get_wfs_str(myconf, d, m, type, fid);
-
- if (type === "insert" || type === "update") {
- var module = parent.Mapbender.modules[mod_digitize_elName];
- module.events.beforeUpdateOrInsert.trigger({
- wfsConf: myconf,
- geometryIndex: m,
- feature: d.get(m),
- 'method' : type
- });
- if (type === "insert") {
- module.events.beforeInsert.trigger({
- wfsConf: myconf,
- geometryIndex: m,
- feature: d.get(m)
- });
- }
- if (type === "update") {
- module.events.beforeUpdate.trigger({
- geometryIndex: m,
- feature: d.get(m)
- });
- }
-
- // can be set to true from outside to stop save action
- // default is false, so nothing happens here
- if (module.dataCheck) {
- return;
- }
-
- if (module.cancelAjaxRequest) {
- alert(module.cancelAjaxRequestMessage);
- module.cancelAjaxRequest = false;
- module.cancelAjaxRequestMessage = "An error occured.";
- return;
- }
- }
-
- // Extract the current, possibly new WfsConf
- var newWfsConfId = d.get(m).wfs_conf
- if (typeof(wfsWindow) != 'undefined' && !wfsWindow.closed) {
- newWfsConfId = parseInt(wfsWindow.document.getElementById('wfs').wfs.value, 10);
- }
- var newWfsConf = wfsConf[newWfsConfId];
- newWfsConfId = newWfsConf['wfs_conf_id'];
-
- // Check each feature attribute if it is part of the WfsConf element type. If not, delete.
- var e = d.get(m).e;
- var elementsToDelete = [];
- for(var i in e.name) {
- // Never delete fid attribute
- if(e.name[i] === "fid") {
- continue;
- }
-
- var validElement = false;
- for(var j in newWfsConf.element) {
- if(e.name[i] == newWfsConf.element[j]['element_name'] && newWfsConf.element[j]['f_edit'] === "1") {
- validElement = true;
- break;
- }
- }
- if(!validElement) {
- elementsToDelete.push(i);
- }
- }
-
- // Delete. As the arrays shrink, the indices into the arrays are shrunk, too
- for(var i in elementsToDelete) {
- e.name.splice(elementsToDelete[i] - i, 1);
- e.value.splice(elementsToDelete[i] - i, 1);
- }
-
- var geoJson = d.featureToString(m);
-
- parent.mb_ajax_post(
- "../extensions/geom2wfst.php",
- {
- 'geoJson' : geoJson,
- 'method' : type,
- 'wfs_conf_id' : newWfsConfId
- },
- function(json,status){
- var result = typeof(json) == 'object' ? json : eval('('+json+')');
- var success = result.success;
- var fid = result.fid;
- wfsSubWrite(m, type, status, success, fid, callback);
- }
- );
-// }
-}
-
-function getJsWfsConfIdByDbWfsConfId (wfsConf, id) {
- for (var i = 0; i < wfsConf.length; i++) {
- if (parseInt(wfsConf[i].wfs_conf_id, 10) === id) {
- return i
- }
- }
- return null;
-}
-
-function wfsSubWrite(m, type, status, success, fid, callback) {
- if (status == "success" && success) {
- if (type == 'insert' && fid) {
- d.get(m).e.setElement("fid", fid);
- }
- if (type == 'delete') {
- parent.mb_disableThisButton(mod_digitizeEvent);
- d.del(m);
- }
-
- var wfsWriteMessage = msgObj.messageSuccessWfsWrite;
- }
- else {
- var wfsWriteMessage = msgObj.messageErrorWfsWrite;
- }
-
- parent.Mapbender.modules[mod_digitize_elName].events.afterWfs.trigger({
- feature: (type === 'delete') ? null : d.get(m),
- type: type
- });
-
- parent.mb_execWfsWriteSubFunctions();
-
- if (updatePointGeometriesInstantly &&
- status == "success" &&
- success &&
- typeof callback === "function") {
- callback();
- }
-
- if (typeof(wfsWindow) != 'undefined' && !wfsWindow.closed) {
- if (status !== "success" || !success) {
- wfsWindow.alert(wfsWriteMessage);
- }
- else {
- parent.Mapbender.modules[mod_digitize_elName].events.geometryInserted.trigger({
- fid: fid,
- geometryIndex: m,
- feature: d.get(m),
- type: type
- });
- new parent.Mb_notice(wfsWriteMessage);
- }
- window.setTimeout("wfsWindow.close()",0);
- }
- else {
- if (status !== "success" || !success) {
- alert(wfsWriteMessage);
- }
- else {
- parent.Mapbender.modules[mod_digitize_elName].events.geometryInserted.trigger({
- fid: fid,
- geometryIndex: m,
- feature: d.get(m)
- });
- new parent.Mb_notice(wfsWriteMessage);
- }
- }
- executeDigitizeSubFunctions();
-}
-
-function getMultiGeometryIdsByPlacemarkId (placemarkId) {
- var multiGeometryIdArray = [];
- for (var i = 0; i < d.count(); i++) {
- var currentPlacemarkId = d.get(i).e.getElementValueByName("Mapbender:placemarkId");
- if (currentPlacemarkId && currentPlacemarkId == placemarkId) {
- multiGeometryIdArray.push(i);
- }
- }
- return multiGeometryIdArray;
-}
-
-function updateKmlInDb (geometryIndex, command) {
- var properties = d.get(geometryIndex).e;
- var placemarkId = properties.getElementValueByName("Mapbender:placemarkId");
-
- var multiGeometryIdArray = getMultiGeometryIdsByPlacemarkId(placemarkId);
-
- if (typeof(wfsKmlWindow) != 'undefined' && !wfsKmlWindow.closed) {
-
- // update properties from form
- myform = wfsKmlWindow.document.getElementById("wmsKmlForm");
-
- for (var i=0; i < myform.length; i++){
- if (myform.elements[i].type == 'text' ){
- if (myform.elements[i].id) {
- var key = myform.elements[i].name;
- var value = myform.elements[i].value;
-
- // update all geometries with the same placemark id
- for (var j = 0; j < multiGeometryIdArray.length; j++) {
- var currentProperties = d.get(j).e;
- currentProperties.setElement(key, value);
- }
- }
- }
- }
- var kmlId = properties.getElementValueByName("Mapbender:id");
-
- parent.mb_ajax_post("../php/mod_updateKmlInDb.php", {command:command, kmlId:kmlId, placemarkId:placemarkId, geoJSON:d.placemarkToString(placemarkId)}, function(obj, status) {
- if (obj === "1") {
- wfsKmlWindow.alert("KML updated.");
- var link = wfsKmlWindow.document.createElement("a");
- link.href = "../php/mod_displayKML.php?kmlId=" + kmlId;
- link.target = "_blank";
- link.innerHTML = "KML";
- wfsKmlWindow.document.getElementById('elementForm').innerHTML = "";
- wfsKmlWindow.document.getElementById('linkToKml').appendChild(link);
- }
- else {
- wfsKmlWindow.alert("Error, KML could not be updated. Check your error log.");
- }
- });
- }
-}
-
-
-// --- wfs window (begin) -----------------------------------------------------------------------------------------
-// -----------------------------------------------------------------------------------------------------------
-
-function getMessages() {
- parent.mb_ajax_json("../php/mod_digitize_messages.php", function(obj, status) {
- msgObj = obj;
- applyMessages();
- });
-}
-
-function applyMessages() {
- updateMeasureTag();
- updateListOfGeometries();
- updateButtons();
-}
-
- </script>
- </head>
- <body onload="registerFunctions();displayButtons();">
-<!-- <img id="digitizeBack" style="position:absolute;top:28;left:84" src="../img/button_digitize/back_on.png" title="" onclick="digitizeHistory.back()" name="digitizeBack"/>
- <img id="digitizeForward" style="position:absolute;top:28;left:112" src="../img/button_digitize/forward_on.png" title="" onclick="digitizeHistory.forward()" name="digitizeForward"/>
- -->
- <div id='digButtons'></div>
- <div style='position:absolute;top:60px;left:5px' id='listOfGeometries' class='digitizeGeometryList'></div>
- </body>
-</html>
Deleted: trunk/mapbender/http/geoportal/mod_digitize_tab_komserv_orga.php
===================================================================
--- trunk/mapbender/http/geoportal/mod_digitize_tab_komserv_orga.php 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/mod_digitize_tab_komserv_orga.php 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,3114 +0,0 @@
-<?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");
-
-$e_target = $_GET["e_target"];
-?>
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="cache-control" content="no-cache">
-<meta http-equiv="pragma" content="no-cache">
-<meta http-equiv="expires" content="0">
-<?php
-echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';
-?>
-<title>Digitize</title>
-<?php
-$digitize_conf_filename = "digitize_default.conf";
-include '../include/dyn_css.php';
-?>
-<script type='text/javascript' src='../extensions/jquery-ui-1.7.2.custom/js/jquery-1.3.2.min.js'></script>
-<script type='text/javascript'>
-/**
- * Package: digitize
- *
- * Description:
- * Allows the user to digitize polygons, lines and points.
- *
- * Files:
- * - http/javascripts/mod_digitize_tab.php
- * - http/php/mod_digitize_messages.php
- * - http/css/digitize.css
- * - conf/digitize_default.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 ('<appId>','digitize',
- * > 2,1,'Digitize tool.','Digitize','iframe',
- * > '../javascripts/mod_digitize_tab.php?sessionID','frameborder = "0" ',
- * > 1,1,1,1,5,'','','iframe','','geometry.js','mapframe1','mapframe1',
- * > 'http://www.mapbender.org/Digitize');
- * >
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name,
- * > var_value, context, var_type) VALUES('<appId>', 'digitize', 'cssUrl',
- * > '../css/digitize.css', 'url to the style sheet of the mapframe' ,
- * > 'var');
- * >
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name,
- * > var_value, context, var_type) VALUES('<appId>', 'digitize',
- * > 'digitize_conf_filename', 'digitize_default.conf', '' ,'php_var');
- * >
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name,
- * > var_value, context, var_type) VALUES('<appId>', 'digitize',
- * > 'text css',
- * > 'digitizeGeometryList {position:absolute; top:50px; left:0px;} .digitizeGeometryListItem {color:#000000; font-size:10px;} body {font-family: Arial, Helvetica, sans-serif; font-size:12px; color:#ff00ff; background-color:#ffffff; margin-top: 0px; margin-left:0px;} .button {height:18px; width:32px;}',
- * > 'text css' ,'text/css');
- * >
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name,
- * > var_value, context, var_type) VALUES('<appId>', 'digitize',
- * > 'wfsCssUrl', '../css/mapbender.css', 'var' ,'var');
- *
- * Help:
- * http://www.mapbender.org/Digitize
- *
- * Maintainer:
- * http://www.mapbender.org/User:Christoph_Baudson
- *
- * Parameters:
- * cssUrl - path/filename of CSS which specifies the design of digitize
- * objects in the map do not change the default file, create your
- * own css file from the default file
- * text css - CSS text for the geometry list
- * wfsCssUrl - path/filename of CSS which specifies the design of the popup
- * which appears when a feature is saved or updated
- *
- * 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
- */
-
-//
-// Buttons
-//
-function addButtonDig(id, isOn, src, titleOff, titleOn, x, y) {
- buttonDig_id.push(id);
- buttonDig_on.push(isOn);
- buttonDig_src.push(src);
- buttonDig_title_off.push(titleOff);
- buttonDig_title_on.push(titleOn);
- buttonDig_x.push(x);
- buttonDig_y.push(y);
-}
-
-function htmlspecialchars(p_string) {
- p_string = p_string.replace(/&/g, '&');
- p_string = p_string.replace(/</g, '<');
- p_string = p_string.replace(/>/g, '>');
- p_string = p_string.replace(/"/g, '"');
- // p_string = p_string.replace(/'/g, ''');
- return p_string;
-};
-
-//default definition of image directory for digitize buttons, might
-//be overwritten with digitize conf data
-var buttonDig_imgdir = "../img/button_digitize/";
-var buttonDig_id = [];
-var buttonDig_on = [];
-var buttonDig_src = [];
-var buttonDig_title_off = [];
-var buttonDig_title_on = [];
-var buttonDig_x = [];
-var buttonDig_y = [];
-
-var mapWindow;
-var mapDomElement;
-var mapType = "";
-
-var DigitizeHistory = function () {
- var historyItemArray = [];
- var currentIndex = 0;
-
- this.addItem = function (obj) {
- if (typeof obj == "object"
- && obj.back && typeof obj.back === "function"
- && obj.forward && typeof obj.forward === "function"
- ) {
- for (var i = currentIndex; i < historyItemArray.length; i++) {
- delete historyItemArray[i];
- }
- historyItemArray.length = currentIndex;
- historyItemArray.push({
- back: obj.back,
- forward: obj.forward
- });
- return true;
- }
- return false;
- };
-
- this.back = function () {
- if (currentIndex > 0) {
- currentIndex --;
- historyItemArray[currentIndex].back();
- executeDigitizeSubFunctions();
- return true;
- }
- return false;
- };
-
- this.forward = function () {
- if (currentIndex < historyItemArray.length) {
- historyItemArray[currentIndex].forward();
- currentIndex ++;
- executeDigitizeSubFunctions();
- return true;
- }
- return false;
- };
-};
-
-var digitizeHistory = new DigitizeHistory();
-
-var registerAnotherFunction = function () {
- var mapIndex = parent.getMapObjIndexByName(mod_digitize_target);
- mapDomElement = parent.mb_mapObj[mapIndex].getDomElement();
- mapType = mapDomElement.tagName.toUpperCase();
- if (mapType == "DIV") {
- mapWindow = parent.window;
- }
- else if (mapType == "IFRAME") {
- mapWindow = mapDomElement.window;
- }
- else {
- new parent.Mb_warning("Could not set CSS for map in digitizing module.");
- }
-
- eventCloseGeometry = new parent.Mapbender.Event();
- eventCloseGeometry.register(function (obj) {
- d.close(obj.index);
- });
- if (openMetadataEditorAfterNewGeometryHasBeenCreated) {
- eventCloseGeometry.register(function (obj) {
- if (typeof obj !== "object") {
- return;
- }
- if (typeof obj.index !== "number") {
- return;
- }
- showWfs(obj.index);
- });
- }
-
- /**
- * Property: events
- *
- * Description:
- * Your callback functions receive an object with the
- * following attributes
- * - geometryIndex: index of feature in current feature collection
- * - feature: the <Mapbender.MultiGeometry>
- */
- parent.Mapbender.modules[mod_digitize_elName].events = {
- /**
- * Property: events.closeGeometry
- *
- * Description:
- * This <Mapbender.Event> is fired after a new geometry has been
- * digitized.
- */
- closeGeometry: eventCloseGeometry,
- /**
- * Property: events.beforeUpdateOrInsert
- *
- * Description:
- * This <Mapbender.Event> is fired before a feature is updated
- * or inserted by WFS-T.
- */
- beforeUpdateOrInsert: new parent.Mapbender.Event(),
- /**
- * Property: events.beforeUpdate
- *
- * Description:
- * This <Mapbender.Event> is fired before a feature is updated
- * by WFS-T.
- */
- beforeUpdate: new parent.Mapbender.Event(),
- /**
- * Property: events.beforeInsert
- *
- * Description:
- * This <Mapbender.Event> is fired before a feature is inserted
- * by WFS-T.
- */
- beforeInsert: new parent.Mapbender.Event(),
- /**
- * Property: events.openDialog
- *
- * Description:
- * This <Mapbender.Event> is fired before the user opens the dialog
- * for inserting or updating. Returning false in your callback prevents
- * the default dialog from popping up.
- */
- openDialog: new parent.Mapbender.Event(),
- /**
- * Property: events.clickDelete
- *
- * Description:
- * This <Mapbender.Event> is fired when the user clicks the button to
- * delete features by WFS-T
- */
- clickDelete: new parent.Mapbender.Event(),
- /**
- * Property: events.geometryInserted
- *
- * Description:
- * This <Mapbender.Event> is fired after a feature has been inserted
- * by WFS-T
- */
- geometryInserted: new parent.Mapbender.Event(),
- /**
- * Property: events.afterWfs
- *
- * Description:
- * This <Mapbender.Event> is fired after a feature has been inserted,
- * updated or deleted by WFS-T
- */
- afterWfs: new parent.Mapbender.Event(),
- /**
- * Property: events.mergeLines
- *
- * Description:
- * This <Mapbender.Event> is fired when 2 lines are merged to a single line,
- */
- mergeLines: new parent.Mapbender.Event()
- };
-
- eventCloseGeometry.register(function () {
- _currentGeomIndex = -1;
- });
-
- parent.Mapbender.modules[mod_digitize_elName].cancelAjaxRequest = false;
- parent.Mapbender.modules[mod_digitize_elName].cancelAjaxRequestMessage = "An error occured.";
-
- parent.Mapbender.modules[mod_digitize_elName].dataCheck = false;
-};
-
-
-<?php
-echo "var mod_digitize_target = '".$e_target."';";
-$digitizeConfFilenameAndPath = dirname(__FILE__) . "/../../conf/" . $digitize_conf_filename;
-if ($digitize_conf_filename && file_exists($digitizeConfFilenameAndPath)) {
- /*
- * @security_patch finc done
- */
- include(secure($digitizeConfFilenameAndPath));
-}
-?>
-if (typeof snapping === "undefined") {
- snapping = true;
-}
-
-var wfsWindow;
-var wfsConf = [];
-var d;
-var mod_digitize_width;
-var mod_digitize_height;
-var mod_digitizeEvent = false;
-var nonTransactionalHighlight;
-
-var button_point;
-var button_line;
-var button_polygon;
-var button_line_continue = "lineContinue";
-var button_move = "dragBasePoint";
-var button_insert = "setBasePoint";
-var button_delete = "delBasePoint";
-var button_clear = "clear";
-var button_split = "digitizeSplit";
-var button_merge = "digitizeMerge";
-var button_difference = "digitizeDifference";
-var button_line_merge = "mergeLine";
-var _currentGeomIndex = -1;
-
-var digitizeDivTag;
-
-var GeometryArray;
-var MultiGeometry = parent.MultiGeometry;
-var Geometry;
-var Point;
-var geomType;
-
-var msgObj;
-var featureTypeElementFormId = "featureTypeElementForm";
-
-try {if(mod_digitize_elName){}}catch(e) {mod_digitize_elName = "digitize";}
-try {if(nonTransactionalEditable){}}catch(e) {nonTransactionalEditable = false;}
-try {if(updatePointGeometriesInstantly){}}catch(e) {updatePointGeometriesInstantly = false;}
-try {if(addCloneGeometryButton){}}catch(e) {addCloneGeometryButton = false;}
-
-if (typeof featuresMustHaveUniqueId === "undefined") {
- var featuresMustHaveUniqueId = false;
-}
-
-if (typeof allowUndoPolygonBySnapping === "undefined") {
- var allowUndoPolygonBySnapping = false;
-}
-
-if (typeof openMetadataEditorAfterNewGeometryHasBeenCreated === "undefined") {
- var openMetadataEditorAfterNewGeometryHasBeenCreated = false;
-}
-
-
-var eventCloseGeometry;
-
-function toggleTabs(tabId) {
- if(!initialTab) {
- return;
- }
-
- var tabHeaders = wfsWindow.document.getElementsByTagName('a');
- var tabs = wfsWindow.document.getElementsByTagName('div');
-
- for(var i = 0; i < tabHeaders.length; i++) {
- if(tabHeaders[i].id.indexOf('tabheader') != -1) {
- tabHeaders[i].className = 'tabheader';
- }
- }
-
- for(var i = 0; i < tabs.length; i++) {
- if(tabs[i].className === 'tabcontent') {
- tabs[i].style.visibility = 'hidden';
- tabs[i].style.display = 'none';
- }
- }
-
- wfsWindow.document.getElementById('tabheader_' + tabId).className += ' active';
-
- wfsWindow.document.getElementById('tab_' + tabId).style.visibility = 'visible';
- wfsWindow.document.getElementById('tab_' + tabId).style.display = 'block';
-
- return false;
-}
-
-function showHelptext(helptextId) {
- hideHelptext();
- wfsWindow.document.getElementById('helptext' + helptextId).style.visibility = 'visible';
- wfsWindow.document.getElementById('helptext' + helptextId).style.display = 'block';
-
- return false;
-}
-
-function hideHelptext(helptextId) {
- if(helptextId) {
- wfsWindow.document.getElementById('helptext' + helptextId).style.visibility = 'hidden';
- wfsWindow.document.getElementById('helptext' + helptextId).style.display = 'none';
- }
-
- var helptext = wfsWindow.document.getElementsByTagName('div');
-
- for(var i = 0; i < helptext.length; i++) {
- if(helptext[i].className === 'helptext') {
- helptext[i].style.visibility = 'hidden';
- helptext[i].style.display = 'none';
- }
- }
-
- return false;
-}
-function getMousePosition(e) {
- var map = parent.getMapObjByName(mod_digitize_target);
-
- return map.getMousePosition(e);
-}
-
-
-function initializeDigitize () {
- d = new parent.GeometryArray();
- GeometryArray = parent.GeometryArray;
- Geometry = parent.Geometry;
- Point = parent.Point;
- geomType = parent.geomType;
- button_point = parent.geomType.point; //"Point";
- button_line = parent.geomType.line; //"Line";
- button_polygon = parent.geomType.polygon; //"Polygon";
-}
-
-/**
- * Append geometries from KML when KML has been loaded
- */
-function appendGeometryArrayFromKML () {
- try {
- parent.kmlHasLoaded.register(function(properties){
- d = new parent.GeometryArray();
- d.importGeoJSON(properties);
-// d = parent.geoJsonToGeometryArray(properties);
- executeDigitizeSubFunctions();
- });
- }
- catch (e) {
- var exc = new parent.Mb_warning(e);
- }
-}
-
-
-// ------------------------------------------------------------------------------------------------------------------------
-// --- polygon, line, point insertion (begin) ----------------------------------------------------------------------------------------------
-
-function appendGeometryArray(obj) {
- executeDigitizePreFunctions();
- d.union(obj, featuresMustHaveUniqueId);
- executeDigitizeSubFunctions();
-}
-
-function mod_digitize_go(e){
- // track mouse position
- var currentPos = getMousePosition(e);
- s.check(currentPos);
-}
-
-function mod_digitize_timeout(){
- var el = mapDomElement;
- $(el).unbind("mousedown")
- .unbind("mouseup")
- .unbind("mousemove");
-}
-
-var isLastLinePointSnapped = function (newPoint) {
- return d.get(_currentGeomIndex).geomType === parent.geomType.line
- && d.getGeometry(_currentGeomIndex,-1).count() > 1
- && d.getGeometry(_currentGeomIndex,-1).get(-1).equals(newPoint);
-};
-
-var innerPointSnapped = function (newPoint) {
- if (d.count() === 0) {
- return null;
- }
- var start = 1;
- if (d.getGeometry(_currentGeomIndex, -1).count() < 3) {
- start = 0;
- }
- for (var i = start; i < d.getGeometry(_currentGeomIndex, -1).count(); i++) {
- if (d.getGeometry(_currentGeomIndex,-1).get(i).equals(newPoint)) {
- return i;
- }
- }
- return null;
-};
-
-var isFirstPolygonPointSnapped = function (newPoint) {
- return d.get(_currentGeomIndex).geomType == parent.geomType.polygon
- && d.getGeometry(_currentGeomIndex,-1).count() >= 3
- && d.getGeometry(_currentGeomIndex,-1).get(0).equals(newPoint);
-};
-
-var editingPolygonAndThreePointsHaveBeenInserted = function () {
- return d.get(_currentGeomIndex).geomType == parent.geomType.polygon && d.getGeometry(_currentGeomIndex,-1).count() == 2;
-};
-
-var editingLineAndTwoPointsHaveBeenInserted = function () {
- return d.get(_currentGeomIndex).geomType == parent.geomType.line && d.getGeometry(_currentGeomIndex,-1).count() >= 1;
-};
-
-function mod_digitize_start(e){
- if (mod_digitizeEvent !== button_point
- && mod_digitizeEvent !== button_line
- && mod_digitizeEvent !== button_line_continue
- && mod_digitizeEvent !== button_polygon) {
-
- alert(msgObj.errorMessageNoGeometrySelected);
- return false;
- }
-
- (function () {
- //
- // get the last point the user digitized
- //
- var realWorldPos;
- var isSnapped = s.isSnapped();
- if (isSnapped) {
- realWorldPos = s.getSnappedPoint();
- s.clean();
- }
- else {
- var currentPos = getMousePosition(e);
- realWorldPos = parent.mapToReal(mod_digitize_target,currentPos);
- }
-
- var geometryType = mod_digitizeEvent;
- var currentPoint = realWorldPos;
- var currentEpsg = parent.mb_mapObj[parent.getMapObjIndexByName(mod_digitize_target)].epsg;
- var currentGeomIndex = _currentGeomIndex;
-
- if (mod_digitizeEvent === button_line_continue) {
- if (isSnapped) {
- // find corresponding line
- for (var i = 0; i < d.count(); i++) {
- var lastPointSnapped = false;
- var firstPointSnapped = false;
- if (d.get(i).geomType !== parent.geomType.line) {
- continue;
- }
- if (d.getPoint(i, -1, -1) === realWorldPos) {
- lastPointSnapped = true;
- }
- else if (d.getPoint(i, -1, 0) === realWorldPos) {
- firstPointSnapped = true;
- }
- else {
- continue;
- }
- if (firstPointSnapped) {
- // reverse line!
- // we can only add points to the end of the line, not insert them at the beginning
- var oldLine = parent.Mapbender.cloneObject(d.getGeometry(i, -1));
- var newLine = d.getGeometry(i, -1);
- var len = oldLine.count();
- for (var j = len-1; j >= 0; j--) {
- newLine.updatePointAtIndex(oldLine.get(j), len-j-1);
- }
- }
- // enable snapping to all points except
- // the ones from this line
- s.resetPoints();
- if (snapping) {
- s.store(d);
- for (var j = 0; j < d.get(i).count(); j++) {
- var currentLine = d.getGeometry(i, j);
- for (var k = 0; k < currentLine.count(); k++) {
- s.removePoint(currentLine.get(k));
- }
- }
- }
-
-
- // delete last point, will be added again below,
- // as the event has changed to "button_line"
- d.getGeometry(i, -1).del(-1);
- d.getGeometry(i, -1).reopen();
- currentGeomIndex = i;
- _currentGeomIndex = i;
-
- parent.mb_enableButton(d.get(i).geomType);
- break;
- }
- }
- // check if event is still "line continue",
- // as it might have changed
- if (mod_digitizeEvent === button_line_continue) {
- return;
- }
- }
- //
- // A new geometry has to be created
- //
- if (d.count() === 0 || (d.get(currentGeomIndex).count()> 0 && d.getGeometry(currentGeomIndex, -1).isComplete())) {
- digitizeHistory.addItem({
- // remove the entire multigeometry
- back: function () {
- s.resetPoints();
- d.del(currentGeomIndex);
- if (snapping) {
- s.store(d);
- }
- },
- // add the multigeometry to the geometry array
- forward: function () {
- if (snapping) {
- s.store(d);
- }
- parent.mb_enableButton(geometryType);
- d.addMember(geometryType);
- d.get(currentGeomIndex).addGeometry();
- d.getGeometry(currentGeomIndex,-1).setEpsg(currentEpsg);
- d.getGeometry(currentGeomIndex,-1).addPoint(realWorldPos);
- if (geometryType == parent.geomType.point){
- eventCloseGeometry.trigger({
- index: currentGeomIndex,
- geometry: d.get(currentGeomIndex)
- });
- parent.mb_disableThisButton(mod_digitizeEvent);
- }
- }
- });
- }
- //
- // a point is added to an existing multigeometry
- //
- else {
- var innerPointIndex = innerPointSnapped(realWorldPos);
- //
- // editing polygon and first point is snapped -> close polygon
- //
- if (isFirstPolygonPointSnapped(realWorldPos)) {
- digitizeHistory.addItem({
- back: function () {
- d.getGeometry(currentGeomIndex, -1).reopen();
- parent.mb_enableButton(d.get(currentGeomIndex).geomType);
- // activate button
- },
- forward: function () {
- // close the polygon
- eventCloseGeometry.trigger({
- index: currentGeomIndex,
- geometry: d.get(currentGeomIndex)
- });
- parent.mb_disableThisButton(mod_digitizeEvent);
- }
- });
- }
- //
- // editing line and last point is snapped -> close line
- //
- else if (isLastLinePointSnapped(realWorldPos)) {
- digitizeHistory.addItem({
- back: function () {
- d.getGeometry(currentGeomIndex, -1).reopen();
- parent.mb_enableButton(d.get(currentGeomIndex).geomType);
- },
- forward: function () {
- // close the polygon
- eventCloseGeometry.trigger({
- index: currentGeomIndex,
- geometry: d.get(currentGeomIndex)
- });
- parent.mb_disableThisButton(mod_digitizeEvent);
- }
- });
- }
- //
- // another point is snapped (undo for polygons!)
- //
- else if (innerPointIndex !== null && allowUndoPolygonBySnapping && geometryType == parent.geomType.polygon) {
- while (d.getGeometry(currentGeomIndex, -1).count() > innerPointIndex) {
- digitizeHistory.back();
- }
- // avoids the history.forward()!
- return;
- }
- //
- // just add the point
- //
- else {
- if (editingPolygonAndThreePointsHaveBeenInserted()) {
- digitizeHistory.addItem({
- back: function () {
- s.removePoint(d.getPoint(currentGeomIndex, -1, 0));
- if (allowUndoPolygonBySnapping && geometryType == parent.geomType.polygon) {
- s.removePoint(d.getPoint(currentGeomIndex, -1, -1));
- }
- d.getGeometry(currentGeomIndex, -1).del(-1);
- },
- forward: function () {
- d.getGeometry(currentGeomIndex,-1).addPoint(realWorldPos);
- s.add(d.getPoint(currentGeomIndex, -1, 0));
- if (allowUndoPolygonBySnapping && geometryType == parent.geomType.polygon) {
- s.add(d.getPoint(currentGeomIndex, -1, -1));
- }
- }
- });
- }
- else if (editingLineAndTwoPointsHaveBeenInserted()) {
- digitizeHistory.addItem({
- back: function () {
- s.removePoint(d.getPoint(currentGeomIndex, -1, -1));
- s.add(d.getPoint(currentGeomIndex, -1, -2));
- d.getGeometry(currentGeomIndex, -1).del(-1);
- },
- forward: function () {
- d.getGeometry(currentGeomIndex,-1).addPoint(realWorldPos);
- s.removePoint(d.getPoint(currentGeomIndex, -1, -2));
- s.add(d.getPoint(currentGeomIndex, -1, -1));
- }
- });
- }
- else {
- digitizeHistory.addItem({
- back: function () {
- if (allowUndoPolygonBySnapping && geometryType == parent.geomType.polygon) {
- s.removePoint(d.getPoint(currentGeomIndex, -1, -1));
- }
- if (geometryType === parent.geomType.line) {
- d.getGeometry(currentGeomIndex, -1).del(-1);
- }
- else {
- d.getGeometry(currentGeomIndex, -1).del(-1);
- }
- },
- forward: function () {
- d.getGeometry(currentGeomIndex, -1).addPoint(realWorldPos);
- if (allowUndoPolygonBySnapping && geometryType == parent.geomType.polygon) {
- s.add(d.getPoint(currentGeomIndex, -1, -1));
- }
- }
- });
- }
- }
- }
- digitizeHistory.forward();
- })();
-
- return true;
-}
-// --- polygon, line, point insertion (begin) ----------------------------------------------------------------------------------------------
-// ------------------------------------------------------------------------------------------------------------------------
-
-// ------------------------------------------------------------------------------------------------------------------------
-// --- basepoint handling (begin) -----------------------------------------------------------------------------------------
-
-var basepointObject = false;
-var basepointMemberIndex = null;
-var basepointGeometryIndex = null;
-var basepointRingIndex = null;
-var basepointPointIndex = null;
-var basepointDragActive = false;
-
-function handleBasepoint(obj,memberIndex, geometryIndex, ringIndex, pointIndex){
- if (!(
- mod_digitizeEvent == button_move ||
- mod_digitizeEvent == button_insert ||
- mod_digitizeEvent == button_delete)
- ) {
- return false;
- }
-
- basepointObject = obj;
- basepointMemberIndex = memberIndex;
- basepointGeometryIndex = geometryIndex;
-
- if (pointIndex == undefined) {
- pointIndex = ringIndex;
- basepointRingIndex = undefined;
- }
- else {
- basepointRingIndex = ringIndex;
- }
- basepointPointIndex = pointIndex;
-
- if(mod_digitizeEvent == button_move){
- mod_digitize_timeout();
- basepointObject.style.cursor = 'move';
- parent.$(basepointObject).bind("mousedown", parent.frames[mod_digitize_elName].selectBasepoint);
- }
-
- if(mod_digitizeEvent == button_delete){
- mod_digitize_timeout();
- basepointObject.style.cursor = 'crosshair';
- parent.$(basepointObject).bind("mousedown", parent.frames[mod_digitize_elName].deleteBasepoint);
- }
-}
-
-function convertLinepointToBasepoint(obj, memberIndex, geomIndex, ringIndex, pointIndex){
- if(!(mod_digitizeEvent == button_insert)){ return false; }
-
- if(mod_digitizeEvent == button_insert){
- mod_digitize_timeout();
- obj.style.cursor = 'crosshair';
- $(obj).unbind("click").click(function (e){
- insertBasepoint(e);
- return false;
- });
-
- basepointObject = obj;
- basepointMemberIndex = memberIndex;
- basepointGeometryIndex = geomIndex;
- basepointRingIndex = ringIndex;
- basepointPointIndex = pointIndex;
- }
-}
-
-function insertBasepoint(e){
- var i = basepointMemberIndex;
- var j = basepointGeometryIndex;
- var k = basepointRingIndex;
- var l = basepointPointIndex;
-
- var currentPos = getMousePosition(e);
-
- var ind = parent.getMapObjIndexByName(mod_digitize_target);
- var p = parent.mb_mapObj[ind].convertPixelToReal(new Point(currentPos.x, currentPos.y));
-
- if (k == undefined) {
- d.getGeometry(i,j).addPointAtIndex(p, l);
- }
- else {
- d.getGeometry(i,j).innerRings.get(k).addPointAtIndex(p, l);
- }
-
- executeDigitizeSubFunctions();
-}
-
-function deleteBasepoint(){
- var i = basepointMemberIndex;
- var j = basepointGeometryIndex;
- var k = basepointRingIndex;
- var l = basepointPointIndex;
-
- if (k != undefined) {
- d.delAllPointsLike(d.getPoint(i, j, k, l));
- }
- else {
- d.delAllPointsLike(d.getPoint(i, j, l));
- }
-
- executeDigitizeSubFunctions();
-}
-
-function selectBasepoint(e){
- if(!basepointDragActive && mod_digitizeEvent == button_move){
- basepointDragActive = true;
- if (snapping) {
- s.store(d, d.getPoint(basepointMemberIndex, basepointGeometryIndex, basepointPointIndex));
- }
- // replace basepoint by transparent blob
- basepointObject.style.width = mod_digitize_width + "px";
- basepointObject.style.height = mod_digitize_height + "px";
- basepointObject.style.left = "0px";
- basepointObject.style.top = "0px";
-
- if (parent.ie) {
- // ie cannot handle backgroundColor = 'transparent'
- basepointObject.style.background = "url(../img/transparent.gif)";
- }
- else{
- basepointObject.style.backgroundColor = 'transparent';
- }
-
- parent.$(basepointObject).bind("mouseup", releaseBasepoint);
- parent.$(basepointObject).bind("mousemove", dragBasepoint);
- }
-}
-
-function dragBasepoint(e){
- if(basepointDragActive){
- var currentPos = getMousePosition(e);
- var res = s.check(currentPos);
-
- }
-}
-
-function updateAllPointsOfNonTransactionalLike(oldP, newP){
- for (var i = 0; i < d.count(); i++) {
- if (isTransactional(d.get(i))) {
- d.get(i).updateAllPointsLike(oldP, newP);
- }
- }
-}
-
-
-function releaseBasepoint(e){
-
- var i = basepointMemberIndex;
- var j = basepointGeometryIndex;
- var k = basepointRingIndex;
- var l = basepointPointIndex;
- basepointDragActive = false;
-
- var currentPos = getMousePosition(e);
- var basepointDragEnd = currentPos;
- parent.$(basepointObject).unbind("mousedown");
- var ind = parent.getMapObjIndexByName(mod_digitize_target);
- var p = parent.mb_mapObj[ind].convertPixelToReal(new Point(basepointDragEnd.x, basepointDragEnd.y));
-
- var oldPoint;
- if (k == undefined) {
- oldPoint = parent.Mapbender.cloneObject(d.getPoint(i,j,l));
- }
- else {
- oldPoint = parent.Mapbender.cloneObject(d.getPoint(i,j,k,l));
- }
- if (s.isSnapped()) {
- var snappedPoint = parent.Mapbender.cloneObject(s.getSnappedPoint());
- if (!nonTransactionalEditable) {
- updateAllPointsOfNonTransactionalLike(oldPoint, snappedPoint);
- }
- else {
- d.updateAllPointsLike(oldPoint, snappedPoint);
- }
- s.clean();
- }
- else {
- if (!nonTransactionalEditable) {
- updateAllPointsOfNonTransactionalLike(oldPoint, p);
- }
- else {
- d.updateAllPointsLike(oldPoint, p);
- }
- }
- basepointMemberIndex = null;
- basepointGeometryIndex = null;
- basepointPointIndex = null;
-
- executeDigitizeSubFunctions();
-
- var isPoint = d.get(i).geomType === parent.geomType.point;
- var hasFid = d.get(i).e.getElementValueByName("fid") !== false;
- if (mod_digitizeEvent == button_move &&
- updatePointGeometriesInstantly &&
- isPoint &&
- hasFid) {
-
- dbGeom("update", i, function () {
- d.del(i);
- });
- }
-}
-// --- basepoint handling (end) -----------------------------------------------------------------------------------------
-// ------------------------------------------------------------------------------------------------------------------------
-
-// ------------------------------------------------------------------------------------------------------------------------
-// --- registered functions (begin) ---------------------------------------------------------------------------------------
-
-function registerDigitizePreFunctions(stringFunction){
- mod_digitizePreFunctions[mod_digitizePreFunctions.length] = stringFunction;
-}
-
-function registerDigitizeSubFunctions(stringFunction){
- mod_digitizeSubFunctions[mod_digitizeSubFunctions.length] = stringFunction;
-}
-
-function executeDigitizeSubFunctions(){
- for(var i=0; i<mod_digitizeSubFunctions.length; i++){
- eval(mod_digitizeSubFunctions[i]);
- }
-}
-
-function executeDigitizePreFunctions(){
- for(var i=0; i<mod_digitizePreFunctions.length; i++){
- eval(mod_digitizePreFunctions[i]);
- }
-}
-
-function completeInitialization() {
- registerAnotherFunction();
- initializeDigitize();
- setStyleForTargetFrame();
- checkDigitizeTag();
- initialiseSnapping();
-// appendGeometryArrayFromKML();
- if (!nonTransactionalEditable) {
- initialiseHighlight();
- }
- initialiseMeasure();
- getMessages();
-}
-
-function registerFunctions(){
-
- mod_digitizePreFunctions = [];
- mod_digitizeSubFunctions = [];
- registerDigitizePreFunctions("updateExtent()");
- registerDigitizePreFunctions("drawDashedLine()");
- registerDigitizeSubFunctions("updateListOfGeometries()");
- registerDigitizeSubFunctions("drawDashedLine()");
-
- if (parent.Mapbender.events.init.done) {
- completeInitialization();
- }
- else {
- parent.Mapbender.events.init.register(completeInitialization);
- }
- parent.eventLocalize.register(function() {
- getMessages();
- });
-
- parent.eventAfterMapRequest.register(function () {
- updateExtent();
- });
- parent.mb_registerWfsWriteSubFunctions(function(){parent.zoom(mod_digitize_target, true, 0.999);});
-}
-
-function checkDigitizeTag(){
- var digitizeTagName = "digitizeDiv";
- var digitizeTagStyle;
-
-
- if (mapType == "DIV") {
-
- digitizeTagStyle = {"z-index":digitizeTransactionalZIndex, "font-size":"10px"};
- digitizeDivTag = new parent.DivTag(digitizeTagName, "", digitizeTagStyle, mapDomElement);
- }
- else {
- digitizeTagStyle = {"position":"absolute", "top":"0px", "left":"0px", "z-index":digitizeTransactionalZIndex, "font-size":"10px"};
- digitizeDivTag = new parent.DivTag(digitizeTagName, mod_digitize_target, digitizeTagStyle);
- }
- parent.mb_registerPanSubElement(digitizeTagName);
- parent.mb_registerSubFunctions("window.frames['"+ mod_digitize_elName + "'].drawDashedLine()");
-}
-
-
-function setStyleForTargetFrame(){
- var cssLink = mapWindow.document.createElement("link");
- var cssHead = mapWindow.document.getElementsByTagName("head")[0];
- cssLink.setAttribute("href", cssUrl);
- cssLink.setAttribute("type", "text/css");
- cssLink.setAttribute("rel", "stylesheet");
- cssHead.appendChild(cssLink);
-}
-
-function initialiseSnapping(){
- s = new parent.Snapping(mod_digitize_target, snappingTolerance, snappingColor, snappingHighlightZIndex);
-}
-function initialiseHighlight(){
- nonTransactionalHighlight = new parent.Highlight([mod_digitize_target], "nonTransactional", {"position":"absolute", "top":"0px", "left":"0px", "z-index":digitizeNonTransactionalZIndex}, nonTransactionalLineWidth);
-}
-function initialiseMeasure(){
- if (mapType == "DIV") {
- measureDivTag = new parent.DivTag(measureTagName, "", measureTagStyle);
- }
- else {
- measureDivTag = new parent.DivTag(measureTagName, measureTagTarget, measureTagStyle);
- }
- parent.mb_registerSubFunctions("window.frames['"+ mod_digitize_elName + "'].updateMeasureTag()");
-}
-// --- registered functions (end) -----------------------------------------------------------------------------------------
-// ------------------------------------------------------------------------------------------------------------------------
-
-
-function updateMeasureTag () {
- if (d.count() > 0 ) {
- if (d.get(_currentGeomIndex).count() > 0) {
- if (d.getGeometry(_currentGeomIndex, -1).count() > 0) {
- if (mod_digitizeEvent == button_line || mod_digitizeEvent == button_polygon) {
- var measureString = "";
- measureString += msgObj.measureTagLabelCurrent + d.getGeometry(_currentGeomIndex, -1).getCurrentDist(measureNumberOfDigits) + "<br>";
- measureString += msgObj.measureTagLabelTotal + d.getGeometry(_currentGeomIndex, -1).getTotalDist(measureNumberOfDigits);
- measureDivTag.write(measureString);
- return true;
- }
- }
- }
- }
- measureDivTag.clean();
-}
-
-
-
-// ------------------------------------------------------------------------------------------------------------------------
-// --- button handling (begin) --------------------------------------------------------------------------------------------
-
-function displayButtons(){
- for (var i = 0 ; i < buttonDig_id.length ; i ++) {
- if (parseInt(buttonDig_on[i])==1) {
- var divTag = document.createElement("div");
- divTag.setAttribute("id", "div_" + buttonDig_id[i]);
-// FIREFOX
- document.getElementById("digButtons").appendChild(divTag);
-
-//IE WORKAROUND, WORKS ALSO FOR FIREFOX
- var tagContent = "<div style='position:absolute; top:"+buttonDig_y[i]+"px; left:"+buttonDig_x[i]+"px;'><img name=\""+buttonDig_id[i]+"\" onmouseover=\"parent.mb_regButton_frame('initDigButton', mod_digitize_elName, "+i+");\" id=\""+buttonDig_id[i]+"\" title=\""+buttonDig_title_off[i]+"\" src=\""+buttonDig_imgdir+buttonDig_src[i]+"\"></div>";
- parent.writeTag(mod_digitize_elName,"div_" + buttonDig_id[i],tagContent);
- }
- }
-}
-
-function updateButtons() {
- for (var i = 0 ; i < buttonDig_id.length ; i ++) {
- if (parseInt(buttonDig_on[i])==1) {
- var currentButton = document.getElementById(buttonDig_id[i]);
- var currentStatus = buttonDig_id[i].status;
- var currentTitle = "";
- switch (buttonDig_id[i]) {
- case "point":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelPointOn;
- }
- else {
- currentTitle = msgObj.buttonLabelPointOff;
- }
- break;
- case "line":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelLineOn;
- }
- else {
- currentTitle = msgObj.buttonLabelLineOff;
- }
- break;
- case "lineContinue":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelLineContinueOn;
- }
- else {
- currentTitle = msgObj.buttonLabelLineContinueOff;
- }
- break;
- case "polygon":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelPolygonOn;
- }
- else {
- currentTitle = msgObj.buttonLabelPolygonOff;
- }
- break;
- case "dragBasePoint":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelMoveBasepointOn;
- }
- else {
- currentTitle = msgObj.buttonLabelMoveBasepointOff;
- }
- break;
- case "setBasePoint":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelInsertBasepointOn;
- }
- else {
- currentTitle = msgObj.buttonLabelInsertBasepointOff;
- }
- break;
- case "delBasePoint":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelDeleteBasepointOn;
- }
- else {
- currentTitle = msgObj.buttonLabelDeleteBasepointOff;
- }
- break;
- case "clear":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelClearListOn;
- }
- else {
- currentTitle = msgObj.buttonLabelClearListOff;
- }
- break;
- case "digitizeSplit":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelSplitOn;
- }
- else {
- currentTitle = msgObj.buttonLabelSplitOff;
- }
- break;
- case "digitizeMerge":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelMergeOn;
- }
- else {
- currentTitle = msgObj.buttonLabelMergeOff;
- }
- break;
- case "digitizeDifference":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelDifferenceOn;
- }
- else {
- currentTitle = msgObj.buttonLabelDifferenceOff;
- }
- break;
- case "mergeLine":
- if (currentStatus == 1) {
- currentTitle = msgObj.buttonLabelMergeLineOn;
- }
- else {
- currentTitle = msgObj.buttonLabelMergeLineOff;
- }
- break;
- }
- currentButton.title = currentTitle;
- }
- }
-}
-
-function initDigButton(ind, pos){
- parent.mb_button[ind] = document.getElementById(buttonDig_id[pos]);
- parent.mb_button[ind].img_over = buttonDig_imgdir + buttonDig_src[pos].replace(/_off/,"_over");
- parent.mb_button[ind].img_on = buttonDig_imgdir + buttonDig_src[pos].replace(/_off/,"_on");
- parent.mb_button[ind].img_off = buttonDig_imgdir + buttonDig_src[pos];
- parent.mb_button[ind].title_on = buttonDig_title_on[pos];
- parent.mb_button[ind].title_off = buttonDig_title_off[pos];
- parent.mb_button[ind].status = 0;
- parent.mb_button[ind].elName = buttonDig_id[pos];
- parent.mb_button[ind].fName = "";
- parent.mb_button[ind].go = new Function ("digitizeEnable(parent.mb_button["+ind+"])");
- parent.mb_button[ind].stop = new Function ("digitizeDisable(parent.mb_button["+ind+"])");
-}
-
-function digitizeEnable(obj) {
- if (obj.id == button_move || obj.id == button_insert || obj.id == button_delete) {
- mod_digitizeEvent = obj.id;
- executeDigitizePreFunctions();
- }
- else if (obj.id == button_point || obj.id == button_line ||
- obj.id == button_polygon || obj.id == button_clear ||
- obj.id == button_split || obj.id == button_merge ||
- obj.id == button_difference || obj.id == button_line_continue ||
- obj.id == button_line_merge){
-
- var el = mapDomElement;
- $(el).mousemove(function (e) {
- mod_digitize_go(e);
- }).mousedown(function (e) {
- mod_digitize_start(e);
- });
-
-
- mod_digitizeEvent = obj.id;
-
- //get a first snapping point for digitizing
- if (mod_digitizeEvent == button_point || mod_digitizeEvent == button_line || mod_digitizeEvent == button_polygon || mod_digitizeEvent == button_insert ) {
- s.resetPoints();
- if (snapping) {
- s.store(d);
- }
- }
-
- if (mod_digitizeEvent == button_point || mod_digitizeEvent == button_line || mod_digitizeEvent == button_polygon || mod_digitizeEvent == button_insert ) {
- //
- // complete a previously unfinished geometry
- //
- (function () {
- var currentGeometryDoesNotCorrespondToTheCurrentButton =
- (d.count() > 0 && d.get(_currentGeomIndex).count() > 0 &&
- !d.get(_currentGeomIndex).get(-1).isComplete() &&
- mod_digitizeEvent !== d.get(_currentGeomIndex).geomType);
- var currentGeometryType = mod_digitizeEvent;
-
- if (currentGeometryDoesNotCorrespondToTheCurrentButton) {
- var currentEpsg = parent.mb_mapObj[parent.getMapObjIndexByName(mod_digitize_target)].epsg;
- digitizeHistory.addItem({
- back: function(){
- s.resetPoints();
- d.del(_currentGeomIndex);
- if (snapping) {
- s.store(d);
- }
- d.getGeometry(_currentGeomIndex, -1).reopen();
- },
- forward: function(){
- d.close(-1);
- if (snapping) {
- s.store(d);
- }
- d.addMember(currentGeometryType);
- d.get(_currentGeomIndex).addGeometry();
- d.getGeometry(_currentGeomIndex,-1).setEpsg(currentEpsg);
- }
- });
- digitizeHistory.forward();
- }
- })();
-
- }
-
- executeDigitizePreFunctions();
- if (obj.id == button_polygon) {
- // close previous open polygons
- if (d.count() > 0 && d.get(_currentGeomIndex).count() > 0 && !d.get(_currentGeomIndex).get(-1).isComplete()) {
- if (d.get(_currentGeomIndex).geomType !== parent.geomType.polygon) {
-// d.close();
-// executeDigitizeSubFunctions();
- }
- else {
- s.add(d.getPoint(-1, -1, 0));
- }
- }
- }
- else if (obj.id == button_line) {
- if (d.count() > 0 && d.get(_currentGeomIndex).count() > 0 && !d.get(_currentGeomIndex).get(-1).isComplete()) {
- if (d.get(_currentGeomIndex).geomType != parent.geomType.line) {
-// d.close();
-// executeDigitizeSubFunctions();
- }
- else {
-// s.add(d.getPoint(-1, -1, -1));
- }
- }
- }
- else if (obj.id == button_line_continue) {
- s.resetPoints();
- for (var i = 0; i < d.count(); i++) {
- if (d.get(i).geomType !== parent.geomType.line) {
- continue;
- }
- s.add(d.getPoint(i, -1, 0));
- s.add(d.getPoint(i, -1, -1));
- }
- }
- else if (obj.id == button_clear) {
- var clear = confirm(msgObj.messageConfirmDeleteAllGeomFromList);
- if (clear) {
- d = new parent.GeometryArray();
- s.resetPoints();
- parent.mb_disableThisButton(mod_digitizeEvent);
- digitizeHistory = new DigitizeHistory();
- }
- }
- else if (obj.id == button_merge) {
- var applicable = (d.count() > 1);
-
- var polygonTextArray = [];
- for (var i = 0; i < d.count(); i++) {
- if (d.get(i).geomType != parent.geomType.polygon) {
- applicable = false;
- polygonTextArray = [];
- break;
- }
- polygonTextArray.push(d.get(i).toText());
- }
-
- if (!applicable) {
- alert(msgObj.messageErrorMergeNotApplicable);
- parent.mb_disableThisButton(mod_digitizeEvent);
- return false;
- }
-
- parent.mb_ajax_post("../php/mod_digitize_mergePolygon.php", {polygons: polygonTextArray.join(";")}, function(json, status) {
- var response = json;
- var polygon = response.polygon;
- var mapIndex = parent.getMapObjIndexByName(mod_digitize_target);
- d.importGeometryFromText(polygon, parent.mb_mapObj[mapIndex].epsg);
-
- // remove the original polygons
- var len = d.count();
- for (var i = 0; i < len-1; i++) {
- d.del(0);
- }
- parent.mb_disableThisButton(mod_digitizeEvent);
- });
- }
- else if (obj.id == button_split) {
- var applicable = (d.count() == 2) &&
- (
- d.get(0).geomType == parent.geomType.polygon ||
- d.get(0).geomType == parent.geomType.line
- ) && (d.get(1).geomType == parent.geomType.line);
- if (!applicable) {
- alert(msgObj.messageErrorSplitNotApplicable);
- parent.mb_disableThisButton(mod_digitizeEvent);
- return false;
- }
-
- var splitCallback = function (json, status) {
- var response = json;
- var resultArray = response.geometries;
- var wfsConfId = d.get(0).wfs_conf;
- var mapIndex = parent.getMapObjIndexByName(mod_digitize_target);
- for (var i in resultArray) {
- d.importGeometryFromText(resultArray[i], parent.mb_mapObj[mapIndex].epsg);
- d.get(-1).wfs_conf = wfsConfId;
- var wfsProperties = d.get(0).e;
-
- for (var j = 0; j < wfsProperties.count(); j++) {
- if (i > 0 && wfsProperties.getName(j) === "fid") {
- continue;
- }
- d.get(-1).e.setElement(
- wfsProperties.getName(j),
- wfsProperties.getValue(j)
- );
- }
- }
- // remove the original geometry and the temporary line
- d.del(0);
- d.del(0);
- parent.mb_disableThisButton(mod_digitizeEvent);
- };
-
- if (d.get(0).geomType == parent.geomType.polygon) {
- var polygonText = d.get(0).toText();
- var lineText = d.get(1).toText();
-
- parent.mb_ajax_post("../php/mod_digitize_splitPolygon.php", {
- polygon: polygonText,
- line: lineText
- }, splitCallback);
- }
- else {
- var line1text = d.get(0).toText();
- var line2text = d.get(1).toText();
-
- parent.mb_ajax_post("../php/mod_digitize_splitLine.php", {
- line1: line1text,
- line2: line2text
- }, splitCallback);
- }
- }
- else if (obj.id == button_difference) {
- var applicable = (d.count() == 2) &&
- (d.get(0).geomType == parent.geomType.polygon) &&
- (d.get(1).geomType == parent.geomType.polygon);
- if (!applicable) {
- alert(msgObj.messageErrorDifferenceNotApplicable);
- parent.mb_disableThisButton(mod_digitizeEvent);
- return false;
- }
-
- var polygon1Text = d.get(0).toText();
- var polygon2Text = d.get(1).toText();
-
- parent.mb_ajax_post("../php/mod_digitize_differencePolygon.php", {polygon1: polygon1Text, polygon2: polygon2Text}, function(json, status) {
- var response = json;
- var polygonArray = response.polygons;
- var wfsConfId = d.get(0).wfs_conf;
- var wfsProperties = d.get(0).e;
- var mapIndex = parent.getMapObjIndexByName(mod_digitize_target);
- for (var i in polygonArray) {
- d.importGeometryFromText(polygonArray[i], parent.mb_mapObj[mapIndex].epsg);
- d.get(-1).wfs_conf = wfsConfId;
- for (var i = 0; i < wfsProperties.count(); i++) {
- if (wfsProperties.getName(i) === "fid") {
- continue;
- }
- d.get(-1).e.setElement(wfsProperties.getName(i), wfsProperties.getValue(i));
- }
- }
- // remove the original and the temporary polygon
- d.del(0);
- d.del(0);
- parent.mb_disableThisButton(mod_digitizeEvent);
- });
- }
- else if (obj.id == button_line_merge) {
- //var applicable = (d.count() > 1);
-
-/* var lineTextArray = [];
- for (var i = 0; i < d.count(); i++) {
- if (d.get(i).geomType != parent.geomType.line) {
- applicable = false;
- lineTextArray = [];
- break;
- }
- lineTextArray.push(d.get(i).toText());
- }
-*/
- var applicable = (d.count() == 2) &&
- (d.get(0).geomType == parent.geomType.line) &&
- (d.get(1).geomType == parent.geomType.line);
-
- if (!applicable) {
- alert(msgObj.messageErrorMergeLineNotApplicable);
- parent.mb_disableThisButton(mod_digitizeEvent);
- return false;
- }
-
- var line1Text = d.get(0).toText();
- var line2Text = d.get(1).toText();
-
- parent.mb_ajax_post("../php/mod_digitize_mergeLines.php", {line1: line1Text, line2: line2Text}, function(json, status) {
- var response = json;
- var line = response.line;
- if(line == "") {
- alert(msgObj.errorMessageInvalidLineGeometries);
- parent.mb_disableThisButton(mod_digitizeEvent);
- return false;
- }
- var wfsConfId = d.get(-1).wfs_conf;
- var wfsProperties = d.get(-1).e;
- var mapIndex = parent.getMapObjIndexByName(mod_digitize_target);
-
- d.importGeometryFromText(line, parent.mb_mapObj[mapIndex].epsg);
- d.get(-1).wfs_conf = wfsConfId;
- for (var i = 0; i < wfsProperties.count(); i++) {
- d.get(-1).e.setElement(wfsProperties.getName(i), wfsProperties.getValue(i));
- }
-
- var len = d.count();
- var obsoleteFeatureArray = [];
- wfsConf = parent.get_complete_wfs_conf();
- for (var i = 0; i < len-2; i++) {
- if(typeof wfsConf == 'object' && typeof wfsConf[d.get(i).wfs_conf] == 'object') {
- var featureCollection = new GeometryArray();
- featureCollection.importGeoJSON(d.get(i).toString());
- obsoleteFeatureArray.push({
- geoJson : featureCollection.toString(),
- wfsConfId : wfsConf[d.get(i).wfs_conf]['wfs_conf_id']
- });
- }
- }
- var mergedFeatureId = d.get(-1).e.getElementValueByName("fid");
-
- // remove the original lines
- var len = d.count();
- //for (var i = len-1 ; i >= 1; i--) {
- for (var i = 0; i < len-1; i++) {
- d.del(0);
- }
- parent.mb_disableThisButton(mod_digitizeEvent);
-
- var res = true;
- res = parent.Mapbender.modules.digitize.events.mergeLines.trigger({
- mergedFeatureId: mergedFeatureId,
- obsoleteFeature: obsoleteFeatureArray
-
- }, "AND");
-
- if (res === false) {
- return;
- }
-
- if(mergedFeatureId !== false) {
- parent.Mapbender.modules.digitize.events.afterWfs.register(function (obj) {
- for(var j = 0; j < obsoleteFeatureArray.length; j++) {
- if(obj.type == 'update' && obj.feature.e.getElementValueByName("fid") == mergedFeatureId) {
- parent.mb_ajax_post(
- "../extensions/geom2wfst.php",
- {
- 'geoJson' : obsoleteFeatureArray[j].geoJson,
- 'method' : "delete",
- 'wfs_conf_id' : obsoleteFeatureArray[j].wfsConfId
- },
- function(json,status){
- parent.zoom(mod_digitize_target, true, 0.999);
- }
- );
- }
- }
- });
- }
- });
- }
- }
- else {
- alert("unknown type: " + obj.id);
- }
-}
-
-function digitizeDisable(obj) {
- mod_digitize_timeout();
- executeDigitizeSubFunctions();
- mod_digitizeEvent = false;
-}
-// --- button handling (end) ----------------------------------------------------------------------------------------------
-// ------------------------------------------------------------------------------------------------------------------------
-
-// -----------------------------------------------------------------------------------------------------------
-// --- display (begin) -----------------------------------------------------------------------------------------
-
-function updateExtent() {
- var anInd = parent.getMapObjIndexByName(mod_digitize_target);
- var change = false;
- if (typeof(mod_digitize_width) == 'undefined' || mod_digitize_width != parent.mb_mapObj[anInd].width) {
- mod_digitize_width = parent.mb_mapObj[anInd].width;
- change = true;
- }
- if (typeof(mod_digitize_height) == 'undefined' || mod_digitize_height != parent.mb_mapObj[anInd].height) {
- mod_digitize_height = parent.mb_mapObj[anInd].height;
- change = true;
- }
- if (typeof(mod_digitize_epsg) == 'undefined' || mod_digitize_epsg != parent.mb_mapObj[anInd].epsg) {
- mod_digitize_epsg = parent.mb_mapObj[anInd].epsg;
- change = true;
- }
-// if (change) {
-// drawDashedLine();
-// }
-}
-
-function drawDashedLine(){
- if (!nonTransactionalEditable) {
- nonTransactionalHighlight.clean();
- }
- var smP = "";
- smP += "<div class='t_img'>";
- smP += "<img src='"+parent.mb_trans.src+"' width='"+mod_digitize_width+"' height='0'></div>";
- smP += "<div class='t_img'>";
- smP += "<img src='"+parent.mb_trans.src+"' width='0' height='"+mod_digitize_height+"'></div>";
-
- if (!nonTransactionalEditable) {
- nonTransactionalHighlight.clean();
- }
- var smPArray = [];
- smPArray[smPArray.length] = "<div class='t_img'>"
- + "<img src='"+parent.mb_trans.src+"' width='"+mod_digitize_width+"' height='0'></div>"
- + "<div class='t_img'>"
- + "<img src='"+parent.mb_trans.src+"' width='0' height='"+mod_digitize_height+"'></div>";
-
- var mapObj = parent.mb_mapObj[parent.getMapObjIndexByName(mod_digitize_target)];
- var width = mapObj.width;
- var height = mapObj.height;
- var arrayBBox = mapObj.extent.toString().split(",")
- var minX = parseFloat(arrayBBox[0]);
- var minY = parseFloat(arrayBBox[1]);
- var maxX = parseFloat(arrayBBox[2]);
- var maxY = parseFloat(arrayBBox[3]);
- var cx = width/(maxX - minX);
- var cy = height/(maxY - minY);
- var isMoveOrInsertOrDelete = mod_digitizeEvent == button_move || mod_digitizeEvent == button_insert || mod_digitizeEvent == button_delete;
- var minDist = 6;
-
- for(var i=0, lenGeomArray = d.count(); i < lenGeomArray; i++){
- var currentGeomArray = d.get(i);
-
- if (!nonTransactionalEditable && !isTransactional(currentGeomArray)) {
- nonTransactionalHighlight.add(currentGeomArray, nonTransactionalColor);
- }
- else {
- for(var j=0, lenGeom = currentGeomArray.count(); j < lenGeom ; j++){
- var currentGeometry = d.getGeometry(i,j);
- var isPolygon = currentGeomArray.geomType == parent.geomType.polygon;
- var isLine = currentGeomArray.geomType == parent.geomType.line;
- var isComplete = currentGeometry.isComplete();
- var lastPaintedPoint = false;
-
- for(var k = 0, lenPoint = currentGeometry.count(); k < lenPoint; k++){
- var currentPoint = currentGeometry.get(k);
- var totalDistMeasureTag = "";
- var currentPointMap = new Point(Math.round((currentPoint.x - minX)*cx), Math.round((maxY - currentPoint.y)*cy));
-// var isTooCloseToPrevious = lastPaintedPoint && (k > 0) && Math.abs(currentPointMap.x-lastPaintedPoint.x) <= minDist && Math.abs(currentPointMap.y-lastPaintedPoint.y) <= minDist;
-// if (!isTooCloseToPrevious) {
- var currentPointIsVisible = currentPointMap.x > 0 && currentPointMap.x < width && currentPointMap.y > 0 && currentPointMap.y < height;
- if (currentPointIsVisible) {
- if (!isComplete && ((k == 0 && isPolygon) || (k == lenPoint-1 && isLine))) {
- smPArray[smPArray.length] = "<div class='bp' style='top:"+
- (currentPointMap.y-2)+"px;left:"+(currentPointMap.x-2)+"px;z-index:"+
- parseInt(digitizeTransactionalZIndex+10, 10)+";background-color:"+linepointColor+"'";
- if(measuring) {
- if(isLine && k != 0) {
- totalDistMeasureTag = "<p class='measure'>"+currentGeometry.getAggregatedDist(k-1, 2)+"</p>";
- }
- }
-
- }
- else {
- smPArray[smPArray.length] = "<div class='bp' style='top:"+(currentPointMap.y-2)+"px;left:"+(currentPointMap.x-2)+"px;z-index:"+parseInt(digitizeTransactionalZIndex+10, 10)+";'";
- if(measuring) {
- if(isLine && k == 0) {
- //nothing
- totalDistMeasureTag = "";
- }
- else {
- totalDistMeasureTag = "<p class='measure'>"+currentGeometry.getAggregatedDist(k-1, 2)+"</p>";
- }
- }
-
- }
- if(k==0 && isPolygon && !isComplete){
- smPArray[smPArray.length] = " title='"+msgObj.closePolygon_title+"' ";
-
- }
- if(isMoveOrInsertOrDelete) {
- smPArray[smPArray.length] = " onmouseover='window.frames[\""+mod_digitize_elName+"\"].handleBasepoint(this,"+i+","+j+","+k+")' ;";
- }
- smPArray[smPArray.length] = ">";
- if (isPolygon || isLine) {
- smPArray[smPArray.length] = totalDistMeasureTag;
- }
- smPArray[smPArray.length] = "</div>";
- lastPaintedPoint = currentPointMap;
-
- }
- if (k > 0) {
- points = parent.calculateVisibleDash(currentPointMap, previousPointMap, width, height);
- if (points != false) {
- smPArray[smPArray.length] = evaluateDashes(points[0], points[1], i, j, k);
- }
- }
-// }
- var previousPointMap = currentPointMap;
- }
- if (isPolygon && currentGeometry.innerRings.count() > 0) {
- // draw inner rings
-
- for (var l = 0, lenRings = currentGeometry.innerRings.count(); l < lenRings; l++) {
- var currentRing = currentGeometry.innerRings.get(l);
- var lastPaintedPoint = false;
-
- for (var m = 0, lenPoint = currentRing.count(); m < lenPoint; m++) {
- var currentPoint = currentRing.get(m);
- var currentPointMap = new Point(Math.round((currentPoint.x - minX) * cx), Math.round((maxY - currentPoint.y) * cy));
-
- // var isTooCloseToPrevious = lastPaintedPoint && (k > 0) && Math.abs(currentPointMap.x-lastPaintedPoint.x) <= minDist && Math.abs(currentPointMap.y-lastPaintedPoint.y) <= minDist;
- // if (!isTooCloseToPrevious) {
- var currentPointIsVisible = currentPointMap.x > 0 && currentPointMap.x < width && currentPointMap.y > 0 && currentPointMap.y < height;
- if (currentPointIsVisible) {
- if (!isComplete && ((k == 0 && isPolygon) || (k == lenPoint - 1 && isLine))) {
- smPArray[smPArray.length] = "<div class='bp' style='top:" +
- (currentPointMap.y - 2) +
- "px;left:" +
- (currentPointMap.x - 2) +
- "px;z-index:" +
- parseInt(digitizeTransactionalZIndex+10, 10) +
- ";background-color:" +
- linepointColor +
- "'";
- }
- else {
- smPArray[smPArray.length] = "<div class='bp' style='top:" + (currentPointMap.y - 2) + "px;left:" + (currentPointMap.x - 2) + "px;z-index:" + parseInt(digitizeTransactionalZIndex+10, 10) + ";'";
- }
- if (m == 0 && isPolygon && !isComplete) {
- smPArray[smPArray.length] = " title='" + msgObj.closePolygon_title + "' ";
- }
- if (isMoveOrInsertOrDelete) {
- smPArray[smPArray.length] = " onmouseover='window.frames[\"" + mod_digitize_elName + "\"].handleBasepoint(this," + i + "," + j + "," + l + "," + m + ")' ;";
- }
- smPArray[smPArray.length] = "></div>";
- lastPaintedPoint = currentPointMap;
- }
- if (m > 0) {
- points = parent.calculateVisibleDash(currentPointMap, previousPointMap, width, height);
- if (points != false) {
- smPArray[smPArray.length] = evaluateDashes(points[0], points[1], i, j, l, m);
- }
- }
- // }
- var previousPointMap = currentPointMap;
- }
- }
- }
- }
- }
- }
- if (!nonTransactionalEditable) {
- nonTransactionalHighlight.paint();
- }
-
- digitizeDivTag.write(smPArray.join(""));
-}
-
-function evaluateDashes(start, end, memberIndex, geomIndex, ringIndex, pointIndex){
- if (pointIndex == undefined) {
- pointIndex = ringIndex;
- ringIndex = undefined;
- }
-
- var strArray = [];
- var delta = new parent.Point(end.x - start.x, end.y - start.y);
- var lastGeomIsComplete = d.getGeometry(-1,-1).isComplete();
-
- var vecLength = start.dist(end);
- var n = Math.round(vecLength/dotDistance);
- if (n > 0) {
- var step = delta.dividedBy(n);
- }
- var lineCenter = Math.round(n/2);
-
- for(var i=1; i < n; i++){
- var x = Math.round(start.x + i * step.x) - 2;
- var y = Math.round(start.y + i * step.y) - 2;
- if(x >= 0 && x <= mod_digitize_width && y >= 0 && y <= mod_digitize_height){
- if (memberIndex == d.count()-1 && !lastGeomIsComplete) {
- strArray[strArray.length] = "<div class='lp' style='top:"+y+"px;left:"+x+"px;z-index:"+digitizeTransactionalZIndex+";background-color:"+linepointColor+"' ";
- }
- else {
- strArray[strArray.length] = "<div class='lp' style='top:"+y+"px;left:"+x+"px;z-index:"+digitizeTransactionalZIndex+";' onmousedown='return false;' ";
- }
- if(mod_digitizeEvent == button_insert) {
- strArray[strArray.length] = "onmouseover='window.frames[\""+mod_digitize_elName+"\"].convertLinepointToBasepoint(this,"+memberIndex+","+geomIndex+","+ringIndex+","+pointIndex+")'";
- }
- strArray[strArray.length] = ">";
- if(measuring) {
- if(i == lineCenter) {
- strArray[strArray.length] = "<p class='measure'>"+d.getGeometry(memberIndex, geomIndex).getDist(pointIndex-1, 2)+"</p>";
- }
- }
- strArray[strArray.length] = "</div>";
- }
- }
- return strArray.join("");
-}
-
-function isTransactional(geom) {
-// alert(typeof(geom.wfs_conf) + " " + geom.wfs_conf + " " + wfsConf.length);
- if (typeof(geom.wfs_conf) == 'number') {
- if (geom.wfs_conf >= 0 && geom.wfs_conf < wfsConf.length) {
- var isTransactionalGeom = (wfsConf[geom.wfs_conf]['wfs_transaction'] != "" && wfsConf[geom.wfs_conf]['fkey_featuretype_id'] != "");
- if (isTransactionalGeom) {
- return true;
- }
- else{
- return false;
- }
- }
- }
- else if (typeof(geom.wfs_conf) == 'undefined') {
- return true;
- }
-}
-
-function isValidWfsConfIndex (wfsConf, wfsConfIndex) {
- return (typeof(wfsConfIndex) == "number" && wfsConfIndex >=0 && wfsConfIndex < wfsConf.length);
-}
-
-function getName (geom) {
- wfsConfId = geom.wfs_conf;
- wfsConf = parent.get_complete_wfs_conf();
- if (isValidWfsConfIndex(wfsConf, wfsConfId)) {
- var resultName = "";
- for (var i = 0 ; i < wfsConf[wfsConfId]['element'].length ; i++) {
- if (wfsConf[wfsConfId]['element'][i]['f_show'] == 1) {
- var attrValue = geom.e.getElementValueByName(wfsConf[wfsConfId]['element'][i]['element_name']);
- if(attrValue === false) {
- resultName += "";
- }
- else{
- resultName += geom.e.getElementValueByName(wfsConf[wfsConfId]['element'][i]['element_name']) + " ";
- }
- }
- }
- if (resultName == "") {
- resultName = wfsConf[wfsConfId]['g_label'];
- }
- return resultName;
- }
- else if (geom.e.getElementValueByName("name")) {
- return geom.e.getElementValueByName("name");
- }
- else {
- return msgObj.digitizeDefaultGeometryName;
- }
-}
-
-function updateListOfGeometries(){
- var listOfGeom = "<ul>";
- if (d.count() > 0) {
- wfsConf = parent.get_complete_wfs_conf();
- //for (var i = 0 ; i < d.count(); i ++) {
- for (var i = d.count()-1 ; i >= 0; i--) {
-// if (d.get(i).get(-1).isComplete() && (nonTransactionalEditable || isTransactional(d.get(i)))) {
- if ((nonTransactionalEditable || isTransactional(d.get(i)))) {
-
- // for the geometries from a kml, there is another save dialogue
- if (d.get(i).isFromKml()) {
- // if the kml is in the db (id = id in database)
- if (d.get(i).e.getElementValueByName("Mapbender:id")) {
- // button: geometry information, update kml
- listOfGeom += "<li>";
- listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_wfs_src+"' title='"+msgObj.buttonDig_wfs_title+"' onclick='showWfsKml("+i+")'>";
- }
- }
- else {
- // button: geometry information, save, update, delete
- listOfGeom += "<li>";
- if (d.get(i).get(-1).isComplete() && wfsExistsForGeom(d.get(i), wfsConf)) {
- listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_wfs_src+"' title='"+msgObj.buttonDig_wfs_title+"' onclick='showWfs("+i+")'>";
- }
-
- // button: remove this geometry
- listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_remove_src+"' title='"+msgObj.buttonDig_remove_title+"' onclick='parent.mb_disableThisButton(mod_digitizeEvent);d.del("+i+");executeDigitizeSubFunctions();'>";
-
- // button clone this geometry
- if (d.get(i).get(-1).isComplete() && addCloneGeometryButton === true) {
- listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_clone_src+"' title='"+msgObj.buttonDig_clone_title+"' onclick='d.addCopy(d.get("+i+"));d.get(-1).e.delElement(\"fid\");eventCloseGeometry.trigger({index: d.count() - 1, geometry: d.get(-1)});executeDigitizeSubFunctions();'>";
- }
- }
-
- /* // button: remove geometry from database
- if (d.get(i).e.getElementValueByName('fid')) {
- listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_removeDb_src +
- "' title='"+msgObj.buttonDig_removeDb_title +
- "' onclick=\"deleteFeature("+i+")\">";
- }
- */
- listOfGeom += "<div class='digitizeGeometryListItem' onmouseover='parent.mb_wfs_perform(\"over\",d.get("+i+"),\""+geomHighlightColour+"\");' ";
- listOfGeom += " onmouseout='parent.mb_wfs_perform(\"clean\",d.get("+i+"),\""+geomHighlightColour+"\")' ";
- listOfGeom += " onclick='parent.mb_wfs_perform(\"click\",d.get("+i+"),\""+geomHighlightColour+"\");' ";
- var geomName = getName(d.get(i));
- var currentGeomType;
- if (d.get(i).geomType == parent.geomType.polygon) {
- currentGeomType = msgObj.messageDescriptionPolygon;
- }
- else if (d.get(i).geomType == parent.geomType.line) {
- currentGeomType = msgObj.messageDescriptionLine;
- }
- else if (d.get(i).geomType == parent.geomType.point) {
- currentGeomType = msgObj.messageDescriptionPoint;
- }
- var multi = "";
- if (d.get(i).count() > 1) {
- multi = "multi";
- }
- listOfGeom += ">" + htmlspecialchars(geomName) +" (" + multi + currentGeomType + ")</div>";
-
- // multigeometries
- listOfGeom += "<ul>";
- for (var j = 0; j < d.get(i).count(); j++) {
- var currentGeom = d.get(i).get(j);
- if (d.get(i).count() > 1 || (d.get(i).geomType == geomType.polygon &&
- d.get(i).get(j).innerRings &&
- d.get(i).get(j).innerRings.count() > 0)) {
- listOfGeom += "<li>";
- listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_remove_src+"' title='"+msgObj.buttonDig_remove_title+"' onclick='parent.mb_disableThisButton(mod_digitizeEvent);d.get("+i+").del(" + j + ");executeDigitizeSubFunctions();'>";
- listOfGeom += "<div class='digitizeGeometryListItem' onmouseover='parent.mb_wfs_perform(\"over\",d.get("+i+").get("+j+"),\""+geomHighlightColour+"\");' ";
- listOfGeom += " onmouseout='parent.mb_wfs_perform(\"clean\",d.get("+i+").get("+j+"),\""+geomHighlightColour+"\")' ";
- listOfGeom += " onclick='parent.mb_wfs_perform(\"click\",d.get("+i+").get("+j+"),\""+geomHighlightColour+"\");' ";
- listOfGeom += ">" + currentGeomType + "#" + (j+1) +"</div></li>";
- }
- if (d.get(i).geomType == geomType.polygon &&
- d.get(i).get(j).innerRings &&
- d.get(i).get(j).innerRings.count() > 0) {
- listOfGeom += "<ul>";
- for (var k = 0; k < d.get(i).get(j).innerRings.count(); k++) {
- var currentRing = d.get(i).get(j).innerRings.get(k);
- listOfGeom += "<li>";
- listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_remove_src+"' title='"+msgObj.buttonDig_remove_title+"' onclick='parent.mb_disableThisButton(mod_digitizeEvent);d.get("+i+").get(" + j + ").innerRings.del(" + k + ");executeDigitizeSubFunctions();'>";
- listOfGeom += "<div class='digitizeGeometryListItem' onmouseover='parent.mb_wfs_perform(\"over\",d.getGeometry("+i+","+j+").innerRings.get(" + k + "),\""+geomHighlightColour+"\");' ";
- listOfGeom += " onmouseout='parent.mb_wfs_perform(\"clean\",d.getGeometry("+i+","+j+").innerRings.get(" + k + "),\""+geomHighlightColour+"\")' ";
- listOfGeom += " onclick='parent.mb_wfs_perform(\"click\",d.getGeometry("+i+","+j+").innerRings.get(" + k + "),\""+geomHighlightColour+"\");' ";
- listOfGeom += ">inner ring #" + (k+1) +"</div></li>";
-
- }
- listOfGeom += "</ul>";
- }
- }
- listOfGeom += "</ul>";
- listOfGeom += "</li>";
- }
- }
- }
- listOfGeom += "<ul>";
- parent.writeTag(mod_digitize_elName,"listOfGeometries",listOfGeom);
-}
-// --- display (end) -----------------------------------------------------------------------------------------
-// -----------------------------------------------------------------------------------------------------------
-
-
-// -----------------------------------------------------------------------------------------------------------
-// --- wfs window (begin) -----------------------------------------------------------------------------------------
-
-// -----------------------------------------------------------------------------------------------------------
-// --- wfs window form check (begin) -----------------------------------------------------------------------------------------
-
-function formCorrect(doc, formId) {
- var isCorrect = true;
- var errorMessage = "";
- var result;
- var form = doc.getElementById(formId);
-
- result = mandatoryFieldsNotEmpty(doc, form);
- isCorrect = isCorrect && result.isCorrect;
- errorMessage += result.errorMessage;
-
- //select box is now checked within function mandatoryFieldsNotEmpty
- //result = validBoxEntrySelected(form);
- //isCorrect = isCorrect && result.isCorrect;
- //errorMessage += result.errorMessage;
-
- result = dataTypeIsCorrect(doc, form);
- isCorrect = isCorrect && result.isCorrect;
- errorMessage += result.errorMessage;
-
- return {"isCorrect":isCorrect, "errorMessage":errorMessage};
-}
-
-function validBoxEntrySelected(form){
- var isCorrect = true;
- var errorMessage = "";
- var name = "";
- for (var i = 0; i < form.childNodes.length && isCorrect; i++) {
- if (form.childNodes[i].nodeName.toUpperCase() == "SELECT") {
- name += form.childNodes[i].name;
- if (parseInt(form.childNodes[i].selectedIndex) == 0 && $(form.childNodes[i]).hasClass("mandatory")) {
- var msg = name + ": " + msgObj.messageSelectAnOption + "\n"
- var categ = form.childNodes[i].getAttribute("category");
- if (typeof(categ) != "undefined") {
- msg = categ + " => " + msg;
- }
- return {"isCorrect":false, "errorMessage":msg};
- }
- }
- else if (form.childNodes[i].hasChildNodes()) {
- var res = validBoxEntrySelected(form.childNodes[i]);
- errorMessage = res.errorMessage + errorMessage;
- isCorrect = res.isCorrect;
-
- }
- }
- return {"isCorrect":isCorrect, "errorMessage":errorMessage};
-}
-
-function mandatoryFieldsNotEmpty(doc, node){
- var isCorrect = true;
- var errorMessage = "";
-
- var $nodeArray = $(".mandatory", doc);
- for (var i = 0; i < $nodeArray.size() && isCorrect; i++) {
- var $currentNode = $nodeArray.eq(i);
- var tagName = $currentNode.get(0).nodeName.toUpperCase();
- if (tagName == "INPUT" && $currentNode.val() == "") {
- isCorrect = false;
- errorMessage += "'"+ $currentNode.attr("name") +"': "+ msgObj.messageErrorFieldIsEmpty +"\n";
- }
-
- if (tagName == "SELECT" && parseInt($currentNode.get(0).selectedIndex) == 0) {
- isCorrect = false;
- errorMessage += "'"+ $currentNode.attr("name") +"': "+ msgObj.messageErrorFieldIsEmpty +"\n";
- }
- }
- return {"isCorrect":isCorrect, "errorMessage":errorMessage};
-}
-
-function isInteger(str) {
- if (str.match(/^[0-9]{0,8}$/) || str == "" ) { //will be better ;-)
- return true;
- }
- return false;
-}
-
-function isFloat(str) {
- if (isInteger(str)) {
- return true;
- }
- if (str.match(/^\d+\.\d+$/)) {
- return true;
- }
- return false;
-}
-
-function replaceCommaByDecimalPoint(str) {
- var patternString = ",";
- var pattern = new RegExp(patternString);
- while (str.match(pattern)) {
- str = str.replace(pattern, ".");
- }
- return str;
-}
-
-function dataTypeIsCorrect(doc, node){
- var isCorrect = true;
- var errorMessage = "";
-
- nodeArray = doc.getElementsByName("datatype");
- for (var i = 0; i < nodeArray.length ; i++) {
- if (nodeArray[i].nodeName.toUpperCase() == "INPUT" && nodeArray[i].type == "hidden" && nodeArray[i].id.substr(0,9) == "datatype_") {
- var nodeId = nodeArray[i].id.substr(9);
- var nodeValue = doc.getElementById(nodeId).value;
-
- if (nodeArray[i].value == "int") {
- if (!isInteger(nodeValue)) {
- isCorrect = false;
- errorMessage += "'"+doc.getElementById(nodeId).name+"': "+ msgObj.messageErrorNotAnInteger + "\n";
- }
- }
- else if (nodeArray[i].value == "double" || nodeArray[i].value == "float") {
- nodeValue = replaceCommaByDecimalPoint(nodeValue);
- if (!isFloat(nodeValue)) {
- isCorrect = false;
- errorMessage += "'"+doc.getElementById(nodeId).name+"': "+ msgObj.messageErrorNotAFloat + "\n";
- }
- else {
- doc.getElementById(nodeId).value = nodeValue;
- }
- }
- }
- }
- return {"isCorrect":isCorrect, "errorMessage":errorMessage};
-}
-// --- wfs window form check (end) -----------------------------------------------------------------------------------------
-// -----------------------------------------------------------------------------------------------------------
-
-function getAvailableWfsForGeom(geom, wfsConf) {
- var wfsConfIndices = [];
-
- for (var attr in wfsConf) {
- var isTrans = (wfsConf[attr]['wfs_transaction'] != "");
- if (!isTrans) {
- continue;
- }
- /*
- if (isValidWfsConfIndex(wfsConf, parseInt(geom.wfs_conf))) {
- if (parseInt(geom.wfs_conf) == parseInt(attr)) {
- wfsConfIndices.push(attr);
- }
- }
- else {
- */
- for (var elementIndex = 0; elementIndex < wfsConf[attr]['element'].length ; elementIndex++) {
- var isGeomColumn = (parseInt(wfsConf[attr]['element'][elementIndex]['f_geom']) == 1);
- if (isGeomColumn) {
- var isMultiPolygon = (
- geom.geomType == parent.geomType.polygon &&
- (
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'MultiPolygonPropertyType' ||
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'GeometryPropertyType' ||
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'MultiSurfacePropertyType'
- )
- );
- var isPolygon = (
- geom.geomType == parent.geomType.polygon &&
- geom.count() == 1 &&
- (
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'PolygonPropertyType' ||
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'GeometryPropertyType' ||
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'SurfacePropertyType'
- )
- );
- var isMultiLine = (
- geom.geomType == parent.geomType.line &&
- (
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'MultiLineStringPropertyType' ||
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'GeometryPropertyType' ||
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'MultiCurvePropertyType'
- )
- );
- var isLine = (
- geom.geomType == parent.geomType.line &&
- geom.count() == 1 &&
- (
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'LineStringPropertyType' ||
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'GeometryPropertyType' ||
- wfsConf[attr]['element'][elementIndex]['element_type'] == 'CurvePropertyType'
- )
- );
- var isPoint = (geom.geomType == parent.geomType.point && wfsConf[attr]['element'][elementIndex]['element_type'] == 'PointPropertyType');
- var isMultiPoint = (geom.geomType == parent.geomType.point && wfsConf[attr]['element'][elementIndex]['element_type'] == 'MultiPointPropertyType');
-// alert(isMultiPolygon + " " + isPolygon + " " + isMultiLine + " " + isLine + " " + isPoint);
- if (isMultiPolygon || isPolygon || isMultiLine || isLine || isMultiPoint || isPoint || wfsConf[attr]['element'][elementIndex]['element_type'] == 'GeometryPropertyType') {
-
- wfsConfIndices.push(attr);
- }
- }
- }
- //}
- }
- return wfsConfIndices;
-}
-function wfsExistsForGeom(geom, wfsConf) {
- wfsConfIndices = getAvailableWfsForGeom(geom, wfsConf);
-// alert(wfsConfIndices.join(","));
- if (wfsConfIndices.length > 0) {
- return true;
- }
- return false;
-}
-
-
-function showWfsKml (geometryIndex) {
- wfsKmlWindow = open("", "wfsattributes", "width="+wfsWindowWidth+", height="+wfsWindowHeight+", resizable, dependent=yes, scrollbars=yes");
- wfsKmlWindow.document.open("text/html");
- wfsKmlWindow.document.writeln("<html><head><meta http-equiv='Content-Type' content='text/html; charset=<?php echo CHARSET;?>'></head><body><div id='linkToKml'></div><div id='elementForm'></div></body></html>");
- wfsKmlWindow.document.close();
-
- str = "<form id = 'wmsKmlForm' onsubmit='return false;'><table>";
-
- var properties = d.get(geometryIndex).e;
- var propertyCount = properties.count();
- for (var i = 0; i < propertyCount; i++) {
- var key = properties.getName(i);
- var value = properties.getValue(i);
- var expr = /Mapbender:/;
- if (!key.match(expr)) {
- str += "\t\t<tr>\n";
- str += "\t\t\t<td>\n\t\t\t\t<div>" + key + "</div>\n\t\t\t</td>\n";
- str += "\t\t\t<td>\n";
- str += "\t\t\t\t<input id = 'wmskml_" + i + "' name='" + key + "' type='text' size=20 value = '" + value + "'>\n";
- str += "\t\t\t</td>\n\t\t</tr>\n";
- }
- }
-
- var updateOnClickText = "this.disabled=true;window.opener.updateKmlInDb("+geometryIndex+", 'update');";
- var deleteOnClickText = "var deltrans = confirm('This geometry will be removed from the KML.');";
- deleteOnClickText += "if (deltrans){";
- deleteOnClickText += "this.disabled=true;window.opener.updateKmlInDb("+geometryIndex+", 'delete')}";
-
- str += "\t\t\t<td><input type='button' name='updateButton' value='Update' onclick=\""+updateOnClickText+"\"/></td>\n";
-// delete button not yet implemented
-// str += "\t\t\t<td><input type='button' name='deleteButton' value='Delete' onclick=\""+deleteOnClickText+"\"/></td>\n";
- str += "\t\t\t<td><input type='button' name='abortButton' value='Abort' onclick=\"window.close();\" /></td>\n";
-
- str += "\t\t</tr>\n";
- str += "\t</table>\n";
- str += "</form>\n";
-
- wfsKmlWindow.document.getElementById("elementForm").innerHTML = str;
-}
-
-
-function stripslashes (str) {
- // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
- // + improved by: Ates Goral (http://magnetiq.com)
- // + fixed by: Mick at el
- // + improved by: marrtins
- // + bugfixed by: Onno Marsman
- // + improved by: rezna
- // + input by: Rick Waldron
- // + reimplemented by: Brett Zamir (http://brett-zamir.me)
- // + input by: Brant Messenger (http://www.brantmessenger.com/)
- // + bugfixed by: Brett Zamir (http://brett-zamir.me)
- // * example 1: stripslashes('Kevin\'s code');
- // * returns 1: "Kevin's code"
- // * example 2: stripslashes('Kevin\\\'s code');
- // * returns 2: "Kevin\'s code"
- return (str+'').replace(/\\(.?)/g, function (s, n1) {
- switch (n1) {
- case '\\':
- return '\\';
- case '0':
- return '\u0000';
- case '':
- return '';
- default:
- return n1;
- }
- });
-}
-
-function deleteFeature (geometryIndex) {
- var res = true;
- res = parent.Mapbender.modules[mod_digitize_elName].events.clickDelete.trigger({
- geometryIndex: geometryIndex,
- feature: d.get(geometryIndex)
- });
- if (res === false) {
- return;
- }
- var deltrans = confirm(msgObj.messageConfirmDeleteGeomFromDb);
- if (deltrans) {
- dbGeom('delete', geometryIndex);
- };
-
-}
-
-//
-// this method opens a new window and displays the attributes in wfs_conf
-//
-function showWfs(geometryIndex) {
- var res = true;
- res = parent.Mapbender.modules[mod_digitize_elName].events.openDialog.trigger({
- geometryIndex: geometryIndex,
- feature: d.get(geometryIndex)
- }, "AND");
- if (res === false) {
- return;
- }
-
- wfsConf = parent.get_complete_wfs_conf();
-
- if(typeof wfsWindow != 'undefined') {
- wfsWindow.close();
- }
-
- wfsWindow = open("", "wfsattributes", "width="+wfsWindowWidth+", height="+wfsWindowHeight+", resizable, dependent=yes, scrollbars=yes");
- wfsWindow.document.open("text/html");
- setTimeout(function () {
- wfsWindow.focus();
- }, 100);
-
- var str = "";
- var strStyle = "";
- var defaultIndex = -1;
-
- str += "<form id='wfs'>\n";
-
- //
- // 1. add select box
- //
-
- var onChangeText = "document.getElementById('elementForm').innerHTML = ";
- onChangeText += "window.opener.buildElementForm(this.value, " + geometryIndex + ");";
- onChangeText += "window.opener.setWfsWindowStyle(this.value);";
-
- var datePickerText = "$('.hasdatepicker').each(function () { " +
- "var data = $.parseJSON(window.opener.stripslashes($(this).attr('data'), true));" +
- "var defaults = {};" +
- "var settings = $.extend({}, defaults, data);" +
- /*"$.datepicker.regional['de'] = {
- closeText: 'schließen',
- prevText: '<zurück',
- nextText: 'Vor>',
- currentText: 'heute',
- monthNames: ['Januar','Februar','März','April','Mai','Juni',
- 'Juli','August','September','Oktober','November','Dezember'],
- monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
- 'Jul','Aug','Sep','Okt','Nov','Dez'],
- dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
- dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
- dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
- weekHeader: 'Wo',
- dateFormat: 'dd.mm.yy',
- firstDay: 1,
- isRTL: false,
- showMonthAfterYear: false,
- yearSuffix: ''};
-*/
- //"$(this).datepicker.setDefaults($.datepicker.regional['de']);" +
- "$(this).datepicker({dateFormat: 'yy-mm-dd', changeYear: true, yearRange: '1950:2050',monthNames: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'],dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa']});" +
- "});";
-
- onChangeText += datePickerText;
-
-
- var uploaderText =
- "deleteUploadedFile = function (domNode) {" +
- "$(domNode).siblings('input').val('');" +
- "$(domNode).siblings('a').remove();" +
- "$(domNode).remove();" +
- "};" +
- "var linkAndDeleteButtonHtml = '<a target=\\\'_blank\\\' title=\\\'show uploaded file\\\' " +
- "href=\\\'#\\\'>Show file</a>" +
- "<img src=\\\'../img/button_digitize/geomRemove.png\\\' " +
- "title=\\\'Delete uploaded file\\\' alt=\\\'Delete uploaded file\\\' " +
- "onclick=\\\'deleteUploadedFile(this);\\\' " +
- "style=\\\'cursor:pointer\\\'/>';" +
- "$('.upload').each(function () { " +
- "var $this = $(this).upload({ "+
- "callback: function(result,stat,msg){"+
- "if(stat !== true){alert(msg);}"+
- "else{" +
- "$this.prev().val(result.filename);" +
- "if ($this.siblings('a').size() === 0) {" +
- "$this.parent().prepend(linkAndDeleteButtonHtml);" +
- "}\n" +
- "$this.siblings('a').attr('href', result.filename);" +
- "}" +
- "}" +
- "});" +
- "});";
-
- onChangeText += uploaderText;
-
- str += "\t<select name='wfs' size='" + wfsConf.length + "'";
- str += " onChange=\""+ onChangeText +"\"";
- str += ">\n\t\t";
-
- var wfsConfIndices = getAvailableWfsForGeom(d.get(geometryIndex), wfsConf);
- var selected = false;
- // set the current wfs_conf as the selected
- // if wfs_conf is not yet set (for example when creating a new feature, just select the first one)
- var selectedIndex = d.get(geometryIndex).wfs_conf || wfsConfIndices[0];
- for (var i = 0; i < wfsConfIndices.length ; i++) {
- for (var j in wfsConf[i].element){
-
- }
- str += "<option value='" + wfsConfIndices[i] + "'";
- if (wfsConfIndices[i] == selectedIndex ) {
- str += " selected";
- selected = true;
- defaultIndex = parseInt(wfsConfIndices[i]);
- }
- str += ">" + wfsConf[wfsConfIndices[i]]['wfs_conf_abstract'];
- str += "</option>\n\t\t";
- }
-
-
- str += "</select>\n\t\t</form>\n\t";
-
- var elForm = "";
- if (defaultIndex != -1) {
- elForm = buildElementForm(defaultIndex, geometryIndex);
-
- var headStr = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=<?php echo CHARSET;?>'><style type='text/css'>" + wfsConf[defaultIndex]['g_style'] + "</style>";
- headStr += '<link rel="stylesheet" type="text/css" href="../extensions/jquery-ui-1.7.2.custom/development-bundle/themes/base/ui.all.css" />';
- headStr += '<style type="text/css">'
- headStr += 'a.tabheader { margin: 0 3px 0 0;float:left;padding: 1px 5px;text-decoration: none;color: #999;background-color: #F5F5F5;border: 1px solid #999;border-bottom: 0; }';
- headStr += 'a.tabheader.active { float:left;color: #666;background-color: transparent;border-color: #666;border-bottom: 0px solid #FFF;cursor: default; }';
- headStr += 'div.tabcontent { visibility: hidden;display: none;clear:left;margin: 1px 0 5px 0;padding: 5px;border: 1px solid #666; }';
- headStr += 'div.helptext { visibility: hidden;display: none;position: absolute;top: 5%;left: 5%;width: 85%;padding: 5px;color: #000;background-color: #EEEEEE;border: 1px solid #000;-moz-border-radius: 10px;-webkit-border-radius: 10px;}';
- headStr += 'div.helptext p { margin: 0 ; }';
- headStr += 'div.helptext p a.close { display: block;margin: 5px auto;text-align: center; }';
- headStr += 'a img { vertical-align: middle;border: 0; }';
- headStr += '.mandatory { border:1px solid red; }';
- headStr += '</style>';
- headStr += '</head><body onload="window.opener.toggleTabs(\''+initialTab+'\'); ' + datePickerText + uploaderText + '">';
- wfsWindow.document.write(headStr);
- }
- else {
- var headStr = "<html><head><style type='text/css'></style></head><body>";
- wfsWindow.document.write(headStr);
- }
- str += "<div id='elementForm'>\n" + elForm + "</div>";
- str += "<script type='text/javascript' src='../extensions/jquery-ui-1.7.2.custom/js/jquery-1.3.2.min.js'><\/script>";
- str += "<script type='text/javascript' src='../extensions/jquery-ui-1.7.1.w.o.effects.min.js'><\/script>";
- str += "<script type='text/javascript' src='../plugins/jq_upload.js'><\/script>";
- str += "<script type='text/javascript' src='../extensions/jqjson.js'><\/script>";
- str += "</body></html>";
- wfsWindow.document.write(str);
- wfsWindow.document.close();
-
-// toggleTabs(initialTab);
-
-}
-
-function setWfsWindowStyle(wfsConfIndex) {
- wfsWindow.document.getElementsByTagName("style")[0].innerHTML = wfsConf[wfsConfIndex]['g_style'];
-}
-
-function prepareSelectBox (formElementHtml, categoryName, isMandatory, elementLabel, elementValue, styleId) {
- var classString = (styleId == '0') ? "" : styleId;
- var patternString = "<select";
- var pattern = new RegExp(patternString);
- // set category
- if (categoryName) {
- formElementHtml = formElementHtml.replace(pattern, patternString + " category='" + categoryName + "' ");
- }
-
- if (isMandatory) {
- // set border if mandatory
- classString += " mandatory";
- }
- classString = (classString !== "") ? " class='"+classString+"' " : " ";
- formElementHtml = formElementHtml.replace(pattern, patternString + classString);
-
- // set name of select box to elementlabel
- patternString = "name\s*=\s*\\*'\w+\\*'";
- pattern = new RegExp(patternString);
- if (pattern.test(formElementHtml)) {
- formElementHtml = formElementHtml.replace(pattern, "name='" + elementLabel + "'");
- }
- else {
- patternString = "<select";
- pattern = new RegExp(patternString);
- formElementHtml = formElementHtml.replace(pattern, "<select name='" + elementLabel + "'");
- }
-
- // preselect the correct entry of the box
- patternString = "option( )+value( )*=( )*('|\")"+elementValue+"('|\")";
- pattern = new RegExp(patternString);
- var patternStringForReplace = "option value = '"+elementValue+"'";
- formElementHtml = formElementHtml.replace(pattern, patternStringForReplace+" selected");
- return formElementHtml;
-}
-
-function prepareDatepicker (formElementHtml, categoryName, isMandatory, elementLabel, elementValue, styleId) {
- var classString = (styleId == '0') ? "" : styleId;
- var patternString = "<input";
- var pattern = new RegExp(patternString);
-
- // set category
- if (categoryName) {
- formElementHtml = formElementHtml.replace(pattern, patternString + " category='" + categoryName + "' ");
- }
-
- if (isMandatory) {
- // set border if mandatory
- classString += " mandatory";
- }
- classString = (classString !== "") ? " class='"+classString+" hasdatepicker' " : " ";
- formElementHtml = formElementHtml.replace(pattern, patternString + classString);
-
- // set name of select box to elementlabel
- patternString = "name\s*=\s*\\*('|\")\w+\\*('|\")";
- pattern = new RegExp(patternString);
- if (pattern.test(formElementHtml)) {
- formElementHtml = formElementHtml.replace(pattern, "name='" + elementLabel + "'");
- }
- else {
- patternString = "<input";
- pattern = new RegExp(patternString);
- formElementHtml = formElementHtml.replace(pattern, "<input name='" + elementLabel + "'");
- }
-
- // preselect the correct entry of the box
- patternString = "<input";
- pattern = new RegExp(patternString);
- formElementHtml = formElementHtml.replace(pattern, patternString + " value='"+elementValue+"'");
-
- return formElementHtml;
-}
-
-function prepareTextArea (formElementHtml, categoryName, isMandatory, elementLabel, elementValue, styleId) {
- var classString = (styleId == '0') ? "" : styleId;
- var patternString = "<textarea";
- var pattern = new RegExp(patternString);
- // set category
- if (categoryName) {
- formElementHtml = formElementHtml.replace(pattern, patternString + " category='" + categoryName + "' ");
- }
-
- if (isMandatory) {
- // set border if mandatory
- classString += " mandatory";
- }
- classString = (classString !== "") ? " class='"+classString+"' " : " ";
- formElementHtml = formElementHtml.replace(pattern, patternString + classString);
-
- // set name of select box to elementlabel
- patternString = "name\s*=\s*\\*('|\")\w+\\*('|\")";
- pattern = new RegExp(patternString);
- if (pattern.test(formElementHtml)) {
- formElementHtml = formElementHtml.replace(pattern, "name='" + elementLabel + "'");
- }
- else {
- patternString = "<textarea";
- pattern = new RegExp(patternString);
- formElementHtml = formElementHtml.replace(pattern, "<textarea name='" + elementLabel + "'");
- }
-
- // preselect the correct entry of the box
- patternString = "<\/textarea>";
- pattern = new RegExp(patternString);
- formElementHtml = formElementHtml.replace(pattern, elementValue + patternString);
-
- return formElementHtml;
-}
-
-function prepareUploadField (formElementHtml, categoryName, isMandatory, elementLabel, elementValue, styleId) {
- //var elementValue = "../tmp/1-14bbb3d6987e16.png";
- var classString = (styleId == '0') ? "" : styleId;
- var patternString = "<div";
- var pattern = new RegExp(patternString);
-
- // set category
- if (categoryName) {
- formElementHtml = formElementHtml.replace(pattern, patternString + " category='" + categoryName + "' ");
- }
-
- classString = (classString !== "") ? " class='"+classString+"' " : " ";
- formElementHtml = formElementHtml.replace(pattern, patternString + classString);
-
- // preselect the correct entry of the box
- if(elementValue !== "") {
- formElementHtml = "<a title='show uploaded file' target='_blank' href='" +
- elementValue + "'>Show file</a><img title='Delete uploaded file' " +
- "alt='Delete uploaded file' style='cursor:pointer;' " +
- "onclick='$(this).siblings(\"input\").val(\"\");" +
- "$(this).siblings(\"a\").remove();$(this).remove();' " +
- "src='../img/button_digitize/geomRemove.png'/>" +
- formElementHtml;
- }
- patternString = "class\s*=\s*['\"]hiddenUploadField['\"]";
- pattern = new RegExp(patternString);
- replaceString = "class='hiddenUploadField' " + " value='"+elementValue+"'";
- formElementHtml = formElementHtml.replace(pattern, replaceString);
-
- return formElementHtml;
-}
-
-// Returns a form with the elements of a selected WFS grouped in tabs
-// (if the original WFS is the selected WFS, the values are set too)
-var initialTab = false;
-
-// returns a form with the elements of a selected wfs
-// (if the original wfs is the selected wfs, the values are set too)
-function buildElementForm(wfsConfIndex, memberIndex){
- var featureTypeMismatch = false;
- if (parseInt(d.get(memberIndex).wfs_conf) != parseInt(wfsConfIndex)) {featureTypeMismatch = true;}
- var str = "";
- var hasGeometryColumn = false;
- var featureTypeArray = wfsConf[wfsConfIndex];
- var memberElements;
- var fid = false;
-
- if (!featureTypeMismatch) {
- memberElements = d.get(memberIndex).e;
- fid = memberElements.getElementValueByName('fid');
- }
-
- if (typeof(featureTypeArray["element"]) !== "undefined") {
- featureTypeElementArray = featureTypeArray["element"];
-
-
- // Check if there are categories given and
- // build the form in tabs if necessary
- var elementCategories = [];
- for(var i = 0; i < featureTypeElementArray.length; i++){
- var categoryName = featureTypeElementArray[i].f_category_name;
- var categoryNameIsUnique = true;
-
- if(categoryName.length === 0) { continue; }
-
- for(var j = 0; j < elementCategories.length; j++) {
- if(elementCategories[j] == categoryName) {
- categoryNameIsUnique = false;
- }
- }
-
- if(categoryNameIsUnique) {
- elementCategories.push(categoryName);
- }
- }
-
- str += "<form id='"+featureTypeElementFormId+"'>\n\t";
-
- var hasCategories = (elementCategories.length > 0);
- if (hasCategories) {
- elementCategories.sort();
-
- initialTab = elementCategories[0];
- str +='<table><tr><td>';
- for (var currentCategory = 0; currentCategory < elementCategories.length; currentCategory++) {
- str += '<a href="#" id="tabheader_' + elementCategories[currentCategory] + '" class="tabheader" onclick="return window.opener.toggleTabs(\'' + elementCategories[currentCategory] + '\')">' + elementCategories[currentCategory] + '</a>';
- }
- str +='</td></tr></table>';
- }
-
- for (var currentCategory = 0; currentCategory < elementCategories.length || !hasCategories; currentCategory++) {
- if (hasCategories) {
- str += '<div id="tab_' + elementCategories[currentCategory] + '" class="tabcontent">';
- }
- str += '<table>';
-
- //
- // 2. add rows to form
- //
- for (var i = 0 ; i < featureTypeElementArray.length ; i++) {
- var featureTypeElement = featureTypeElementArray[i];
-
- var elementName = featureTypeElement['element_name'];
- var elementType = featureTypeElement['element_type'];
- var isEditable = (parseInt(featureTypeElement['f_edit']) == 1);
- var isMandatory = (parseInt(featureTypeElement['f_mandatory']) == 1);
- var isGeomColumn = (parseInt(featureTypeElement['f_geom']) == 1);
-
- if(hasCategories && featureTypeElement.f_category_name != elementCategories[currentCategory] && !isGeomColumn) {
- continue;
- }
-
-
- var elementLabelExists = (featureTypeElement['f_label'] != "");
- var elementLabel = "";
- if (elementLabelExists) {
- elementLabel = featureTypeElement['f_label'];
- }
- var elementLabelStyle = featureTypeElement['f_label_id'];
-
- if (!isGeomColumn) {
- if (isEditable) {
- str += "\t\t<tr>\n";
- if(elementLabelExists) {
- str += "\t\t\t<td>\n\t\t\t\t<div class = '"+elementLabelStyle+"'>" + elementLabel + "</div>\n\t\t\t</td>\n";
- str += "\t\t\t<td>\n";
- }
- else {
- str += '<td colspan="2">';
- }
-
- var elementValue = "";
- if (!featureTypeMismatch) {
- for (var j = 0 ; j < memberElements.count() ; j ++) {
- if (memberElements.getName(j) == featureTypeElement['element_name']) {
- elementValue = memberElements.getValue(j);
- }
- }
- }
- var formElementHtml = featureTypeElement['f_form_element_html'];
- if (!formElementHtml) {
- var classString = (styleId == '0') ? "" : featureTypeElement['f_style_id'];
- if (parseInt(featureTypeElement['f_mandatory']) == 1) {
- classString += " mandatory";
- }
-
- classString = (classString !== "") ? " class='"+classString+"' " : " ";
-
- str += "\t\t\t\t<input id = 'datatype_mb_digitize_form_" + elementName + "' name='datatype' type='hidden' value = '" + elementType + "'>\n";
- if (!hasCategories) {
- str += "\t\t\t\t<input id = 'mb_digitize_form_" + elementName + "' name='" + elementLabel + "' type='text' "+classString+" size=20 value = '" + elementValue + "'>\n";
- }
- else {
- str += "\t\t\t\t<input category='"+elementCategories[currentCategory]+"' id = 'mb_digitize_form_" + elementName + "' name='" + elementLabel + "' type='text' "+classString+" size=20 value = '" + elementValue + "'>\n";
- }
- }
- else {
- while (formElementHtml.match(/\\/)) {
- formElementHtml = formElementHtml.replace(/\\/, "");
- }
-
- var isMandatory = (parseInt(featureTypeElement['f_mandatory']) == 1);
-
- var patternString = "<select";
- pattern = new RegExp(patternString);
- var styleId = featureTypeElement['f_style_id'];
- if (pattern.test(formElementHtml)) {
- formElementHtml = prepareSelectBox(formElementHtml, "", isMandatory, elementLabel, elementValue, styleId);
- }
- var patternString = "hasdatepicker";
- pattern = new RegExp(patternString);
- if (pattern.test(formElementHtml)) {
- formElementHtml = prepareDatepicker(formElementHtml, "", isMandatory, elementLabel, elementValue, styleId);
- }
- var patternString = "<textarea";
- pattern = new RegExp(patternString);
- if (pattern.test(formElementHtml)) {
- formElementHtml = prepareTextArea(formElementHtml, "", isMandatory, elementLabel, elementValue, styleId);
- }
- var patternString = "upload";
- pattern = new RegExp(patternString);
- if (pattern.test(formElementHtml)) {
- formElementHtml = prepareUploadField(formElementHtml, "", isMandatory, elementLabel, elementValue, styleId);
- }
- str += formElementHtml;
- }
-
- if(featureTypeElement.f_helptext.length > 0) {
- str += ' <a href="#" onclick="return window.opener.showHelptext(' + i + ')"><img src="../img/help.png" width="16" height="16" alt="?" /></a> ';
- str += '<div id="helptext' +i+ '" class="helptext">';
- str += '<p>';
- str += featureTypeElement.f_helptext.replace(/(http:\/\/\S*)/g,'<a href="$1" target="blank">$1<\/a>');
- str += '<a href="#" class="close" onclick="return window.opener.hideHelptext(' + i + ')">close</a>';
- str += '</p>';
- str += '</div>';
- }
-
- str += "\t\t\t</td>\n\t\t</tr>\n";
- }
- }
- else {
- hasGeometryColumn = true;
- }
- }
-
- str += '</table>';
- if (hasCategories) {
- str += '</div>';
- }
-
- // if no categories exist, the for loop would be
- // infinite without this break
- if (!hasCategories) {
- break;
- }
- }
-
- //
- // 3. add buttons "save", "update", "delete"
- //
- str += "<table>";
- var isTransactional = (featureTypeArray['wfs_transaction']);
- if (isTransactional) {
- str += "\t\t<tr>\n";
-
- var options = ["insert", "update", "delete", "abort"];
- for (var i = 0 ; i < options.length ; i++) {
- var onClickText = "this.disabled=true;var result = window.opener.formCorrect(document, '"+featureTypeElementFormId+"');";
- onClickText += "if (result.isCorrect) {";
- onClickText += "window.opener.dbGeom('"+options[i]+"', "+memberIndex+"); ";
-// onClickText += "window.close();";
- onClickText += "}";
- onClickText += "else {";
- onClickText += "alert(result.errorMessage);this.disabled=false;"
- onClickText += "}";
-
- // if (options[i] == "insert" && hasGeometryColumn && (!fid || showSaveButtonForExistingGeometries)) {
- // str += "\t\t\t<td><input type='button' name='saveButton' value='"+msgObj.buttonLabelSaveGeometry+"' onclick=\""+onClickText+"\" /></td>\n";
- // }
-
- if (!featureTypeMismatch && fid) {
- if (options[i] == "update" && hasGeometryColumn) {
- str += "\t\t\t<td><input type='button' name='updateButton' value='"+msgObj.buttonLabelUpdateGeometry+"' onclick=\""+onClickText+"\"/></td>\n";
- }
- // if (options[i] == "delete"){
- // var deleteOnClickText = "var deltrans = confirm('"+msgObj.messageConfirmDeleteGeomFromDb+"');";
- // deleteOnClickText += "if (deltrans){";
- // deleteOnClickText += onClickText + "}";
- // str += "\t\t\t<td><input type='button' name='deleteButton' value='"+msgObj.buttonLabelDeleteGeometry+"' onclick=\""+deleteOnClickText+"\"/></td>\n";
- // }
- }
- if (options[i] == "abort") {
- str += "\t\t\t<td><input type='button' name='abortButton' value='"+msgObj.buttonLabelAbort+"' onclick=\"window.close();\" /></td>\n";
- }
- }
- str += "\t\t</tr>\n";
- }
- str += "\t</table>\n";
- str += "<input type='hidden' id='fid' value='"+fid+"'>";
-// str += "<input type='text' name='mb_wfs_conf'>";
- str += "</form>\n";
- }
- return str;
-}
-
-function dbGeom(type, m, callback, dbWfsConfId) {
- if (typeof dbWfsConfId !== "undefined") {
- d.get(m).wfs_conf = getJsWfsConfIdByDbWfsConfId(wfsConf, dbWfsConfId);
- d.get(m).e = new parent.Wfs_element();
- }
-
- var hasFid = d.get(m).e.getElementValueByName("fid") !== false;
-
- if (!hasFid) {
- if (typeof(wfsWindow) != 'undefined' && !wfsWindow.closed) {
- d.get(m).wfs_conf = parseInt(wfsWindow.document.forms[0].wfs.options[wfsWindow.document.forms[0].wfs.selectedIndex].value);
- d.get(m).e = new parent.Wfs_element();
- }
- }
- else {
- wfsConf = parent.get_complete_wfs_conf();
- }
- var myconf = wfsConf[d.get(m).wfs_conf];
-
- var mapObjInd = parent.getMapObjIndexByName(mod_digitize_target);
-
- var proceed = true;
- var patternString = parent.mb_mapObj[mapObjInd].epsg.toUpperCase();
- var pattern = new RegExp(patternString);
-
-// if(!myconf['featuretype_srs'].match(pattern)){
-// proceed = confirm(msgObj.errorMessageEpsgMismatch + parent.mb_mapObj[mapObjInd].epsg + " / "+ myconf['featuretype_srs'] + ". Proceed?");
-// }
-// if (proceed) {
- var fid = false;
- var errorMessage = "";
- if (typeof(wfsWindow) != 'undefined' && !wfsWindow.closed && (type === "insert" || type === "update")) {
- myform = wfsWindow.document.getElementById(featureTypeElementFormId);
-
- for (var i=0; i<myform.length; i++){
- if (myform.elements[i].id == "fid") {
- fid = myform.elements[i].value;
- if (fid == "false") {
- fid = false;
- }
- else {
- d.get(m).e.setElement('fid', fid);
- }
- }
-
- //else if (myform.elements[i].type == 'text' { //merging geoportal.rlp
- else if (myform.elements[i].type == "text" ||
- myform.elements[i].tagName.toUpperCase() == "TEXTAREA" ||
- myform.elements[i].className == "hiddenUploadField"){
- if (myform.elements[i].id) {
- var elementId = String(myform.elements[i].id).replace(/mb_digitize_form_/, "");
- var $dataTypeNode = $(myform.elements[i]).prev("input");
- // if featuretype element is numeric, do not send empty fields
- if ($dataTypeNode.size() === 1 && -1 !== $.inArray($dataTypeNode.attr("value"), ["int", "double", "float", "decimal"])) {
- if (myform.elements[i].value !== "") {
- d.get(m).e.setElement(elementId, myform.elements[i].value);
- }
- }
- else {
- d.get(m).e.setElement(elementId, myform.elements[i].value);
- }
- }
- else {
- errorMessage = msgObj.messageErrorFormEvaluation;
- }
- }
- // selectbox
- else if (typeof(myform.elements[i].selectedIndex) == 'number') {
- if (myform.elements[i].id) {
- var elementId = String(myform.elements[i].id).replace(/mb_digitize_form_/, "");
- d.get(m).e.setElement(elementId, myform.elements[i].options[myform.elements[i].selectedIndex].value);
- }
- else {
- errorMessage = msgObj.messageErrorFormEvaluation;
- }
- }
- }
- }
- else {
- fid = d.get(m).e.getElementValueByName('fid');
- }
-// str = parent.get_wfs_str(myconf, d, m, type, fid);
-
- if (type === "insert" || type === "update") {
- var module = parent.Mapbender.modules[mod_digitize_elName];
- module.events.beforeUpdateOrInsert.trigger({
- wfsConf: myconf,
- geometryIndex: m,
- feature: d.get(m),
- 'method' : type
- });
- if (type === "insert") {
- module.events.beforeInsert.trigger({
- wfsConf: myconf,
- geometryIndex: m,
- feature: d.get(m)
- });
- }
- if (type === "update") {
- module.events.beforeUpdate.trigger({
- geometryIndex: m,
- feature: d.get(m)
- });
- }
-
- // can be set to true from outside to stop save action
- // default is false, so nothing happens here
- if (module.dataCheck) {
- return;
- }
-
- if (module.cancelAjaxRequest) {
- alert(module.cancelAjaxRequestMessage);
- module.cancelAjaxRequest = false;
- module.cancelAjaxRequestMessage = "An error occured.";
- return;
- }
- }
-
- // Extract the current, possibly new WfsConf
- var newWfsConfId = d.get(m).wfs_conf
- if (typeof(wfsWindow) != 'undefined' && !wfsWindow.closed) {
- newWfsConfId = parseInt(wfsWindow.document.getElementById('wfs').wfs.value, 10);
- }
- var newWfsConf = wfsConf[newWfsConfId];
- newWfsConfId = newWfsConf['wfs_conf_id'];
-
- // Check each feature attribute if it is part of the WfsConf element type. If not, delete.
- var e = d.get(m).e;
- var elementsToDelete = [];
- for(var i in e.name) {
- // Never delete fid attribute
- if(e.name[i] === "fid") {
- continue;
- }
-
- var validElement = false;
- for(var j in newWfsConf.element) {
- if(e.name[i] == newWfsConf.element[j]['element_name'] && newWfsConf.element[j]['f_edit'] === "1") {
- validElement = true;
- break;
- }
- }
- if(!validElement) {
- elementsToDelete.push(i);
- }
- }
-
- // Delete. As the arrays shrink, the indices into the arrays are shrunk, too
- for(var i in elementsToDelete) {
- e.name.splice(elementsToDelete[i] - i, 1);
- e.value.splice(elementsToDelete[i] - i, 1);
- }
-
- var geoJson = d.featureToString(m);
-
- parent.mb_ajax_post(
- "../extensions/geom2wfst.php",
- {
- 'geoJson' : geoJson,
- 'method' : type,
- 'wfs_conf_id' : newWfsConfId
- },
- function(json,status){
- var result = typeof(json) == 'object' ? json : eval('('+json+')');
- var success = result.success;
- var fid = result.fid;
- wfsSubWrite(m, type, status, success, fid, callback);
- }
- );
-// }
-}
-
-function getJsWfsConfIdByDbWfsConfId (wfsConf, id) {
- for (var i = 0; i < wfsConf.length; i++) {
- if (parseInt(wfsConf[i].wfs_conf_id, 10) === id) {
- return i
- }
- }
- return null;
-}
-
-function wfsSubWrite(m, type, status, success, fid, callback) {
- if (status == "success" && success) {
- if (type == 'insert' && fid) {
- d.get(m).e.setElement("fid", fid);
- }
- if (type == 'delete') {
- parent.mb_disableThisButton(mod_digitizeEvent);
- d.del(m);
- }
-
- var wfsWriteMessage = msgObj.messageSuccessWfsWrite;
- }
- else {
- var wfsWriteMessage = msgObj.messageErrorWfsWrite;
- }
-
- parent.Mapbender.modules[mod_digitize_elName].events.afterWfs.trigger({
- feature: (type === 'delete') ? null : d.get(m),
- type: type
- });
-
- parent.mb_execWfsWriteSubFunctions();
-
- if (updatePointGeometriesInstantly &&
- status == "success" &&
- success &&
- typeof callback === "function") {
- callback();
- }
-
- if (typeof(wfsWindow) != 'undefined' && !wfsWindow.closed) {
- if (status !== "success" || !success) {
- wfsWindow.alert(wfsWriteMessage);
- }
- else {
- parent.Mapbender.modules[mod_digitize_elName].events.geometryInserted.trigger({
- fid: fid,
- geometryIndex: m,
- feature: d.get(m),
- type: type
- });
- new parent.Mb_notice(wfsWriteMessage);
- }
- window.setTimeout("wfsWindow.close()",0);
- }
- else {
- if (status !== "success" || !success) {
- alert(wfsWriteMessage);
- }
- else {
- parent.Mapbender.modules[mod_digitize_elName].events.geometryInserted.trigger({
- fid: fid,
- geometryIndex: m,
- feature: d.get(m)
- });
- new parent.Mb_notice(wfsWriteMessage);
- }
- }
- executeDigitizeSubFunctions();
-}
-
-function getMultiGeometryIdsByPlacemarkId (placemarkId) {
- var multiGeometryIdArray = [];
- for (var i = 0; i < d.count(); i++) {
- var currentPlacemarkId = d.get(i).e.getElementValueByName("Mapbender:placemarkId");
- if (currentPlacemarkId && currentPlacemarkId == placemarkId) {
- multiGeometryIdArray.push(i);
- }
- }
- return multiGeometryIdArray;
-}
-
-function updateKmlInDb (geometryIndex, command) {
- var properties = d.get(geometryIndex).e;
- var placemarkId = properties.getElementValueByName("Mapbender:placemarkId");
-
- var multiGeometryIdArray = getMultiGeometryIdsByPlacemarkId(placemarkId);
-
- if (typeof(wfsKmlWindow) != 'undefined' && !wfsKmlWindow.closed) {
-
- // update properties from form
- myform = wfsKmlWindow.document.getElementById("wmsKmlForm");
-
- for (var i=0; i < myform.length; i++){
- if (myform.elements[i].type == 'text' ){
- if (myform.elements[i].id) {
- var key = myform.elements[i].name;
- var value = myform.elements[i].value;
-
- // update all geometries with the same placemark id
- for (var j = 0; j < multiGeometryIdArray.length; j++) {
- var currentProperties = d.get(j).e;
- currentProperties.setElement(key, value);
- }
- }
- }
- }
- var kmlId = properties.getElementValueByName("Mapbender:id");
-
- parent.mb_ajax_post("../php/mod_updateKmlInDb.php", {command:command, kmlId:kmlId, placemarkId:placemarkId, geoJSON:d.placemarkToString(placemarkId)}, function(obj, status) {
- if (obj === "1") {
- wfsKmlWindow.alert("KML updated.");
- var link = wfsKmlWindow.document.createElement("a");
- link.href = "../php/mod_displayKML.php?kmlId=" + kmlId;
- link.target = "_blank";
- link.innerHTML = "KML";
- wfsKmlWindow.document.getElementById('elementForm').innerHTML = "";
- wfsKmlWindow.document.getElementById('linkToKml').appendChild(link);
- }
- else {
- wfsKmlWindow.alert("Error, KML could not be updated. Check your error log.");
- }
- });
- }
-}
-
-
-// --- wfs window (begin) -----------------------------------------------------------------------------------------
-// -----------------------------------------------------------------------------------------------------------
-
-function getMessages() {
- parent.mb_ajax_json("../php/mod_digitize_messages.php", function(obj, status) {
- msgObj = obj;
- applyMessages();
- });
-}
-
-function applyMessages() {
- updateMeasureTag();
- updateListOfGeometries();
- updateButtons();
-}
-
- </script>
- </head>
- <body onload="registerFunctions();displayButtons();">
-<!-- <img id="digitizeBack" style="position:absolute;top:28;left:84" src="../img/button_digitize/back_on.png" title="" onclick="digitizeHistory.back()" name="digitizeBack"/>
- <img id="digitizeForward" style="position:absolute;top:28;left:112" src="../img/button_digitize/forward_on.png" title="" onclick="digitizeHistory.forward()" name="digitizeForward"/>
- -->
- <div id='digButtons'></div>
- <div style='position:absolute;top:60px;left:5px' id='listOfGeometries' class='digitizeGeometryList'></div>
- </body>
-</html>
Deleted: trunk/mapbender/http/geoportal/mod_fplanid.php
===================================================================
--- trunk/mapbender/http/geoportal/mod_fplanid.php 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/mod_fplanid.php 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,111 +0,0 @@
-<html>
-
-<head>
-
-<?php
-echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';
-#require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
-#require_once(dirname(__FILE__)."/../classes/class_administration.php");
-#require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
-require_once(dirname(__FILE__)."/../../core/globalSettings.php");
-require_once(dirname(__FILE__)."/../classes/class_administration.php");
-require_once dirname(__FILE__) . "/../classes/class_Uuid.php";
-require_once dirname(__FILE__) . "/../classes/class_user.php";
-?>
-
-<title>FPlanID</title>
-
-<style type="text/css">
-body
-{
-font-family: Arial, Helvetica, sans-serif;
-}
-h1
-{
-color: #A52A2A;
-font-family: arial, verdana, sans serif;
-font-style: italic;
-font-weight: bold;
-font-size: 175%;
-}
-</style>
-
-<script language="JavaScript" type="text/javascript">
-</script>
-
-</head>
-
-<body>
-
-<table>
-
-<?php
-
-$user = new User();
-$userId = $user->id;
-
-if (isset($_REQUEST["id"])) {
- #---------------------------
- $uuid = new Uuid();
- $sql = "SELECT mb_user_name, mb_user_email FROM mapbender.mb_user WHERE mb_user_id=$1";
- $v = array($userId);
- $t = array('i');
- $res = db_prep_query($sql, $v, $t);
- while($row = db_fetch_array($res)) {
- $mb_user_name=$row['mb_user_name'];
- $mb_user_email=$row['mb_user_email'];
- }
-
- #-----------------------------
- $sql = "INSERT INTO fplan_id (fkey_mb_user_id, uuid, fkey_mb_user_name, fkey_mb_user_email) VALUES ($1, $2, $3, $4)";
- //$sql = "INSERT INTO public.fplan_id (fkey_mb_user_id, uuid, fkey_mb_user_name, fkey_mb_user_email) VALUES (".$userId.", '".$uuid."', '".$mb_user_name."','".$mb_user_email."')";
- #$e = new mb_exception("user_id: ".$_SESSION["mb_user_id"]);
- #$e = new mb_exception("uuid: ".$uuid);
- #$e = new mb_exception("mb_user_name: ".$mb_user_name);
- #$e = new mb_exception("mb_user_email: ".$mb_user_email);
-
- $v = array($userId, $uuid, $mb_user_name, $mb_user_email);
- $t = array('i','s','s','s');
- $res = db_prep_query($sql, $v, $t);
- #---------------------------------------------
- $sql = "SELECT id FROM fplan_id WHERE uuid = $1";
- $v = array($uuid);
- $t = array('s');
- $res = db_prep_query($sql, $v, $t);
- while($row=db_fetch_array($res)) {
- $id = $row['id'];
- }
-}
-
-echo "<form method=\"POST\" action=".$_SERVER['PHP_SELF'].">";
-echo " <h1>ID für einen Flächennutzungsplan</h1>";
-echo "<table border='0'>";
-
-echo "<tr height=50>";
-echo "<td>";
-echo "<font size=\"3\">Sie sind momentan eingeloggt als: </font>";
-echo "<font size=\"3\"><b>".$_SESSION["mb_user_name"]."</b></font>";
-echo "</td>";
-echo "</tr>";
-
-echo "<tr height=50>";
-echo "<td>";
-echo "<font size=\"4\">Eine ID für einen Flächennutzungsplan anfordern </font>";
-echo "<input type=\"submit\" name=\"id\" value=\"Anfordern\" onclick=\"return confirm('Wollen Sie wirklich eine ID für einen Flächennutzungsplan anfordern?');\">";
-echo "</td>";
-echo "</tr>";
-if (isset($_REQUEST["id"])) {
- echo "<tr height=50>";
- echo "<td>";
- echo "<font size=\"4\">Die nächstfreie ID für einen Flächennutzungsplan lautet: </font>";
- echo "<font color=#A52A2A size=\"5\"><b>".$id."</b></font>";
- echo "</td>";
- echo "</tr>";
-}
-echo "</form>";
-?>
-</table>
-</body>
-</html>
-
-
Deleted: trunk/mapbender/http/geoportal/mod_initialStartWmc_new.php
===================================================================
--- trunk/mapbender/http/geoportal/mod_initialStartWmc_new.php 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/mod_initialStartWmc_new.php 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,146 +0,0 @@
-<?php
-require_once(dirname(__FILE__)."/../../core/globalSettings.php");
-require_once(dirname(__FILE__)."/../classes/class_json.php");
-$con = db_connect(DBSERVER,OWNER,PW);
-db_select_db(DB,$con);
-$languageCode = 'de';
-$maxObjects = 10;
-$maxAge = 7;
-$outputFormat = 'json';
-$hostName = $_SERVER['HTTP_HOST'];
-$pathToLoadScript = '/portal/karten.html?WMC=';
-$pathToMetadata = '/mapbender/php/mod_showMetadata.php?';
-$pathToPreview = '/mapbender/geoportal/mod_showPreview.php?';
-if (isset($_REQUEST["outputFormat"]) & $_REQUEST["outputFormat"] != "") {
- $testMatch = $_REQUEST["outputFormat"];
- if (!($testMatch == 'html' or $testMatch == 'json')){
- echo 'outputFormat: <b>'.$testMatch.'</b> is not valid.<br/>';
- die();
- }
- $outputFormat = $testMatch;
- $testMatch = NULL;
-}
-if (isset($_REQUEST["maxObjects"]) & $_REQUEST["maxObjects"] != "") {
- $testMatch = $_REQUEST["maxObjects"];
- $pattern = '/^[0-9]*$/';
- if (!preg_match($pattern,$testMatch)){
- echo 'maxObjects: <b>'.$testMatch.'</b> is not valid.<br/>';
- die();
- }
- $maxObjects = (integer)$testMatch;
- if ($maxObjects > 15){
- echo '<b>'.$maxObjects.'</b> objects are too much, at maximum 15 ojects are allowed.<br/>';
- die();
- }
- $testMatch = NULL;
-}
-if (isset($_REQUEST["maxAge"]) & $_REQUEST["maxAge"] != "") {
- $testMatch = $_REQUEST["maxAge"];
- $pattern = '/^[0-9]*$/';
- if (!preg_match($pattern,$testMatch)){
- echo 'maxAge: <b>'.$testMatch.'</b> is not valid.<br/>';
- die();
- }
- $maxAge = (integer)$testMatch;
- $testMatch = NULL;
-}
-if (isset($_REQUEST["languageCode"]) & $_REQUEST["languageCode"] != "") {
- //validate to wms, wfs
- $testMatch = $_REQUEST["languageCode"];
- if (!($testMatch == 'de' or $testMatch == 'en' or $testMatch == 'fr')){
- echo 'languageCode: <b>'.$testMatch.'</b> is not valid.<br/>';
- die();
- }
- $languageCode = $testMatch;
- $testMatch = NULL;
-}
-if (isset($_REQUEST["hostName"]) & $_REQUEST["hostName"] != "") {
- //validate to some hosts
- $testMatch = $_REQUEST["hostName"];
- //look for whitelist in mapbender.conf
- $HOSTNAME_WHITELIST_array = explode(",",HOSTNAME_WHITELIST);
- if (!in_array($testMatch,$HOSTNAME_WHITELIST_array)) {
- echo "Requested hostname <b>".$testMatch."</b> not whitelist! Please control your mapbender.conf.";
- $e = new mb_notice("Whitelist: ".HOSTNAME_WHITELIST);
- $e = new mb_notice($testMatch." not found in whitelist!");
- die();
- }
- $hostName = $testMatch;
- $testMatch = NULL;
-}
-if ($outputFormat == 'json'){
- $classJSON = new Mapbender_JSON;
-}
-if ($languageCode == 'en'){
- $pathToLoadScript = '/portal/en/maps.html?WMC=';
-}
-if ($languageCode == 'fr'){
- $pathToLoadScript = '/portal/fr/cartes.html?WMC=';
-}
-
-/*
-//define sql for selecting informations from database:
-$sql = "";
-$sql .= "SELECT search_wmc_view.wmc_serial_id,search_wmc_view.wmc_title,search_wmc_view.wmc_abstract, custom_category.custom_category_code_".$languageCode. ", search_wmc_view.load_count ";
-$sql .= "FROM search_wmc_view INNER JOIN wmc_custom_category ON ";
-$sql .= "(wmc_custom_category.fkey_wmc_serial_id=search_wmc_view.wmc_serial_id) INNER JOIN custom_category ON ";
-$sql .= "(custom_category.custom_category_id=wmc_custom_category.fkey_custom_category_id) WHERE ";
-$sql .= "custom_category.custom_category_key = 'mbc1' ORDER BY search_wmc_view.load_count DESC LIMIT $1 ";
-*/
-//define sql for selecting informations from database:
-//$sql = "";
-//$sql .= "SELECT search_wmc_view.wmc_serial_id,search_wmc_view.wmc_title,search_wmc_view.wmc_abstract, search_wmc_view.load_count ";
-//$sql .= "FROM search_wmc_view ORDER BY search_wmc_view.load_count DESC LIMIT $1 ";
-
-$sql = "";
-//select wmc_serial_id,wmc_title,wmc_abstract,CASE WHEN (wmc_timestamp > (extract(epoch from now())- ((86400)*5))) THEN wmc_timestamp ELSE 0 END as timestamp, load_count from search_wmc_view order by timestamp desc, load_count desc LIMIT
-
-$sql .= "SELECT search_wmc_view.wmc_serial_id,search_wmc_view.wmc_title,search_wmc_view.wmc_abstract,";
-$sql .= " CASE WHEN (wmc_timestamp > (extract(epoch from now())- ((86400) * $2))) THEN wmc_timestamp ELSE 0 END as timestamp,search_wmc_view.load_count";
-$sql .= " from search_wmc_view order by timestamp desc, load_count desc LIMIT $1";
-//echo "maxAge:".$maxAge."<br>";
-//echo "sql: ".$sql."<br>";
-//echo "maxObjects: ".$maxObjects."<br>";
-$v = array($maxObjects,$maxAge);
-$t = array('i','i');
-$res = db_prep_query($sql,$v,$t);
-$initialWmc = array();
-$i = 0;
-while($row = db_fetch_array($res)){
- $initialWmc[$i] = array('id' =>$row['wmc_serial_id'], 'title' =>$row['wmc_title'], 'abstract' =>$row['wmc_abstract'],'loadUrl'=>'http://'.$hostName.$pathToLoadScript.$row['wmc_serial_id'],'metadataUrl'=>'http://'.$hostName.$pathToMetadata."languageCode=".$languageCode."&resource=wmc&id=".$row['wmc_serial_id'], 'previewUrl'=>'http://'.$hostName.$pathToPreview."resource=wmc&id=".$row['wmc_serial_id'],'timestamp' => $row['timestamp'],'loadCount' => $row['load_count'] );
- $i++;
-}
-if ($outputFormat == 'html'){
- echo "<html>";
- echo "<title>Mapbender Initial WMC</title>";
- echo "<body>";
- for($i=0; $i<count($initialWmc);$i++){
- echo "<b>ID: </b>".$initialWmc[$i]['id']."<br>";
- echo "<b>Titel: </b>".$initialWmc[$i]['title']."<br>";
- echo "<b>Zusammenfassung: </b>".$initialWmc[$i]['abstract']."<br>";
- echo "<b>Metadaten: </b><a href='".$initialWmc[$i]['metadataUrl']."'>".$initialWmc[$i]['metadataUrl']."</a>"."<br>";
- echo "<b>Öffnen: </b><a href='".$initialWmc[$i]['loadUrl']."'>".$initialWmc[$i]['loadUrl']."</a>"."<br>";
- echo "<b>Preview Link: </b><a href='".$initialWmc[$i]['previewUrl']."'>".$initialWmc[$i]['previewUrl']."</a>"."<br>";
- echo "<b>Preview: </b><img src='".$initialWmc[$i]['previewUrl']."'/>"."<br>";
- echo "<hr>";
- }
- echo "</body>";
- echo "</html>";
-}
-if ($outputFormat == 'json'){
- $wmcJSON = new stdClass;
- $wmcJSON->initialWmcDocs = array();
- for($i=0; $i<count($initialWmc);$i++){
- $wmcJSON->initialWmcDocs[$i]->id = $initialWmc[$i]['id'];
- $wmcJSON->initialWmcDocs[$i]->title = $initialWmc[$i]['title'];
- $wmcJSON->initialWmcDocs[$i]->abstract = $initialWmc[$i]['abstract'];
- $wmcJSON->initialWmcDocs[$i]->metadataUrl = $initialWmc[$i]['metadataUrl'];
- $wmcJSON->initialWmcDocs[$i]->loadUrl = $initialWmc[$i]['loadUrl'];
- $wmcJSON->initialWmcDocs[$i]->previewUrl = $initialWmc[$i]['previewUrl'];
- $wmcJSON->initialWmcDocs[$i]->loadCount = $initialWmc[$i]['loadCount'];
- $wmcJSON->initialWmcDocs[$i]->timestamp = $initialWmc[$i]['timestamp'];
- }
- $wmcJSON = $classJSON->encode($wmcJSON);
- echo $wmcJSON;
-}
-?>
Deleted: trunk/mapbender/http/geoportal/mod_statistik.php
===================================================================
--- trunk/mapbender/http/geoportal/mod_statistik.php 2016-05-27 06:55:01 UTC (rev 9483)
+++ trunk/mapbender/http/geoportal/mod_statistik.php 2016-05-27 07:01:49 UTC (rev 9484)
@@ -1,134 +0,0 @@
-<html>
-
-<head>
-
-<?php
-echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';
-#require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
-#require_once(dirname(__FILE__)."/../classes/class_administration.php");
-#require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
-require_once(dirname(__FILE__)."/../../core/globalSettings.php");
-require_once(dirname(__FILE__)."/../classes/class_administration.php");
-require_once dirname(__FILE__) . "/../classes/class_Uuid.php";
-require_once dirname(__FILE__) . "/../classes/class_user.php";
-?>
-
-<title>Statistik Geoportal</title>
-
-<style type="text/css">
-body
-{
-font-family: Arial, Helvetica, sans-serif;
-}
-h1
-{
-color: #A52A2A;
-font-family: arial, verdana, sans serif;
-font-style: italic;
-font-weight: bold;
-font-size: 175%;
-}
-</style>
-
-<script language="JavaScript" type="text/javascript">
-</script>
-
-</head>
-
-<body>
-
-<table>
-
-<?php
-
-
-
- $sql = "SELECT users,total_authorities,substitute_authorities,publishing_authorities,wms,wms_layer,wfs,wfs_modul,wmc FROM statistik;";
- $v = array();
- $t = array();
- $res = db_prep_query($sql, $v, $t);
- while($row = db_fetch_array($res)) {
- $users=$row['users'];
- $total_authorities=$row['total_authorities'];
- $substitute_authorities=$row['substitute_authorities'];
- $publishing_authorities=$row['publishing_authorities'];
- $wms=$row['wms'];
- $wms_layer=$row['wms_layer'];
- $wfs=$row['wfs'];
- $wfs_modul=$row['wfs_modul'];
- $wmc=$row['wmc'];
- }
-
-echo "<form method=\"POST\" action=".$_SERVER['PHP_SELF'].">";
-echo " <h1>Statistik GeoPortal.rlp</h1>";
-echo "<table border='1'>";
-
-echo "<tr align=left height=50>";
-echo "<td>";
-echo "<font size=\"4\"><b>users</b></font>";
-echo "</td>";
-echo "<td>";
-echo "<font size=\"4\"><b>total_authorities</b></font>";
-echo "</td>";
-echo "<td>";
-echo "<font size=\"4\"><b>substitute_authorities</b></font>";
-echo "</td>";
-echo "<td>";
-echo "<font size=\"4\"><b>publishing_authorities</b></font>";
-echo "</td>";
-echo "<td>";
-echo "<font size=\"4\"><b>wms</b></font>";
-echo "</td>";
-echo "<td>";
-echo "<font size=\"4\"><b>wms_layers</b></font>";
-echo "</td>";
-echo "<td>";
-echo "<font size=\"4\"><b>wfs</b></font>";
-echo "</td>";
-echo "<td>";
-echo "<font size=\"4\"><b>wfs_module</b></font>";
-echo "</td>";
-echo "<td>";
-echo "<font size=\"4\"><b>wmc</b></font>";
-echo "</td>";
-echo "</tr>";
-echo "<tr align=left height=50>";
-echo "<td>";
-echo "<font color=#000000 size=\"3\">".$users."</font>";
-echo "</td>";
-echo "<td>";
-echo "<font color=#000000 size=\"3\">".$total_authorities."</font>";
-echo "</td>";
-echo "<td>";
-echo "<font color=#000000 size=\"3\">".$substitute_authorities."</font>";
-echo "</td>";
-echo "<td>";
-echo "<font color=#000000 size=\"3\">".$publishing_authorities."</font>";
-echo "</td>";
-echo "<td>";
-echo "<font color=#000000 size=\"3\">".$wms."</font>";
-echo "</td>";
-echo "<td>";
-echo "<font color=#000000 size=\"3\">".$wms_layer."</font>";
-echo "</td>";
-echo "<td>";
-echo "<font color=#000000 size=\"3\">".$wfs."</font>";
-echo "</td>";
-echo "<td>";
-echo "<font color=#000000 size=\"3\">".$wfs_modul."</font>";
-echo "</td>";
-echo "<td>";
-echo "<font color=#000000 size=\"3\">".$wmc."</font>";
-echo "</td>";
-echo "</tr>";
-
-
-
-
-echo "</form>";
-?>
-</table>
-</body>
-</html>
-
-
More information about the Mapbender_commits
mailing list