Bug kvwmap

Aus kvwmap
Wechseln zu: Navigation, Suche

Auf dieser Seite können Bugs gemeldet werden. Die Lösung von kritischen Fehlern wird beschrieben, so dass eigenständig Bugfixe vorgenommen werden können. Ansonsten finden sich die Lösungen immer in der nächsten Version. Parallel zu dieser Seite werden Bugs und insbesondere deren Lösung auch über die Mailling Liste verteilt. Dies ist mehr ein Archiv der aufgetretenen Probleme. Bugs, die neu sind sollten mit einem führenden - versehen sein. Bugs mit Lösungen werden mit + gekennzeichnet. Problem erkannt und in Arbeit mit -+.

Inhaltsverzeichnis

Version 1.7.6

- Doppelklick im IE

--Andreas Thurm 16:37, 24. Mär 2011 (CET)Wenn man beim IE die Funktiuon Abfrage über ein Polygon verwenden will, hat man Probleme mit dem Start der Suche. Normalerweise wird das Polygon durch einen Doppelklick abgeschlossen. Das funktioniert beim IE aber nur in Ausnahmefällen. Im Firefox funktioniert es wie gewohnt.

+ Verrutschte Legende

--Markus Hentschel 10:06, 23. Mär 2011 (CET) Wenn man in der Sachdatenanzeige einen Datensatz gelöscht hat und kvwmap danach zurück zur Karte springt, erscheint die Legende nicht neben, sondern unter der Karte.

--Rahn 15:20, 23. Mär 2011 (CET) Um den Fehler zu beheben, muss in kvwmap.php in der Funktion layer_Datensaetze_loeschen() nach der Zeile
$this->loadMap('DataBase');

diese Zeile eingefügt werden:

$this->user->rolle->newtime = $this->user->rolle->last_time_id;

+ Operator "ist leer"

--Markus Hentschel 10:02, 23. Mär 2011 (CET) Wenn ich in der Layersuche den Operator "ist leer" auswähle und suche bekomme ich eine Fehlermeldung:

Warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: 
character varying == "unknown" HINT: No operator matches the given name and argument type(s). 
You may need to add explicit type casts. in /srv/www/htdocs/kvwmap/class/postgresql_core.php on line 115

Es wird das Pfad-Select ausgegeben und es geht dann weiter mit

(SELECT ... ) as query WHERE 1=1 AND (query.wb_blatt IS NULL OR query.wb_blatt == '') ...

Da ist ein "=" zuviel...

--Rahn 15:14, 23. Mär 2011 (CET) Das doppelte "==" ist in kvwmap.php in der Funktion GenerischeSuche_Suchen() in der Zeile
$sql_where .= ' AND (query.'.$layerset[0]['attributes']['name'][$i].' '.$this->formvars['operator_'.$layerset[0]['attributes']['name'][$i]].' OR query.'.$layerset[0]['attributes']['name'][$i].' == \'\') ';

zu finden.

+ Stelle wählen

Beim Stellenwechseln werden die Einstellungen der neuen Stelle nicht geladen. Um das zu beheben, muss in snippets/ahah.php in der Funktion ahahDone() nach der Zeile

responsevalues = response.split("^");

diese Zeile eingefügt werden.

if(action == undefined)action = "";

+ Namensuche

Ist eine Stelle über die Tabelle stelle_gemeinden auf mehrere Gemeinden eingeschränkt und man führt eine Namensuche ohne Auswahl einer Gemarkung aus, wird nur in der ersten Gemarkung gesucht. Um den Fehler zu beheben, muss in postgresql.php in der Funktion getNamen() die Zeilen

if ($gemkgschl>0) {
  $sql.=" AND e.bezirk=b.bezirk AND e.blatt=b.blatt";
  $sql.=" AND b.flurstkennz LIKE ";
  $sql.=" '".$gemkgschl[0]."%'";
}

durch diese ersetzt werden

if ($gemkgschl>0) {
  $sql.=" AND e.bezirk=b.bezirk AND e.blatt=b.blatt";
  $sql.=" AND (b.flurstkennz LIKE ";
  $sql.=" '".$gemkgschl[0]."%'";
  for($i = 1; $i < count($gemkgschl); $i++){
    $sql.=" OR b.flurstkennz LIKE '".$gemkgschl[$i]."%'";
  }
  $sql.=")";
}

+ Nachweisrecherche

Ein Bug, der schon lange vorhanden ist aber erst jetzt entdeckt wurde: In der Nachweisrecherche funktioniert die Suche über ein Abfragepolygon nicht, wenn man ein anderes Koordinatensystem als das der Nacheise ausgewählt hat. Um den Fehler zu beheben, muss in class/nachweise.php in der Funktion getNachweise() die Zeile

$sql.=" AND NOT DISJOINT(GeometryFromText('".$polygon."',".EPSGCODE."),the_geom)";

durch diese ersetzt werden:

$sql.=" AND NOT DISJOINT(Transform(GeometryFromText('".$polygon."',".$this->client_epsg."), ".EPSGCODE."),the_geom)";

+ requires-Layer verschwinden im Firefox

Ein weiteres Problem, welches bei der neuen Ajax-Navigation auftritt ist, dass die requires-Layer nicht dargestellt werden, nachdem man navigiert hat. Um den Fehler zu beheben, muss in kvwmap_core.php in der Funktion read_Layer() die Zeile

$sql.=' AND rl.aktivStatus != "0"';

durch diese ersetzt werden

$sql.=' AND (rl.aktivStatus != "0" OR requires != "")';

+ Punktfang beim Streckenmessen

Damit beim Punktfang keine Punkte von Layern geladen werden, die außerhalb des Maßstabsbereiches liegen, muss in kvwmap.php in der Funktion getSVG_vertices() nach der Zeile

if($layer[$i]['connectiontype'] == MS_POSTGIS){

das hier eingefügt werden:

if($this->formvars['scale'] < $layer[$i]['minscale'] OR $layer[$i]['maxscale'] > 0 AND $this->formvars['scale'] > $layer[$i]['maxscale']){
  continue;
}

Außerdem muss in SVG_map.php in der Funktion add_vertices() die Zeile

top.ahah("'.URL.APPLVERSION.'index.php", "go=getSVG_vertices", new Array(top.document.GUI.vertices), "setvalue");

durch diese ersetzt werden:

top.ahah("'.URL.APPLVERSION.'index.php", "go=getSVG_vertices&scale="+top.document.getElementById("scale").value, new Array(top.document.GUI.vertices), "setvalue");

+ Shape einlesen

--Markus Hentschel 07:27, 1. Mär 2011 (CET) Beim Einlesen eines Shapes wird nicht auf den Extent des Shapes gezoomt. Außerdem rutscht die Themenauswahl/Legende unter die Karte.

--Rahn 11:08, 1. Mär 2011 (CET) Dass nicht auf das Shape gezoomt wird, war schon immer so und lässt sich ohne weiteres auch leider nicht ändern, da man ja die Ausdehnung des Shapes nicht kennt. Aber das Wegrutschen der Legende ist ein Bug. Um ihn zu Beheben muss in kvwmap.php in der Funktion create_shp_rollenlayer_load() die Zeile
$this->user->rolle->newtime = $GUI->user->rolle->last_time_id;

durch diese ersetzt werden

$this->user->rolle->newtime = $this->user->rolle->last_time_id;

+ IP-Adressen-Einschränkung

Benutzt man IP-Adressen-Einschränkung und den Firefox kommt es zu einem Fehler mit der neuen Ajax-Navigation. Um den Fehler zu beheben, muss die Funktion clientIpIsValide() aus der Datei users.php in die Datei users_core.php verschoben werden. Und zwar nach der Funktion user_core().

+ Filtereinschränkung

Benutzt man in einem Layer einen Filter und den Firefox kommt es zu einem Fehler mit der neuen Ajax-Navigation. Um den Fehler zu beheben, muss die Funktion BBoxinExtent() aus der Datei kvwmap.php in die Datei kvwmap_core.php verschoben werden. Und zwar vor die Funktion drawMap().

+ Adresssuche

--Andreas Thurm 13:10, 21. Feb 2011 (CET)In der Adresssuche werden zu einer Straße, egal ob über Gemarkung oder Gemeinde gesucht, wesentlich mehr vorhandene Hausnummern angeboten als vorhanden.

  • --Rahn 12:21, 22. Feb 2011 (CET) Um den Fehler zu beheben, muss in kvwmap.php in der Funktion adresswahl() die Zeile
if($GemID = -1)$GemID = '';

durch diese Zeilen ersetzt werden:

if($GemID == -1){
   $Gemeinde = $Gemarkung->getGemarkungListe(NULL, array($this->formvars['GemkgID']), NULL);
   $GemID = $Gemeinde['gemeinde'][0];
 }

+ Koordinatenabfrage ohne 2. Koordinatensystem

Hat man kein 2. Koordinatensystem gewählt, funktioniert die Koordinatenabfrage nicht mehr. Um den Fehler zu beheben, muss in SVG_map.php in der Funktion show_coords() die Zeile

top.ahah("'.URL.APPLVERSION.'index.php", "go=spatial_processing&curSRID='.$this->user->rolle->epsg_code.'&newSRID='.$this->user->rolle->epsg_code2.'&point="+coorx+" "+coory+"&operation=transformPoint&resulttype=wkt", new Array(top.document.GUI.secondcoords), "");

durch

if(top.document.GUI.secondcoords != undefined)top.ahah("'.URL.APPLVERSION.'index.php", "go=spatial_processing&curSRID='.$this->user->rolle->epsg_code.'&newSRID='.$this->user->rolle->epsg_code2.'&point="+coorx+" "+coory+"&operation=transformPoint&resulttype=wkt", new Array(top.document.GUI.secondcoords), "");

ersetzt werden.

+ Maßstabsleiste

--Markus Hentschel 14:35, 16. Feb 2011 (CET) Kein Bug, aber einen Hinweis wert: Damit die Maßstabsleiste unter der Karte angezeigt wird, muss in der config.php der Parameter BG_MENUETOP einen hexadezimalen Wert haben, also '#B0C4DE' o.ä.

+ Geometrie bearbeiten

Beim Bearbeiten der Geometrie von Polygon- und Punktlayern gibt es einen Bug, der verhindert, dass man in der Karte navigieren kann. Um ihn zu beheben, müssen in kvwmap.php in den Funktionen PointEditor() und PolygonEditor() folgende 3 Zeilen gelöscht werden:

if($oldscale!=$this->formvars['nScale'] AND $this->formvars['nScale'] != '') {
   $this->scaleMap($this->formvars['nScale']);
 }

Version 1.7.5

+ Optionen - Kartenprojektion

--Markus Hentschel 08:48, 14. Jan 2011 (CET)

  • Bei Auswahl eines anderen CRS als 2398 funktioniert die Referenzkarte nicht
  • Bei Auswahl eines anderen CRS als 2398 funktioniert der Koordinatenzoom nicht
  • Die Auswahl von 4326 ergibt immer einen Maßstab 1:100 und scheitert beim zoomen sowie bei anderen Funktionen wie z.B. Shape anzeigen
  • History Back hat Probleme beim Wechsel auf andere CRS

+ Namensuche mit Gemarkungsangabe

--Markus Hentschel 10:02, 13. Jan 2011 (CET) Wenn man nach einem Namen sucht und gleichzeitig auf eine Gemarkung eingrenzt, dann dauert die Suche deutlich länger (deutlich = minutenlang)!

- ALB-Auszüge

--Markus Hentschel 12:48, 7. Jan 2011 (CET)

  • Beim ALB-Auszug 20 muss die Eigentümerart in der Zeile mit name1 erscheinen.
  • Wenn name3 Postleitzahl und Postfach enthält (an definierten Positionen nach dem 30. Zeichen), dann muss vor der Postleitzahl "PLZPF" stehen und vor dem Postfach "PF". Beide Strings sind in name3 nicht gespeichert, sondern müssen vom System erzeugt werden.

+ Strichstärken und Symbolgrößen im Ausdruck

--Markus Hentschel 11:30, 12. Nov 2010 (CET) Die Linienstärken und die Symbolgrößen im Ausdruck entsprechen nicht denen am Bildschirm.

+ "neu"-Link von Subforms in neuen Datensätzen

--Markus Hentschel 09:32, 10. Nov 2010 (CET) Wenn ein neuer Datensatz angelegt wird, der eine Subform enthält, dann wird dort bereits der "neu"-Link angeboten. Das Speichern von entsprechenden Daten in der Subform ist dann aber noch gar nicht möglich. Der Link dürfte also beim Erfassen von neuen Datensätzen noch gar nicht erscheinen - oder kvwmap sorgt dafür, dass der beim Speichern des neuen Datensatzes vergebene Primärschlüssel auch im Subform-Datensatz eingetragen wird.

+ Erfassen von neuen Datensätzen

Bei der Erfassung von neuen Datensätzen gibt es ein Problem bei Layern, die eine id mit automatisch hochzählender Sequenz haben. Speichert man nämlich den Layer in der Layerdefinition, so wird der aktuelle Stand der Sequenz als Defaultwert übernommen und dann bei jeder Neuerfassung im Feld voreingetragen. Um den Fehler zu beheben, muss in postgresql.php in der Funktion get_field_default() die Zeile

if($default[0] != ''){

durch diese ersetzt werden:

if($default[0] != '' AND strpos($default[0], 'nextval') === false){

+ Speichern von SubformFK-Attributen

Im GLE gibt es einen Bug, der das Speichern von SubformFK-Attributen betrifft. Um den Fehler zu beheben, muss im Snippet generic_layer_editor_2.php die Zeile

$this->form_field_names .= $this->qlayerset[$i]['Layer_ID'].';'.$this->qlayerset[$i]['attributes']['real_name'][$this->qlayerset[$i]['attributes']['subform_fkey'][$j]].';'.$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['subform_fkey'][$j]].';'.$this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['subform_fkey'][$j]].'_oid'].';Text;1|';

durch diese

$this->form_field_names .= $this->qlayerset[$i]['Layer_ID'].';'.$this->qlayerset[$i]['attributes']['real_name'][$this->qlayerset[$i]['attributes']['subform_fkey'][$j]].';'.$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['subform_fkey'][$j]].';'.$this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['subform_fkey'][$j]].'_oid'].';Text;1;varchar|';

ersetzt werden.

- stellenbezogene Layerattribute bei Pfad-Löschung

--Markus Hentschel 13:09, 1. Okt 2010 (CEST) Wenn man den Pfad-Eintrag eines Layers komplett löscht, werden die Einträge in der Tabelle layerattributes2stelle nicht gelöscht.

+ Grundbuchblattsuche

--Andreas Thurm 09:51, 30. Sep 2010 (CEST)In der Grundbuchblattsuche werden nach Auswahl eines Bezirkes alle Grundbücher angezeigt. Die Anzeige der Grundbücher mit der Aktualitaestnr = 'hist' sollte unterdrückt werden.

--Rahn 14:15, 30. Sep 2010 (CEST) Dazu muss in postgresql.php in der Funktion getGrundbuchblattliste() das SQL so angepasst werden:
$sql = "SELECT * FROM alb_grundbuecher WHERE bezirk = ".$bezirk." AND aktualitaetsnr != 'hist' ORDER BY blatt";

+ Nachweisrecherche

In der Nachweisrecherche wird eine Fehlermeldung angezeigt. Um das zu beheben, muss in der Datei SVG_polygon_box_query_area.php die Zeile

$svg .= bufferbuttons();

durch

$svg .= bufferbuttons($strBuffer);

ersetzt werden.

+ Pächteranzeige Jagdbezirk

--Markus Hentschel 11:34, 24. Sep 2010 (CEST) Wenn man in der Pächteranzeige eines Jagdbezirks ist und "zurück zum Jagdbezirk" will, dann ist der Jagdbezirk weg und es kommt eine Fehlermeldung.

- Geometrie weiterzeichnen

--Markus Hentschel 12:42, 22. Sep 2010 (CEST) Wenn ich eine vorhandene Geometrie zur Bearbeitung im Geometrieeditor aufrufe oder eine Geometrie nach dem Speichern / Zwischenspeichern weiter bearbeiten will, wird die vorhandene Geometrie vom letzten gezeichneten Punkt aus weiter bearbeitet. Die Benutzer sind ordentlich verwirrt und es kommt zu jede Menge Fehlern. Das Problem ist natürlich, dass das mal sinnvoll ist und mal nicht. Kann man das nicht irgenwie sauber auseinander halten?


- Stelleneditor | Übernahme der Werte in "stelle_gemeinden" fehlt

--Hschmidt 10:46, 31. Aug 2010 (CEST) Mit dem Stelleneditor werdem beim Kopieren einer Stelle über "Ändern | Als neu Stelle eintragen" die Werte aus der Tabelle "stelle_gemeinden" nicht übernommen.

--Markus Hentschel 12:35, 22. Sep 2010 (CEST) ... und beim Löschen einer Stelle werden nicht alle Einträge in der MySQL gelöscht, z.B. in u_funktionen2stelle.


- Button-Vorauswahl nach Geometrie übernehmen im Geometrieeditor

--Markus Hentschel 15:15, 18. Mai 2010 (CEST)

  • Wenn man im Geometrieeditor eine neue Geometrie per "Geometrie übernehmen von" erzeugen will, sollte anschließend der "Geometrie hinzufuegen" Button vorausgewählt sein.
  • Wenn man Geometrien übernommen hat, dann verschiebt oder zoomt, ist anschließend nicht mehr der "Geometrie hinzufuegen" Button ausgewählt, sondern der "Polygon hinzufuegen" Button. Dasselbe gilt für "Geometrie entfernen".


- Straße mit Umlaut in der Namenssuche

--Markus Hentschel 17:01, 3. Aug 2010 (CEST) Wenn man in der Namenssuche nach einer Straße sucht und diese Straße mit einem Umlaut beginnt, dann schlägt die Suche fehl, wenn man den beginnenden Umlaut klein schreibt. Bei den "normalen" Anfangsbuchstaben ist die Suche case-insensitiv, wie es sein soll.


- CSV-Export mit Semikolons

--Markus Hentschel 14:46, 10. Sep 2010 (CEST) Wenn in einem Attribut ein Semikolon auftaucht, verschiebt der CSV-Export den Rest des Textes in das nächste Feld, so dass alles um eins nach rechts verrutscht.


+ Layoutdruckeditor

--Rahn 15:57, 23. Sep 2010 (CEST) Wenn man im Datendruck-Layouteditor die x und y-Werte eines Elements rausnimmt und speichert, erscheint das Vorschaubild nicht mehr. Um das zu beheben, muss in datendrucklayout.php in der Funktion update_layout() vor der Zeile

for($i = 0; $i < $formvars['textcount']; $i++){

das hier eingefügt werden:

 $sql = "DELETE FROM ddl_elemente WHERE ((xpos IS NULL AND ypos IS NULL) OR (xpos = 0 AND ypos = 0) OR (xpos > 595 AND ypos > 842)) AND ddl_id = ".$formvars['aktivesLayout'];
 $this->debug->write("<p>file:kvwmap class:ddl->save_ddl :",4);
 $this->database->execSQL($sql,4, 1);

+ Attributeditor im IE7

--Markus Hentschel 13:54, 21. Sep 2010 (CEST) Im Internet Explorer wird der Attributeditor zerpflückt, die Attribute werden nicht zeilenweise dargestellt.

--Rahn 11:31, 22. Sep 2010 (CEST) Um das zu beheben muss im Snippet attribut_editor.php in Zeile 138
echo '">

das

"

entfernt werden.

+ ID-Übergabe Subform

--Markus Hentschel 13:39, 21. Sep 2010 (CEST) Der Primärschlüssel wird bei Subforms nicht mehr an den anhängigen Layer übergeben, wenn man einen neuen Datensatz erzeugen will.

--Rahn 13:26, 27. Sep 2010 (CEST) Um das zu beheben, muss in der Datei generic_layer_editor2_embedded.php die Zeile
if($this->new_entry == true){        # Default-Werte setzen

durch

if($this->new_entry == true AND $this->qlayerset[$i]['attributes']['default'][$j] != ''){        # Default-Werte setzen

ersetzt werden.

+ Colors

Merkwürdigerweise scheint es mit bestimmten Farben in der Stellenwahl/Optionen Probleme zu geben. Aus Weinrot wird z.B. Dunkelgrün. Um den Fehler zu beheben, muss im Snippet rollenwahl.php die Zeile

echo ' style="background-color:#'.str_pad(dechex($this->result_colors[$i]['red']), 2, '0').str_pad(dechex($this->result_colors[$i]['green']), 2, '0').str_pad(dechex($this->result_colors[$i]['blue']), 2, '0').'"';

durch diese hier ersetzt werden:

echo ' style="background-color: rgb('.$this->result_colors[$i]['red'].', '.$this->result_colors[$i]['green'].', '.$this->result_colors[$i]['blue'].')"';


+ ALB-Auszug 30

Beim ALB-Auszug 30 tritt ein Fehler auf, der durch die neue Funktionsüberprüfung verursacht wird. Zum Beheben in kvwmap.php in der Funktion ALB_Anzeigen() im Abschnitt

# Prüfen ob stelle Formular 30 sehen darf
if ($formnummer==40) {

die 40 durch eine 30 ersetzen.

+ Jagdkataster

Beim Anlegen eines neuen Jagdbezirkes, der nicht von einer der 4 neuen Arten ist, kommt es zu einer Fehlermeldung. Um den Fehler zu beheben, müssen in jagdkatster.php in der Funktion eintragenNeueFlaeche() die 3 Vorkommen von

".$jb_zuordnung."

in Hochkommas gesetzt werden. Also so:

'".$jb_zuordnung."'

Außerdem müssen die Datentypen der beiden Spalten id und jb_zuordnung geändert werden. Also in der PostgreSQL-DB das ausführen:

ALTER TABLE jagdbezirke ALTER COLUMN jb_zuordnung TYPE character varying(10);
ALTER TABLE jagdbezirke ALTER COLUMN id character varying(10);

+ Adressuche

Bei der Adressuche hat sich ein Fehler eingeschlichen. Um den Fehler zu beheben, müssen in kvwmap.php in der Funktion adresseSuchen() die 3 Zeilen

 $Gemarkung=new gemarkung('',$this->pgdatabase);
 $Gemeinde = $Gemarkung->getGemarkungListe(NULL, array($this->formvars['GemkgID']), NULL);
 $GemID = $Gemeinde['gemeinde'][0];

durch diese Zeile ersetzt werden:

$GemID=$this->formvars['GemID'];

+ Geometrieeditor

--Reißland 07:04, 4. Feb 2011 (CET)Wenn man über den Geometrieeditor eine Geometrie erfasst dann gehen zuvor eingegebene Sachdaten wieder verloren.

  • --Rahn 09:35, 7. Feb 2011 (CET) Um diesen Bug zu beheben, muss in der Datei generic_layer_editor2.php die Zeile
$this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['name'][$j]] = $this->formvars[$this->qlayerset[$i]['Layer_ID'].';'.$this->qlayerset[$i]['attributes']['real_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].'_oid'].';'.$this->qlayerset[$i]['attributes']['form_element_type'][$j].';'.$this->qlayerset[$i]['attributes']['nullable'][$j];

durch diese hier ersetzt werden:

$this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['name'][$j]] = $this->formvars[$this->qlayerset[$i]['Layer_ID'].';'.$this->qlayerset[$i]['attributes']['real_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].'_oid'].';'.$this->qlayerset[$i]['attributes']['form_element_type'][$j].';'.$this->qlayerset[$i]['attributes']['nullable'][$j].';'.$this->qlayerset[$i]['attributes']['type'][$j]];
  • --Reißland 10:56, 8. Feb 2011 (CET) Auswahlfelder, die direkt über ein Constraint in der Datenbanktabelle definiert sind, werden nach wie vor zurückgesetzt.
    • --Rahn 15:40, 8. Feb 2011 (CET) Stimmt, außerdem werden Felder mit Defaultwerten auch immer wieder zurück gesetzt. Um das zu beheben, müssen die Zeilen
if($this->new_entry == true AND $this->qlayerset[$i]['attributes']['default'][$j] != ''){		# Default-Werte setzen
   $this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['name'][$j]] = $this->qlayerset[$i]['attributes']['default'][$j];
 }

durch diese hier ersetzt werden

if($this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['name'][$j]] == ''){			  						               
   $this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['name'][$j]] = $this->formvars[$this->qlayerset[$i]['Layer_ID'].';'.$this->qlayerset[$i]['attributes']['real_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].'_oid'].';'.$this->qlayerset[$i]['attributes']['form_element_type'][$j].';'.$this->qlayerset[$i]['attributes']['nullable'][$j].';'.$this->qlayerset[$i]['attributes']['type'][$j]];
 }
if($this->new_entry == true AND $this->qlayerset[$i]['attributes']['default'][$j] != '' AND $this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['name'][$j]] == ''){		# Default-Werte setzen
   $this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['name'][$j]] = $this->qlayerset[$i]['attributes']['default'][$j];
 }

Version 1.7.4

+ CSV-Export bei Layern, die ein anderes Schema verwenden

Bei Layern, die ein anderes Schema, als das public-Schema verwenden, funktioniert der csv-Export nicht richtig. Um den Fehler zu beheben, müssen in kvwmap.php, in der Funktion generic_csv_export() die beiden Vorkommen von

$this->pgdatabase

durch

$layerdb

ersetzt werden.


+ Shape anzeigen bei Sonderzeichen im zip-Archiv

--Markus Hentschel 12:05, 30. Aug 2010 (CEST) Wenn ich go=SHP_Anzeigen durchführe und zip-Archiv und epsg angebe, dann kommt anschließend: "Fatal error: Call to undefined function: zip_open() in /srv/www/htdocs/kvwmap/funktionen/allg_funktionen.php on line 390", wenn im Namen des ZIP-Archivs Sonderzeichen (z.B. Leerzeichen) sind.

--Rahn 10:02, 9. Sep 2010 (CEST) Probier mal in allg_funktionen.php in der Funktion unzip() in den folgenden beiden Zeilen den Dateinamen in Anführungszeichen zu setzen:
exec('unzip -l "'.$src_file.'" -d '.dirname($src_file), $output);

und

exec('unzip -o "'.$src_file.'" -d '.dirname($src_file));

+ Suchabfrage speichern mit Operator "ist leer"

--Markus Hentschel 07:45, 25. Aug 2010 (CEST) Wenn man eine Suchabfrage definiert hat mit dem Operator "ist leer" bei einem Attribut, dann merkt sich kvwmap das nicht, wenn man die Abfrage speichert. Weitere Operatoren hae ich nicht getestet.

--Rahn 08:57, 25. Aug 2010 (CEST) Um den Fehler zu beheben, müssen in users.php in der Funktion save_search() die beiden Vorkommen von
$this->formvars 

durch

$formvars 

ersetzt werden.

+ Änderungsdatum bei Aktualisierte Adresse

--Markus Hentschel 09:42, 16. Aug 2010 (CEST) Bei der Adressaktualisierung muss noch die deutsche Datumsschreibweise berücksichtigt werden, z.B. so:

In Flurstuecke_custom.php statt

$aendatum=substr($adressaenderungen['datum'],8,2).".".substr($adressaenderungen['datum'],5,2).".".substr($adressaenderungen['datum'],0,4);

dieses hier:

$aendatum=substr($adressaenderungen['datum'],0,10);


+ Geometrie von einem WFS-Layer übernehmen

Damit die Geometrie-Übernahme auch von WFS-Layern fehlerfrei funktioniert, muss in kvwmap.php in der Funktion getlayerdatabase() die Zeile

if(1){

durch diese Zeile

if($connectionstring != ''){

ersetzt werden.


+ embedded SubformembeddedPK schließen

--Markus Hentschel 15:33, 2. Aug 2010 (CEST) Wenn man bei einer SubformembeddedPK auf den Link klickt, wird der eingebettete Datensatz angezeigt. Wenn man den Link nochmal anklickt, sollte er sich wieder schließen. Tut er auch, geht aber sofort wieder auf.

--Rahn 16:24, 2. Aug 2010 (CEST) Zum Schließen ist der Button "Abbrechen" gedacht. Wenn man einen der Links anklickt, werden erstmal alle angezeigten Datensätze geleert (obwohl es ja nur einer ist, der auf sein kann) und dann klappt der angeklickte Datensatz auf. Dieser Effekt ist mir auch schon aufgefallen, aber ich habe noch keine andere Lösung dafür.
--Rahn 16:36, 2. Aug 2010 (CEST) Doch, mir ist eben doch eine Lösung eingefallen. In embedded_subformPK.php muss die Zeile
<td><a href="javascript:ahah(\''.URL.APPLVERSION.'index.php\', \'go=Layer-Suche_Suchen&selected_layer_id='.$this->qlayerset[$i]['Layer_ID'].'&value_'.$this->qlayerset[$i]['attributes']['table_name'][$this->formvars['preview_attribute']].'_oid='.$this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['table_name'][$this->formvars['preview_attribute']].'_oid'].'&embedded=true&fromobject=subform'.$this->qlayerset[$i]['Layer_ID'].$this->formvars['count'].'_'.$k.'&targetobject='.$this->formvars['targetobject'].'&targetlayer_id='.$this->formvars['targetlayer_id'].'&targetattribute='.$this->formvars['targetattribute'].'&data='.$this->formvars['data'].'\', new Array(document.getElementById(\'subform'.$this->qlayerset[$i]['Layer_ID'].$this->formvars['count'].'_'.$k.'\')), \'\');clearsubforms();">'.$output.'</a></td>

durch diese hier ersetzt werden:

<td><a href="javascript:if(document.getElementById(\'subform'.$this->qlayerset[$i]['Layer_ID'].$this->formvars['count'].'_'.$k.'\').innerHTML == \'\')ahah(\''.URL.APPLVERSION.'index.php\', \'go=Layer-Suche_Suchen&selected_layer_id='.$this->qlayerset[$i]['Layer_ID'].'&value_'.$this->qlayerset[$i]['attributes']['table_name'][$this->formvars['preview_attribute']].'_oid='.$this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['table_name'][$this->formvars['preview_attribute']].'_oid'].'&embedded=true&fromobject=subform'.$this->qlayerset[$i]['Layer_ID'].$this->formvars['count'].'_'.$k.'&targetobject='.$this->formvars['targetobject'].'&targetlayer_id='.$this->formvars['targetlayer_id'].'&targetattribute='.$this->formvars['targetattribute'].'&data='.$this->formvars['data'].'\', new Array(document.getElementById(\'subform'.$this->qlayerset[$i]['Layer_ID'].$this->formvars['count'].'_'.$k.'\')), \'\');clearsubforms();">'.$output.'</a></td>

+ mehrere Lagebezeichnung beim Flurstücksnachweis

--Markus Hentschel 13:45, 5. Jul 2010 (CEST) Beim Flurstücksnachweis werden Leerzeilen zwischen den Lagebezeichnungen erzeugt, wenn ein Flurstück mehrere davon hat. Damit das nicht passiert, muss in alb.php in der Funktion ALBAuszug_Flurstueck() im Abschnitt "Ausgabe der Adressangabe zur Lage" die Zeile

$pdf->addText($col3,$row-=$s*12,$fontSize,$ausgabetext[0]);

in

$pdf->addText($col3,$row-=12,$fontSize,$ausgabetext[0]);

und im Abschnitt "Ausgabe Lagebezeichnung falls vorhanden" die Zeile

$pdf->addText($col3,$row-=($i+1)*12,$fontSize,$Lagebezeichnung[$i]);

in

$pdf->addText($col3,$row-=12,$fontSize,$Lagebezeichnung[$i]);

geändert werden.

+ Layer-Suche

In der Layer-Suche funktionieren die attributabhängigen Auswahllisten nicht mehr. Um das zu beheben, muss in generic_search.php in der Funktion update_require_attribute()die Zeile

ahah("<? echo URL.APPLVERSION; ?>index.php", "go=get_select_list&layer_id="+layer_id+"&attribute="+attribute[i]+"&value="+value, new Array(document.getElementById('value_'+attribute[i])), 'sethtml');

gegen diese hier ausgetauscht werden:

ahah("<? echo URL.APPLVERSION; ?>index.php", "go=get_select_list&layer_id="+layer_id+"&attribute="+attribute[i]+"&value="+value+"&type=select-one", new Array(document.getElementById('value_'+attribute[i])), 'sethtml');

- CSV-Export Eigentümer

--Markus Hentschel 15:57, 29. Jun 2010 (CEST)

  • Wenn ein Flurstück auf mehreren Grundbüchern gebucht ist (und jedes Blatt möglicherweise auch noch mehrere Eigentümer aufweist), dann müsste beim Eigentümer-CSV-Export für jedes Grundbuchblatt und innerhalb des Grundbuchblattes für jeden Eingetümer je eine Zeile heraus gegeben werden.
  • Die Überschriften in der CSV-Datei sind nicht vollständig.

+ Grundbuchblattsuche

--Markus Hentschel 09:41, 21. Jun 2010 (CEST) Die Liste der Grundbuchblätter muss aufsteigend sortiert werden.

--Rahn 10:43, 29. Jun 2010 (CEST) Dazu muss in postgresql.php in der Funktion getGrundbuchblattliste() das SQL so erweitert werden:
$sql = "SELECT * FROM alb_grundbuecher WHERE bezirk = ".$bezirk." ORDER BY blatt";


--Markus Hentschel 13:34, 29. Jun 2010 (CEST) Ich hab noch einen: Wenn man von der Grundbuchblattsuche zur Anzeige eines Grundbuchblattes geht, von dort zur Sachdatenanzeige ALB eines Flurstücks und von dort wieder zurück zur Grundbuchblattsuche, dann hat kvwmap unterwegs die Grundbuchblattnummer verloren und es kommt eine Fehlermeldung.
--Rahn 09:58, 30. Jun 2010 (CEST) Um das zu beheben, müssen in den Dateien grundbuchblattanzeige.php und Flurstuecke_custom.php die Zeilen
<input name="Bezirk" type="hidden" value="<? echo $this->formvars['Bezirk']; ?>">
<input name="Blatt" type="hidden" value="<? echo $this->formvars['Blatt']; ?>">

gegen diese Zeile ausgetauscht werden:

<input name="selBlatt" type="hidden" value="<? echo $this->formvars['selBlatt']; ?>">

( --Markus Hentschel 10:43, 30. Jun 2010 (CEST) Nur in Klammern: die beiden o.g. Zeilen tauchen in Flurstuecke_custom.php zwei mal auf...)

--Rahn 11:32, 30. Jun 2010 (CEST) nicht wenn man Groß-und Kleinschreibung beachtet...
--Markus Hentschel 11:44, 30. Jun 2010 (CEST) Da sieht man, wer den Urlaub noch vor sich hat :-)
--Markus Hentschel 10:39, 30. Jun 2010 (CEST) Dann mach ich mal weiter :-) Der Link "zurück zur Grundbuchblattsuche" in der Sachdatenanzeige ALB führt wieder zur Anzeige des Grundbuchblattes und nicht zur Suche. Die Linkbeschriftung müsste "zurück zur Grundbuchblattanzeige" heißen - dass man dort landet, finde ich ansonsten ok! In der Grundbuchblattanzeige fehlt leider ein Link "zurück zur Grundbuchblattsuche", dort müsste er hin.

+ nach Attribut klassifizieren

--Markus Hentschel 08:39, 21. Jun 2010 (CEST) Ich weiß nicht, ob es ein Fehler ist, auf jeden Fall resultieren daraus eine Menge Fehlermeldungen, die umfangreiche Administratortätigkeiten auslösen.

  • Die Attribute, die zum klassifizierten Kartenzoom angeboten werden, holt kvwmap aus dem Pfad. Wenn man dann jedoch in die Karte zoomt, muss das Attribut, das man ausgewählt hat, auch in Data stehen (für den Rollenlayer), sonst kommt nur eine Fehlermeldung, die besagt, dass das zur Klassifizierung des Layers verwendete Attribut fehlt. D.h. in der Konsequenz *müssen* immer *alle* Attribute in Data genannt werden, die auch im Pfad stehen. Liege ich richtig?
  • Bei einigen Layern (Fläche oder Linie) kriege ich Fehlermeldungen wie "Fatal error: [MapServer Error]: setExtent(): Given map extent is invalid. Check that it is in the form: minx, miny, maxx, maxy in /srv/www/htdocs/kvwmap/class/kvwmap.php on line 1958" oder "Warning: array_unique() [function.array-unique]: The argument should be an array in /srv/www/htdocs/kvwmap/class/kvwmap.php on line 1880"
--Markus Hentschel 15:29, 23. Jun 2010 (CEST) Die zweite Meldung kommt bei Pseudoattributen im Pfad

- Kartenbild zum Abspeichern anzeigen zeigt nichts

--Markus Hentschel 09:17, 18. Jun 2010 (CEST) go=showMapImage funktioniert nicht, es geht zwar ein neuer Tab auf, aber darin steht nur eine Fehlermeldung, die mir sagt, dass die Grafik Fehler enthält.

--Markus Hentschel 07:42, 19. Aug 2010 (CEST) Die Ursache ist ImageMagick, dass ohne SVG-Unterstützung kompiliert ist. Zu erkennen mit folgendem Befehl:
identify -list format
Bei SVG muss rw+ stehen, dann funzt es mit der neuen Kartenbildanzeigenfunktion. Wenn da nur -w+ steht, gehts nicht.
Gibt es irgendjemanden, der weiß, wie man Imagemagick so kompiliert, dass SVG auch readable ist?

+ Layerexport

--Certa 15:49, 15. Jun 2010 (CEST) Bei der Funktion "Layerexport" wird, wenn bei der Definition der classes das Feld Expression leer ist, standardmässig NULL eingetragen, was dann zu einer Fehlermeldung führt.

--Rahn 10:37, 29. Jun 2010 (CEST) Um den Fehler zu beheben, muss in mysql.php in der Funktion create_insert_dump() die Zeile
if(mysql_field_type($query, $i) != 'string' AND $rs[$i] == ''){

durch diese hier ersetzt werden:

if(mysql_field_type($query, $i) != 'string' AND mysql_field_type($query, $i) != 'blob' AND $rs[$i] == ''){

+ Namensuche / Gemarkungs- und Flurauswahl

--Markus Hentschel 10:24, 14. Jun 2010 (CEST) Ich weiß nicht, ob es in dieser Version schon behoben wurde: die Fehlermeldung in der 1.7.3 wurde zwar korrigiert, aber so, dass jetzt die Flurauswahl nicht mehr funktioniert.

--Rahn 16:23, 30. Jun 2010 (CEST) Um das zu beheben, muss in kvwmap.php in der Funktion namenWahl() die Zeile
$this->GemkgFormObj=new FormObject("GemkgID","select",$GemkgListe['GemkgID'],array($GemkgID),$GemkgListe['Bezeichnung'],"1","","",NULL);

durch diese hier ersetzt werden:

$this->GemkgFormObj=new selectFormObject("GemkgID","select",$GemkgListe['GemkgID'],array($GemkgID),$GemkgListe['Bezeichnung'],"1","","",NULL);

+ Weiterentwicklung Schnelldruck - Maßstab ausgeben

Da das nur eine Zeile ist, stell ich diese Weiterentwicklung auch hier rein: In kvwmap.php muss in der Funktion createMapPDF nach der Zeile

if($fast == true){			# schnelle Druckausgabe ohne Druckausschnittswahl

diese Zeile eingefügt werden:

$this->formvars['printscale'] = round($this->map->scale);

+ Dokumentart ändern auf "Andere"

--Andreas Thurm 10:42, 27. Mai 2010 (CEST)Wenn ein Dokument als FFR, KVZ oger GN abgespechert ist, kann man die Dokumentart nachträglich nicht auf "andere" ämdern. Das Dokument bekommt zwar die ART 111 zugewiesen. Die Information, um was für ein Dokument es sich handelt, wird aber nicht gespeichert. Es wird kein Eintrag in der Tabelle n_nachweise2dokumentarten vorgenommen. Wird ein Dokument ursprünglich mit der Dokumentart "andere" erfasst, kann man es auch nachträglich ändern.

--Rahn 12:33, 28. Mai 2010 (CEST) Um den Fehler zu beheben, muss in der Datei class/nachweis.php in der Funktion aktualisierenDokument() der Abschnitt

if($andere_art != ''){
    $sql = "UPDATE n_nachweise2dokumentarten SET dokumentart_id = ".$andere_art." WHERE nachweis_id = ".$id.";";
    #echo $sql;
    $ret=$this->database->execSQL($sql,4, 1);	
 }

durch diesen hier ersetzt werden:

if($andere_art != ''){
    $sql = "SELECT dokumentart_id FROM n_nachweise2dokumentarten WHERE nachweis_id = ".$id.";";
    $query=@pg_query($this->database->dbConn,$sql);
    $rs=pg_fetch_array($query);
    if ($rs[0]!=''){
      $sql = "UPDATE n_nachweise2dokumentarten SET dokumentart_id = ".$andere_art." WHERE nachweis_id = ".$id.";";
      #echo $sql;
      $ret=$this->database->execSQL($sql,4, 1);
    }
    else{
      $sql = "INSERT INTO n_nachweise2dokumentarten";
      $sql .= " SELECT id, ".$andere_art." FROM n_nachweise WHERE id = ".$id;
      #echo $sql;
      $ret=$this->database->execSQL($sql,4, 1);	
    }	
 }

+ Layer-Suche

Bei der Layer-Suche können Fehler auftreten, wenn man in einem anderen Koordinatensystem als das der aktuellen Stelle arbeitet. Um den Fehler zu beheben, muss in kvwmap.php in der Funktion GenerischeSuche_Suchen() die Zeile

$sql_where.=' AND ('.$layerset[0]['attributes']['the_geom'].' && Transform(geomfromtext(\'POLYGON(('.$this->Stelle->MaxGeorefExt->minx.' '.$this->Stelle->MaxGeorefExt->miny.', '.$this->Stelle->MaxGeorefExt->maxx.' '.$this->Stelle->MaxGeorefExt->miny.', '.$this->Stelle->MaxGeorefExt->maxx.' '.$this->Stelle->MaxGeorefExt->maxy.', '.$this->Stelle->MaxGeorefExt->minx.' '.$this->Stelle->MaxGeorefExt->maxy.', '.$this->Stelle->MaxGeorefExt->minx.' '.$this->Stelle->MaxGeorefExt->miny.'))\', '.$this->Stelle->epsg_code.'), '.$layerset[0]['epsg_code'].') OR '.$layerset[0]['attributes']['the_geom'].' IS NULL)';

durch diese hier ersetzt werden:

$sql_where.=' AND ('.$layerset[0]['attributes']['the_geom'].' && Transform(geomfromtext(\'POLYGON(('.$this->Stelle->MaxGeorefExt->minx.' '.$this->Stelle->MaxGeorefExt->miny.', '.$this->Stelle->MaxGeorefExt->maxx.' '.$this->Stelle->MaxGeorefExt->miny.', '.$this->Stelle->MaxGeorefExt->maxx.' '.$this->Stelle->MaxGeorefExt->maxy.', '.$this->Stelle->MaxGeorefExt->minx.' '.$this->Stelle->MaxGeorefExt->maxy.', '.$this->Stelle->MaxGeorefExt->minx.' '.$this->Stelle->MaxGeorefExt->miny.'))\', '.$this->user->rolle->epsg_code.'), '.$layerset[0]['epsg_code'].') OR '.$layerset[0]['attributes']['the_geom'].' IS NULL)';

+ Anzeige Aktualität ALK

--Andreas Thurm 08:48, 10. Mai 2010 (CEST)Im Snippet für die Flurstücksanzeige wird die Aktualität der ALK-Daten immer mit dem 10.12.2005 angegeben.

--Rahn 09:26, 11. Mai 2010 (CEST) Hier muss die Zeile
$aktalk = date("d.m.Y", mktime(0, 0, 0, substr($r_aktalk[0], 5, 2), substr($r_aktalk[0], 8, 2), substr($r_aktalk[0], 0, 4)));

durch diese hier ersetzt werden:

$aktalk = date("d.m.Y", mktime(0, 0, 0, substr($r_aktalk[0], 3, 2), substr($r_aktalk[0], 0, 2), substr($r_aktalk[0], 6, 4)));
--HolgerR 10:28, 31. Mai 2010 (CEST) Das Datum für die ALB-Aktualität '$aktalb' muss ebenso angepasst werden.
--Rahn 11:40, 31. Mai 2010 (CEST) Ja, und zwar so: Bug_kvwmap#.2B_Anzeige_der_Aktualit.C3.A4t_ALB
--HolgerR 12:42, 31. Mai 2010 (CEST) Genau. Hatte ich wohl nur in der Flurstuecke_custom.php geändert

+ Fachschale Bodenrichtwerte

  • --Andreas Thurm 07:48, 10. Mai 2010 (CEST)Bei der Bearbeitung von existierenden Bodenrichtwertzonen tritt ein Fehler bei der Speicherung des Stichtages auf. Dort wo eigentlich nur das Jahr stehen sollte, also z. Bsp. 2009, steht dann das komplette Datum also: 31.12.2009. Beim Abspeichern wird dann der Wert des Stichtages nicht korrekt abgespeichert. Außerdem funktioniert die automatische Auswahl der Gemarkung nicht mehr.
--Rahn 09:21, 11. Mai 2010 (CEST) Um die Fehler zu beheben muss in der Datei snippets/bodenrichtwerterfassung_vboris.php die Zeile
<input name="stichtag" type="text" value="<?php echo array_pop(array_reverse(explode('-', $this->formvars['stichtag']))); ?>" size="5" maxlength="5">

durch diese hier ausgetauscht werden:

<input name="stichtag" type="text" value="<?php echo array_pop(explode('.', $this->formvars['stichtag'])); ?>" size="5" maxlength="5">

und die Zeile

ahah("<? echo URL.APPLVERSION; ?>index.php", "go=get_select_list&layer_id="+layer_id+"&attribute="+attribute[i]+"&value="+value, new Array(document.getElementsByName(attribute[i])[0]), 'sethtml');

durch diese ersetzt werden:

ahah("<? echo URL.APPLVERSION; ?>index.php", "go=get_select_list&layer_id="+layer_id+"&attribute="+attribute[i]+"&value="+value+"&type=select-one", new Array(document.getElementsByName(attribute[i])[0]), 'sethtml');



  • --Markus Hentschel 13:36, 14. Jun 2010 (CEST) Die Zeilenumbrüche in den Feldern "örtliche Bezeichnung" und "Bemerkungen" verschwinden beim Speichern

+ Layer im GLE, die ein anderes Schema verwenden

Bei Layern, die ein anderes Schema als public verwenden, kann es im GLE zu Fehlern kommen. Um das zu beheben, muss in postgresql.php in der Funktion check_oid() nach der Zeile

$sql = 'SELECT oid from '.$tablename.' limit 0';

das hier eingefügt werden:

if($this->schema != ''){
   $sql = "SET search_path = ".$this->schema.", public;".$sql;
 }

+ Anzeige der Aktualität ALB

Durch die Umstellung auf das deutsche Datumsformat kommt es bei der Flurstücksanzeige zu einer falschen Ausgabe des ALB-Datums. Um den Fehler zu beheben, muss in der Datei Flurstuecke_custom.php die Zeile

$aktalb = date("d.m.Y", mktime(0, 0, 0, substr($r_aktalb[0], 5, 2), substr($r_aktalb[0], 8, 2), substr($r_aktalb[0], 0, 4)));

durch diese Zeile ersetzt werden:

$aktalb = date("d.m.Y", mktime(0, 0, 0, substr($r_aktalb[0], 3, 2), substr($r_aktalb[0], 0, 2), substr($r_aktalb[0], 6, 4)));

+ Zoom auf Punktlayer-Datensatz

Beim Zoom auf einen einzelnen Punkt-Layer-Datensatz hat sich ein Fehler eingeschlichen. Um ihn zu beheben müssen in kvwmap.php in der Funktion zoom_toPoint() alle 4 Vorkommen von

$this->$layerdb

durch

$layerdb

ersetzt werden. Außerdem muss die Zeile

$this->formvars['epsg_code'] = $this->user->rolle->epsg_code;

durch

$this->formvars['epsg_code'] = $layerset[0]['epsg_code'];

ersetzt werden.

Version 1.7.3

- Mapserver Error verursacht durch Koordinaten in Tabelle Rolle

--Hschmidt 10:02, 28. Apr 2010 (CEST)
Durch Eingabefehler, die ich nicht näher benennen kann, werden in der Tabelle Rolle identische Koordinaten für minx und maxx sowie miny und maxy eingetragen. Dieses verurschacht einen Mapserver Error. Kann man evtl. verhindern, dass dort gleiche Koordinatenpaare abgelegt werden???

+ "alle"-Button bei Layern mit SelectionType=radio

--Markus Hentschel 08:49, 14. Apr 2010 (CEST) Wenn man in der Legende in einer Gruppe mit Layern, die alle mit Radiobutton erscheinen, auf "alle" klickt, werden alle markiert. Das darf dort meiner Meinung nach nicht sein, "alle" sollte bei Radio-Layern nicht funktionieren.

+ Geometrieeditor

--Rahn 10:10, 25. Mär 2010 (CET) Wenn man im Geometrieeditor einen anderen Layer für die Geometrieübernahme auswählt und dieser Layer auf eine andere Datenbank oder ein anderes Schema zugreift als der gerade bearbeitete Layer, erscheint nach dem Speichern des Datensatzes eine Fehlermeldung. Um das zu beheben müssen in kvwmap.php in der Funktion PolygonEditor() die beiden Zeilen

$layerdb = $this->mapDB->getlayerdatabase($this->formvars['layer_id'], $this->Stelle->pgdbhost);
$layerset = $this->user->rolle->getLayer($this->formvars['layer_id']);

durch diese hier ersetzt werden:

$layerdb = $this->mapDB->getlayerdatabase($this->formvars['selected_layer_id'], $this->Stelle->pgdbhost);
$layerset = $this->user->rolle->getLayer($this->formvars['selected_layer_id']);

+ Stelleneditor / Start - Stop

--Hschmidt 08:10, 17. Mär 2010 (CET)
Kein eigentlicher Bug, aber es fehlt im Stelleneditor die Möglichkeit die start und stop Werte für Stellen zu setzen.

+ CSV-Export-Eigentümer / CSV-Export_Nutzungsarten ohne Flurstückskennzeichen_kurz

--Hschmidt 10:16, 15. Mär 2010 (CET)
Bei CSV-Export-Eigentümer und CSV-Export_Nutzungsarten wird das Flurstückskennzeichen_kurz nicht angeboten/ausgegeben.

- Nachweis mit fehlerhaftem Polygon

--Karsten Daedelow 11:30, 10. Maerz 2010 Ein Nachweis wurde mit fehlerhafter Geometrie (kreuzende Linien) abgelegt. Als er zusammen mit anderen als Vorlage zur Erfassung eines weiteren Nachweises genutzt werden sollte, kam es zur Fehlermeldung. Sollte die Geometrieprüfung auf derartige Fehler nicht bereits bei der Erfassung des 1. Nachweises erfolgen ?

--Rahn 15:38, 10. Mär 2010 (CET) Die Geometrieprüfung wird bisher nur beim Erfassen im GLE durchgeführt...

- Geburtsname in der Namenssuche

--Markus Hentschel 12:38, 23. Feb 2010 (CET) Der Geburtsname wird im ALB im zweiten Feld gespeichert. Entsprechend muss in der Suchmaske zur Namensuche der Hinweis "Geburtsname" nicht bei Feld 1, sondern bei Feld 2 stehen: "Geburtsname/geboren am/Firmenzusatz". Entsprechend in allen Languagedateien.

--Rahn 15:33, 10. Mär 2010 (CET) Hmmm, da gibt es offensichtlich Unterschiede. Bei uns steht er im ersten Feld. Oder haben wir nur ein zu altes ALB?
--Markus Hentschel 09:45, 19. Apr 2010 (CEST) Ach das ist wieder typisch ALB. Jeder kann reinschreiben, was und vor allem wo er will. Na gut, dann muss ich das Snippet eben bei jedem Update anpassen - ALKIS ist ja nicht mehr weit...
--Rahn 12:30, 19. Apr 2010 (CEST) Naja, wir können ja auch beim nächsten Treffen mal rumfragen, wie es bei den anderen so aussieht. Kann ja sein, dass es nur bei unserem ALB so ist.

- Neue Styles / Labels bei neuer Class

--Markus Hentschel 15:31, 17. Feb 2010 (CET) Wenn ein Layer aus einer Vorlage neu angelegt wird, dann kriegt er zwar neue Classes, aber dieselben Styles und Labels (dieselbe ID).

--Rahn 15:29, 10. Mär 2010 (CET) Ja, ist ja eigentlich auch nicht weiter schlimm. Es kann ja sein, dass man mehrere Layer hat, die denselben Style verwenden sollen. Bei Änderungen muss man dann den Style nur einmal anpassen. Und wenn man jetzt im Style- und Labeleditor einen Style löscht, der mehrfach verwendet wird, wird ja nur die Zuordnung gelöscht.
--Markus Hentschel 09:48, 19. Apr 2010 (CEST)Richtig, ich glaube, die Idee stammte sogar von mir... Vielleicht irgendwo ein kleiner garnierender Hinweis, der dem vergesslichen Admin mitteilt, dass er Style und Label sorglos löschen kann, weil er nur die Zuordnung löscht, aber nicht den Style selbst?

+ Polygon hinzufügen/ausschneiden nach Speichern

--Markus Hentschel 13:19, 17. Feb 2010 (CET) Wenn ich eine vorhandene Geometrie zur Bearbeitung im Geometrieeditor aufrufe oder nach dem Speichern / Zwischenspeichern weiter bearbeiten will, wird die vorhandene Geometrie vom letzten gezeichneten Punkt aus weiter bearbeitet. Das darf meiner Meinung nach nicht sein - oder soll das so??? Die Benutzer sind jedenfalls ordentlich verwirrt und es kommt zu jede Menge Fehlern.

--Rahn 15:37, 17. Feb 2010 (CET) Ist dafür nicht die Konstante ALWAYS_DRAW in der config.php zuständig?
--Markus Hentschel 15:42, 17. Feb 2010 (CET) Bei mir ist ALWAYS_DRAW = false, aber es wird trotzdem fröhlich weitergezeichnet, auch wenn ich nicht Polygon hinzufüge, sondern auf Polygon ausschneiden gehe...

+ Fehler im WMS-Export

--Hschmidt 15:39, 16. Feb 2010 (CET)
Beim WMS-Export in dieser Version wird in dem Beispiel für den getMap-Request die URL falsch zusammengesetzt, wodurch der Aufruf nicht funktioniert. Hier muss es statt:

... &srs=2398 ...

heissen

... &SRS=EPSG:2398 ...

Bei der Ausgabe von mehreren Layern werden die folgenden Layer an die BBox angehängt z.B.:

... &bbox=4401000,5880000,4493000,5972000,layer2,layer3, ...

+ Ausführende Stelle im CSV-Export

--Markus Hentschel 09:50, 15. Feb 2010 (CET) Bei Eigentümer- und NA-CSV-Export wird die ausführende Stelle nicht übergeben.

--Rahn 13:47, 10. Mär 2010 (CET) Das Verfahren hat auch gefehlt.

+ Sortierung von Datensätzen in der Sachdatenanzeige

--Hschmidt 14:25, 11. Feb 2010 (CET)
Klickt man in der Sachdatenanzeige nach der Abfrage über die Karte auf einen Attributnamen, um die Datensätze zu sortieren, kommt es zu einer Fehlermeldung. Um den Fehler zu beheben, muss in kvwmap.php in der Funktion SachdatenAnzeige() vor der Zeile

$ret=$layerdb->execSQL($sql.$sql_order.$sql_limit,4, 0);

diese Zeile eingefügt werden:

 if($this->formvars['orderby'.$layerset[$i]['Layer_ID']] != '' OR $layerset[$i]['attributes']['orderby'] != '' OR $komma == ''){$sql_order = '';}

Vgl. untenstehender Bug im GLE

Danke an Stefan Rahn :-)

+ GLE | Probleme bei der Übernahme von Flurstücksgeometrien

--Hschmidt 13:11, 10. Feb 2010 (CET)
Bei der Übernahme von Flurstücksgeometrien im GLE kann zu folgendem Fehler kommen:

Fehler bei SQL Anweisung: SET search_path = public, public;SELECT round(Area(GeomFromText('undefined'))::numeric, 2)


Lösung: im Data-Statement der Layerdefinition das "o.the_geom" in "the_geom" ändern:

o.the_geom from (select o.objnr as ...  --->  the_geom from (select o.objnr as ...

Danke an Stefan Rahn für die schnelle Hilfe :-)

+ Firefox 3.6

Bei der Verwendung von kvwmap mit dem Firefox 3.6 kommt es zu Fehlern bei der SVG-Darstellung. Das liegt offenbar an Umlauten in Kommentaren im SVG-Code. Bisher sind folgende Stellen bekannt:

  • in SVG_map.php die Zeile
//---------------- Fläche messen --------------------
  • in SVG_Utilities.php die Zeile
if(pixel_coordy < 0){ // im Firefox fuehrten große negative Zahlen zum Absturz

+ hist. Flurstückssuche

--Markus Hentschel 07:39, 26. Jan 2010 (CET) Wenn man die historische Flurstückssuche anwählt, sollte unbedingt auch historische Flurstückssuche drüber stehen und nicht nur Flurstückssuche.

--Rahn 14:00, 26. Jan 2010 (CET) Dazu muss im Snippet flurstueckssuche.php die Zeile
<br><h2><?php echo $strTitle; ?></h2>

gegen diese getauscht werden:

<br><h2><?php echo $this->titel; ?></h2>

+ Löschen von recherchierten Nachweise

--Karsten Daedelow 15:30, 19. Jan 2010

Man kann einen Riß mit einer nicht nummerischen Stammnummer speichern. Will man diesen aber wieder löschen, wird der Eintrag aus der Tabelle n_nachweise gelöscht. Physisch bleibt er aber im data-Verzeichnis liegen (Fehlermeldung, dass der Pfad nicht gefunden wurde). Beim Löschen von Rissen mit nummerischer Stammnummer bleibt die angelegte Ordnerstruktur stehen (ohne Fehlermeldung). War dieser Bug nicht schon mal behoben ?

--Rahn 12:11, 20. Jan 2010 (CET) Damit auch Nachweise mit nicht-nummerischen Stammnumern gelöscht werden können, muss in class/nachweis.php in der Funktion nachweiseLoeschen() das
intval

rausgenommen werden.

- Namenssuche

Wenn man in der Namenssuche im Gemarkungsauswahlfeld etwas auswählt, wird fälschlicherweise immer die Suche gestartet. Um das zu beheben, muss in kvwmap.php in der Funktion namenWahl() das

selectFormObject

durch

FormObject

ersetzt werden.

--Markus Hentschel 10:20, 14. Jun 2010 (CEST) Leider kann jetzt die Flur nicht ausgewählt werden, weil der Select in der Gemarkungsliste keine Aktualisierung der Fluren mehr auslöst.

+ Sortierung von Datensätzen im GLE

Klickt man im GLE auf einen Attributnamen, um die Datensätze danach zu sortieren, kommt es zu einer Fehlermeldung. Um den Fehler zu beheben, muss in kvwmap.php in der Funktion GenerischeSuche_Suchen() vor der Zeile

$ret=$layerdb->execSQL($sql.$sql_order.$sql_limit,4, 0);

diese Zeile eingefügt werden:

 if($this->formvars['orderby'.$layerset[0]['Layer_ID']] != '' OR $layerset[$i]['attributes']['orderby'] != '' OR $komma == ''){$sql_order = '';}

+ Eigentümer-CSV-Export

Der Eigentümer-CSV-Export wird immer angeboten, auch wenn die Stelle keine Eigentümer sehen soll. Um das zu beheben, muss im Snippet Flurstuecke_custom.php die Zeile

<a href="javascript:send_selected_flurst('Eigentümer-CSV-Export', '', '', '');">CSV-Export-Eigentümer</a> | 

gegen diese Zeile ausgetauscht werden:

<? if($privileg['eigentuemer']){?><a href="javascript:send_selected_flurst('Eigentümer-CSV-Export', '', '', '');">CSV-Export-Eigentümer</a> | <?}?>


+ Tooltipp in Datei-Formularfeldern

--Markus Hentschel 14:27, 22. Dez 2009 (CET) In Stelle anzeigen zeigt der Tooltipp bei Druckrahmen und Layer den Eintrag nur bis zum ersten Leerzeichen an.

+ Koordinateneingabe im Geometrieeditor bringt Fehler beim IE

--Andreas Thurm 11:28, 15. Dez 2009 (CET)Die neue Funktion der Koordinateneingabe im Geometrieeditor bringt bei der Verwendung des IE einen Fehler: Das Objekt unterstützt diese Eigenschaft oder Methode nicht (line:1, column:0) Im Firefox funktioniert es allerdings...

--Rahn 11:01, 16. Dez 2009 (CET) Damits auch im IE funktioniert, muss in SVG_Utilities.php folgende Funktion ausgetauscht werden:
 function coord_input(){
   coord = prompt("Koordinateneingabe:", Math.round(minx+(maxx-minx)/2)+" "+Math.round(miny+(maxy-miny)/2))+"";
   coords1 = coord.split(" ");
   mouse_coords_type = "world";
   evt1 = new Object();
   evt1.clientX = coords1[0];
   evt1.clientY = coords1[1];
   mousedown(evt1);
   mouse_coords_type = "image";
 }

+ Einschränkung über Tabelle stelle_gemeinden wirkt nicht für Nachweisverwaltung

--Hschmidt 15:52, 10. Dez 2009 (CET)
Die Einschränkung über die Tabelle stelle_gemeinden wirkt sich nicht auf das Nachweisformular und die darin enthaltene Auswahlliste der Gemarkungen/Gemeinden aus.

--Rahn 13:47, 14. Dez 2009 (CET) Um den Fehler zu beheben, müssen in kvwmap.php in der Funktion nachweisFormAnzeige() die beiden Zeilen
 $Gemarkung=new gemarkung('',$this->pgdatabase);
 $GemkgListe=$Gemarkung->getGemarkungListe('','','gmk.GemkgName');

durch diese Zeilen ersetzt werden:

 $GemeindenStelle=$this->Stelle->getGemeindeIDs();
 $Gemeinde=new gemeinde('',$this->pgdatabase);
 $GemListe=$Gemeinde->getGemeindeListe('',$GemeindenStelle,'','GemeindeName');
 $Gemarkung=new gemarkung('',$this->pgdatabase);
 $GemkgListe=$Gemarkung->getGemarkungListe($GemListe['ID'],'','gmk.GemkgName');

+ Fehler bei Abfrage von mehreren Layern

Fragt man mehrere Layer ab, von denen manche ein Template haben und manche nicht, kann es zu einem Fehler kommen. Um den Fehler zu beheben, muss in kvwmap.php in der Funktion SachdatenAnzeige() nach der Zeile

for ($i=0;$i<$anzLayer;$i++) {

diese Zeile eingefügt werden:

$sql_order = '';

+ Formularelementtyp 'User' fehlt in der Tabelle layer_attributes

In der mysql_update.sql wurde diese Zeile vergessen:

ALTER TABLE `layer_attributes` CHANGE `form_element_type` `form_element_type` ENUM('Text','Textfeld','Auswahlfeld','Geometrie','SubFormPK','SubFormFK','SubFormEmbeddedPK','Time','Dokument','Link','User') NOT NULL DEFAULT 'Text';

+ Nutzerdaten speichern

Beim Speichern der Nutzerdaten wird die Meldung ausgegeben, dass der Nutzer schon existiert. Um den Fehler zu beheben, muss in users.php in der Funktion checkUserDaten() die Zeile 13

else{

durch diese Zeile ersetzt werden:

elseif($userdaten['go_plus'] == 'Als neuen Nutzer eintragen'){

+ Konstante BG_MENUESUB funktioniert nicht

Eine Veränderung der Konstante BG_MENUESUB zeigt keine Wirkung. Um den Fehler zu beheben, muss in menue_head.php in der Funktion changemenue() die Zeile

sub.style.background = '#EDEFEF';

durch diese hier ersetzt werden

sub.style.background = '<? echo BG_MENUESUB; ?>';

Version 1.7.2

+ gui_button | liefert kein Ergebnis der Adress- und Flurstücksrecherche

--Hschmidt 09:47, 12. Nov 2009 (CET)
Bei Aktivierung der gui_button liefert die Adressuche und Flurstückssuche kein Ergebnis. Jedenfalls bei mir ;-)

--Rahn 12:03, 12. Nov 2009 (CET) In der gui_button.php muss die Zeile
<form name="GUI" enctype="multipart/form-data" method="post" action="index.php">

durch

<form name="GUI" id="GUI" enctype="multipart/form-data" method="post" action="index.php">

ersetzt werden.

+ Sprache Plattdeutsch | Fehler in Tabelle rolle

--Hschmidt 11:27, 29. Okt 2009 (CET)
In den Updates für die Tabelle rolle fehlt die plattdeutsche Sprache, womit beim Wechsel in diese Sprachen div. Fehlermeldungen verursacht wurden.
Das Upate aus der Version 1.6.8 muss so (oder ähnlich) aussehen:

ALTER TABLE `rolle` ADD `language` ENUM( 'german', 'low-german', 'english', 'vietnamese' ) NOT NULL DEFAULT 'german';
--Rahn 09:29, 30. Okt 2009 (CET) Dafür gibts ne extra Datei "mysql_low-german.sql". Aber Sie haben Recht, eigentlich gehört das in die mysql_update.sql. In der nächsten Version ist das mit drin.

+ CSV-Export | Flurstückskennzeichen_kurz in Hochkomma

--Hschmidt 10:35, 29. Okt 2009 (CET)
Kein Bug aber etwas unschön ist das Flurstückskennzeichen_kurz beim CSV-Export in Hochkomma.

--Rahn 09:26, 30. Okt 2009 (CET) Ja, das hatten wir schon auf dem letzten Anwendertreffen besprochen. Die Hochkommas stehen nicht ohne Grund da. Wenn man sie nämlich weglässt, interpretiert Excel das Flurstückskennzeichen als Datum (1/10 --> 1.Oktober)

--Hschmidt 09:54, 2. Nov 2009 (CET) o.k. das hab ich wohl verpasst ;-)

+ Printversion | kein Weg zurück zu anderer GUI

--Hschmidt 10:02, 29. Okt 2009 (CET)
Nach der Aktivierung der Printversion als GUI (printversion.php) gibt es keine Möglichkeit zurückzukehren zu einer anderen GUI :-(

--Rahn 09:23, 30. Okt 2009 (CET) Ja, die Datei "printversion.php" liegt fälschlicherweise im layouts-Ordner. Sie ist nicht zur Verwendung als GUI gedacht, sondern wird aus /snippets eingebunden, wenn man in einer Sachdatenanzeige auf "drucken" geht.

+ Nutzerverwaltung | Loginname wird nicht geprüft

--Hschmidt 08:32, 29. Okt 2009 (CET)
Beim Anlegen eines neuen Benutzers wird nicht geprüft, ob der Loginname nicht schon vorhanden ist.
Wünschenswert wäre auch eine Prüfung des Loginnamens auf eine Mindestanzahl von Zeichen.

- Fachschale Bodenrichtwerte | Eingabe Stichtag

--Hschmidt 09:41, 20. Okt 2009 (CEST)
Bei fehlerhafter Eingabe des Jahres bei Stichtag, z.B.: 09 statt 2009 kommt keine Fehlermeldung und der Datensatz wird auch nicht gespeichert.

+ Weiterzeichnen nach pan

--Markus Hentschel 15:07, 14. Okt 2009 (CEST) Das erste Polygon eines Multipolygons kann man auch dann weiterzeichnen, wenn man die Karte verschoben hat. Bei den weiteren Teilflächen geht das nicht mehr, der Klick auf den Verschiebe-Button beendet das Zeichnen. Es muss aber auch dann noch gehen (vor allem bei der Nachweiserfassung extrem wichtig).

+ Groß/Kleinschreibung des Loginnamens

Damit die Überprüfung des Loginnamens case-sensitive ist, muss in mysql.php in der Funktion login_user() das SQL folgendermaßen angepasst werden:

$sql = "SELECT login_name FROM user WHERE login_name = BINARY('".$username."') AND passwort = '".md5($passwort)."'";

+ Speichern nach Abbruch in der Nachweiserfassung

--Markus Hentschel 10:40, 6. Okt 2009 (CEST) Wenn man in der Nachweiserfassung ein Dokument speichern will und die Warnung kommt, dass die angegebene Flur nicht in der angezeigten Flur liegt, dann kann man auf "Abbrechen" klicken und seine Eingaben korrigieren. Allerdings funktioniert danach der Sendenbutton nicht mehr. Lediglich wenn man die Karte durch z.B. Pannen verändert, kann man wieder speichern.

+ ZoomToMaxLayerExtent bei Rollenlayer

--Markus Hentschel 13:31, 5. Okt 2009 (CEST) Wenn man versucht, auf den kleinen Pfeil hinter einem Suchergebnislayer ("volle Layerausdehnung") zu klicken, kommt eine Fehlermeldung. Offensichtlich scheitert der Versuch, die Rollenlayer-ID zu übergeben.

- Druck bei Kartenprojektion WGS84 (4326)

--Hschmidt 14:46, 30. Sep 2009 (CEST)
Bei dieser Kartenprojektion kann kein Druck erzeugt werden. Bei der Druckausschnittswahl wird der Inhalt des gesamten Fenster markiert, unabhängig vom Druckmaßstab. Weiter im Druck wird ein leerer Rahmen ausgegeben. (War bei 1.7.1 auch schon so)

+ Liniengeometrien bearbeiten

Beim Bearbeiten von Liniengeometrien kommt es zu einem Fehler. Um ihn zu beheben, muss in kvwmap.php in der Funktion LineEditor() die Zeile

$rect = $lineeditor->zoomToLine($this->formvars['oid'], $this->formvars['layer_tablename'], 10);

durch diese hier ersetzt werden:

$rect = $lineeditor->zoomToLine($this->formvars['oid'], $this->formvars['layer_tablename'], $this->formvars['layer_columnname'], 10);

+ Layer löschen

--Markus Hentschel 13:44, 17. Sep 2009 (CEST) Wenn man einen Layer löscht über go=Layer_Loeschen, dann werden die Einträge in classes, layer_attributes, layer_attributes2stelle, used_layer, u_attributefilter2used_layer und u_rolle2used_layer nicht gelöscht.

- MINSCALE im Geometrieeditor

--HolgerR 11:23, 17. Sep 2009 (CEST) Wird im Geometrieeditor hereingezoomt, wird nur bis zu der Maßstabszahl gezoomt, die in der config.php in der Konstante MINSCALE festgelegt wurd. Ein vergrößern über diesen Wert hinaus ist nicht möglich. Das betrifft sowohl den generischen Layereditor, als auch die Nachweiserfassung. Die Option MINSCALE sollte m.E. doch nur beim Zoom auf die Geometrie aus der Sachdatenabfrage heraus berücksichtigt werden oder doch nicht?

--Rahn 09:56, 22. Sep 2009 (CEST) Dafür war sie ursprünglich gedacht gewesen, ja. Die Konstante MINSCALE ist aber die untere Grenze für alle Arten von Zoomvorgängen.

+ Ausgabe der Flurstücke in der Namenssuche

Wenn man sich in der Namenssuche die Flurstücke mit ausgeben lässt, kann es vorkommen, dass bei Eigentümern mit mehreren Grundbuchblättern immer alle Flurstücke des Eigentümers unter jedem GB-Blatt stehen. Das ist dann der Fall, wenn zu jedem Blatt kein separater Eigentümer angelegt wurde. Um den Fehler zu beheben muss in kvwmap.php in der Funktion nameSuchen() die Zeile

$ret = $flurstueck->getFlurstByLfdNrName($this->namen[$i]['lfd_nr_name'],NULL);

durch diese hier ersetzt werden:

$ret[1] = $flurstueck->getFlurstByGrundbuecher(array($this->namen[$i]['bezirk'].'-'.$this->namen[$i]['blatt']));


Damit in der Spalte "Flurstücke" auch die beiden Links "anzeigen" und "Karte" die richtigen Flurstücke liefern, muss in der Datei namensuchform.php folgendes angepasst werden:

Die Funktion flurstsuche muss so aussehen:

function flurstsuche(bezirk, blatt){
  document.GUI.Grundbuecher.value = bezirk+'-'+blatt;
  document.GUI.go.value = 'Suche_Flurstuecke_zu_Grundbuechern';
  document.GUI.submit();
}

die beiden Zeilen

<td align="center"><a href="javascript:flurstsuche(<?php echo $this->namen[$i]['lfd_nr_name']; ?>);"><?php echo $strShowFst; ?></a></td>
<td align="center"><a href="index.php?go=Zeige_Flurstuecke_zu_Namen&lfd_nr_name=<?php echo $this->namen[$i]['lfd_nr_name'];?>"><?php echo $strToMap; ?></a></td>

müssen durch diese beiden ersetzt werden:

<td align="center"><a href="javascript:flurstsuche('<?php echo $this->namen[$i]['bezirk'].'\',\''.$this->namen[$i]['blatt']; ?>');"><?php echo $strShowFst; ?></a></td>
<td align="center"><a href="index.php?go=Zeige_Flurstuecke_zu_Grundbuechern&Grundbuecher=<?php echo $this->namen[$i]['bezirk'].'-'.$this->namen[$i]['blatt'];?>"><?php echo $strToMap; ?></a></td>

und unten muss folgendes hidden-Feld eingefügt werden:

<input name="Grundbuecher" type="hidden" value="">

+ Fehler bei Zoom auf Datensätze

Bei einigen Layern kommt es zu einem Fehler, wenn man im GLE auf "Kartenausschnitt" klickt. Der dadurch angelegte Rollenlayer hat dann ein falsches Data-Statement. Um den Fehler zu beheben, muss in kvwmap.php in den Funktionen zoom_toPolygon() und zoom_toLine() nach der Zeile

if(strpos(strtolower($select), 'oid') === false){

diese Zeile eingefügt werden:

$select = str_replace('*', '*, oid', $select);

+ Fehler bei der plattdeutschen Version

Der gestrige Fehler im Internet Explorer bei der plattdeutschen Variante steckt in der language-Datei map_low-german-windows-1252.php. Die korrigierte Version sieht so aus:

<?php
 $strAvailableLayer="Praatheite Themen";
 $strCoordinates="Koordinaten";
 $strLoadNew="Nieg Loden";
 $strMapImageURL="Koortbeld taun Ofsekern anwiesen";
 $strChoose="Utwählen";
 $strMapScale="Maat";
 $strMapSettingsFrom="Koortinstellen vun";
 $strPreviousView="v'+unescape('%F6')+'rherig Ansich";
 $strNextView="neegste Ansich";
 $strZoomIn="Rin zoomen";
 $strZoomOut="Rut zoomen";
 $strZoomToFullExtent="Samtansich";
 $strPan="Verschuven";
 $strCoordinatesZoom="Koordinatenzoom";
 $strInfo="Info Affraag";
 $strInfoWithRadius="Info Affraag mit S'+unescape('%F6')+'kkrink";
 $strInfoInPolygon="Info Affraag in\'n Polygon";
 $strRuler="Streek afmeten";
 $strX="R";  
 $strY="H";
?>

+ menue_button.php fehlt

Im Skript ../layouts/gui_button.php wird das Skript LAYOUTPATH."snippets/menue_button.php" includiert. Leider fehlt diese Datei und es erscheint eine Fehlerausschrift im phplog.

--Rahn 10:35, 10. Sep 2009 (CEST) Die Dateien liegen in /layouts/snipptes/custom.

+ WMS-Dienst - getFeatureInfo schlägt fehlt

--HolgerR 07:40, 10. Sep 2009 (CEST) Bei dem Versuch, ein getFeatureInfo auf den WMS-Dienst der Digitalen Orthophotos des Landesverwaltung abzurufen, erhalte ich folgende Fehlermeldung

msWMSFeatureInfo(): WMS server error. Requested layer(s) are not queryable.  

Der Aufruf des Dienstes erfolgt bei mir mit folgender Syntax

http://www.geodaten-mv.de/dienste/adv_dop?REQUEST=GetMap&VERSION=1.1.1&SERVICE=WMS&LAYERS=adv_dop&SRS=EPSG:2398&FORMAT=image/png

Laut Dokumentation auf www.gaia-mv heißt der getFeatureInfo-Layer 'adv_dop_metadaten'. Kann das in kvwmap irgendwo hinterlegt werden, wenn die Bezeichnung der Layer von getMap und getFeatureInfo unterschiedlich sind? Oder sollte ich mir einen 2. Layer als getFeatureInfo anlegen, der abfragbar geschaltet ist und mit dem getMap-Layer über 'require' verknüpft ist?

--Rahn 10:34, 10. Sep 2009 (CEST) Nun ja, das ist wohl eher kein kvwmap-Bug, sondern liegt ja eindeutig am WMS-Server :-). Zur Lösung des Problems würde ich die Variante mit dem 2. Layer vorschlagen.

+ Festpunkte - FestpunkteSkizzenZuordnung

--HolgerR 07:40, 10. Sep 2009 (CEST) Bei der Suche von Festpunken nach dem Kilometerquadrat besteht die Möglichkeit die Zuordnung der Festpunkte zu den AP-Beschreibungen zu überprüfen und fehlende bzw. überzählige oder falsch zugewiesene AP-Beschreibungen herauszufinden und zu korrigieren. Wird nun der Button 'FestpunkteSkizzenZuordnung' angeklickt, wird nicht die entsprechende Maske angezeigt, sondern es wird wieder zur Karte gesprungen.
Stefan, es sind doch GigaBytes :)

--HolgerR 12:31, 19. Apr 2010 (CEST)Ich habe mir jetzt erst einmal so beholfen, dass ich im Snippet Festpunkte.php in der Zeile
<input name="go_plus" type="submit" value="FestpunkteSkizzenZuordnung">
go_plus in go geändert habe
Des weiteren ist in der Datei index.php der Aufruf Sachdaten_FestpunkteSkizzenZuordnung in FestpunkteSkizzenZuordnung geaendert worden.
Wenn dies das Problem ohne weitere Auswirkungen loest, koennte das ja fuer die neue Version bitte mit im Quellcode beruecksichtigt werden.

+ Nachweiserfassung mit dem IE

Bei Benutzung des Internet Explorers kommt es in der Nachweiserfassung beim Speichern zu einem Fehler. Um den Fehler zu beheben, muss in nachweis.php die Funktion check_poly_in_flur durch folgende ersetzt werden:

function check_poly_in_flur($polygon, $flur, $gemarkung, $epsg){
  	$sql = "SELECT alknflur.gemkgschl, alknflur.flur FROM alkobj_e_fla, alknflur WHERE alknflur.objnr = alkobj_e_fla.objnr AND intersects(the_geom, TRANSFORM(geometryfromtext('".$polygon."', ".$epsg."), ".EPSGCODE."))";
  	$ret=$this->database->execSQL($sql,4, 1);
  	$result = 'f';	
  	while($rs = pg_fetch_row($ret[1])){
  		if($gemarkung == $rs[0] AND $flur == ltrim($rs[1], '0')){
  			$result = 't';
  			break;
  		}
  	}
  	return $result;
  }

Außerdem muss im Snippet dokumenteneingabeformular.php in der Funktion save() diese Zeile vor der ersten Zeile eingefügt werden:

document.GUI.result2.value = '';

In der Funktion check_poly muss nach der Zeile

if(document.GUI.result2.value == 't'){

diese Zeile eingefügt werden:

  window.clearInterval(polycheck);

Und die Zeile

window.setInterval("check_poly()", 500);

muss so erweitert werden:

var polycheck = window.setInterval("check_poly()", 500);

- Zoom bei Kartenprojektion WGS84 (4326)

--Reißland 10:27, 7. Sep 2009 (CEST)

Bei Auswahl der Kartenprojektion WGS84 (EPSG:4326) kann man wohl auf die maximale Ausdehnng zoomen, ein zoomin ist aber nicht möglich.

+ Anzeige des Original-Dateinamens bei Dokumenten

Ist zwar eher eine Erweiterung als ein Bug aber auch notwendig, denke ich. Damit in der Vorschau der Dokumente im GLE auch der Original-Dateiname erscheint, muss in kvwmap.php folgendes angepasst werden:

In der Funktion neuer_Layer_Datensatz_speichern() muss die Zeile

$this->formvars[$form_fields[$i]] = URL.APPLVERSION."index.php?go=sendeDokument&dokument=".$nachDatei.";

so erweitert

$this->formvars[$form_fields[$i]] = URL.APPLVERSION."index.php?go=sendeDokument&dokument=".$nachDatei."&original_name=".$_FILES[$form_fields[$i]]['name'];

In der Funktion sachdaten_speichern() muss die Zeile

$sql = "UPDATE ".$tablename." SET ".$attributname." = '".URL.APPLVERSION."index.php?go=sendeDokument&dokument=".$nachDatei."' WHERE oid = '".$oid."'";

so erweitert werden:

$sql = "UPDATE ".$tablename." SET ".$attributname." = '".URL.APPLVERSION."index.php?go=sendeDokument&dokument=".$nachDatei."&original_name=".$_FILES[$form_fields[$i]]['name']."' WHERE oid = '".$oid."'";

und die Funktion sendeDokument_mit_vorschau() muss so aussehen:

function sendeDokument_mit_vorschau($dokument, $original_name) {
  	$type = strtolower(array_pop(explode('.', $dokument)));
  	echo '<html><head></head>
					<body background="'.GRAPHICSPATH.'bg.gif"><table border="0" cellpadding="0" cellspacing="0"><tr><td>';
  	if($type == 'jpg' OR $type == 'png' OR $type == 'gif' ){
  		echo '<a href="index.php?go=sendeDokument&dokument='.$dokument.'&original_name='.$original_name.'"><img style="border:1px solid black" height="140" src="index.php?go=sendeDokument&dokument='.$dokument.'"></a>';
  	}
  	else{
  		switch ($type) {
  			case 'pdf' :{
  				echo '<a href="index.php?go=sendeDokument&dokument='.$dokument.'&original_name='.$original_name.'"><img style="border:0px solid black" src="'.GRAPHICSPATH.'pdf.gif"></a>';
  			}break;
  			
  			case 'doc' :{
  				echo '<a href="index.php?go=sendeDokument&dokument='.$dokument.'&original_name='.$original_name.'"><img style="border:0px solid black" src="'.GRAPHICSPATH.'openoffice.gif"></a>';
  			}break;
  			
  			default : {
  				$image = imagecreatefromgif(GRAPHICSPATH.'document.gif');
          $textbox = imagettfbbox(13, 0, dirname(FONTSET).'/arial.ttf', '.'.$type);
          $textwidth = $textbox[2] - $textbox[0] + 13;
          $blue = ImageColorAllocate ($image, 26, 87, 150);
          imagettftext($image, 13, 0, 22, 34, $blue, dirname(FONTSET).'/arial_bold.ttf', $type);
          $filename = TEMPPATH_REL.rand(0,100000).'.gif';
          imagegif($image, $filename);
  				echo '<a href="index.php?go=sendeDokument&dokument='.$dokument.'&original_name='.$original_name.'"><img style="border:0px solid black" src="'.$filename.'"></a>';
  			}
  		}
  		echo '</td><td valign="middle">  '.$original_name.'</td></tr></table>';
  	}
  	echo '</body></html>';
    return 1;
  }

und die Funktion sendeDokument() so:

function sendeDokument($dokument, $original_name) {
    $dateiname=basename($dokument);
    $dateinamensteil=explode('.',$dateiname);
    ob_end_clean();
    header("Content-type: image/".$dateinamensteil[1]);
    header("Content-Disposition: attachment; filename=".$original_name);
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    readfile($dokument);
    ob_flush();
    return 1;
  }

In der index.php müssen außerdem die beiden Anwendungsfälle sendeDokument und sendeDokument_mit_vorschau angepasst werden

$GUI->sendeDokument($GUI->formvars['dokument']);

durch

$GUI->sendeDokument($GUI->formvars['dokument'], $GUI->formvars['original_name']);

und

$GUI->sendeDokument_mit_vorschau($GUI->formvars['dokument']);

durch

$GUI->sendeDokument_mit_vorschau($GUI->formvars['dokument'], $GUI->formvars['original_name']);

Version 1.7.1

+ GetFeatureInfo-Abfrage

Fragt man einen WMS-Layer mit dem Info-Button ab, werden die Sachdaten des WMS über GetFeatureInfo geholt. Allerdings stimmte die Abfragekoordinate bisher nicht mit der in der Karte angeklickten Position überein. Dies lässt sich folgendermaßen beheben: In kvwmap.php muss nach der Zeile

$request .='&BBOX='.$bbox->minx.','.$bbox->miny.','.$bbox->maxx.','.$bbox->maxy;

diese Zeile hier eingefügt werden:

$request .='&width='.$this->user->rolle->nImageWidth.'&height='.$this->user->rolle->nImageHeight;

+ Geometrie mit Exklave in Nachweisformular

--Markus Hentschel 12:51, 20. Jul 2009 (CEST) Wenn man im Nachweisformular eine 1. Polygon gezeichnet hat und anschließend zum selben Dokument ein 2. Polygon zeichnen will, dann klickt man, um das Zeichnen zu unterbrechen, auf einen beliebigen anderen Button (z.B. Verschiebe-Button) und dann wieder auf den Polygon-hinzufügen-Button. Das funktioniert solange, wie man nicht zum Unterbrechen den Geometrie-hinzufügen- oder den Geometrie-entfernen-Button verwendet. Dann wird als 2. Polygon nur noch der rote Rand gezeichnet.

--Rahn 13:33, 20. Jul 2009 (CEST) Eigentlich reicht es, auf den Polygon-Hinzufügen-Button zu klicken. Dann wird das erste Polygon abgeschlossen und man kann mit dem Zeichnen eines zweiten Polygons beginnen.
--Markus Hentschel 15:02, 20. Jul 2009 (CEST) Ja, klar, aber es darf eben nicht sein, dass Fehler kommen, wenn man auf andere Buttons klickt, oder?
--Rahn 07:25, 21. Jul 2009 (CEST) Da hast Du Recht. Zum Beheben des Fehlers muss in SVG_Utilities.php in den beiden Funktionen subtr_polygon() und add_polygon() die Zeile
top.document.GUI.pathwkt.value = top.document.GUI.newpathwkt.value;

durch folgende Zeilen ausgetauscht werden:

if(top.document.GUI.newpathwkt.value != ""){
  top.document.GUI.pathwkt.value = top.document.GUI.newpathwkt.value;
}

+ fehlende Variable in map_english_windows-1252.php

--Markus Hentschel 16:05, 22. Jun 2009 (CEST) Es fehlt folgende Zeile:

$strChoose="Choose";

+ Erzeugen von neuen Datensätzen: Geometrie wird nicht gespeichert

Bei einem Layer, für den im Attributeditor noch nie die Attributtypen gespeichert wurden, wird beim Anlegen eines neuen Datensatzes die Geometrie nicht gespeichert. Das kann man entweder dadurch umgehen, indem man im Attributeditor für den entsprechenden Layer einmal auf 'Speichern' klickt, oder indem man in der Datei generic_layer_editor_2.php im Abschnitt

$columnname = $this->qlayerset[$i]['attributes']['name'][$j];
$tablename = $this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]];
$geomtype = $this->qlayerset[$i]['attributes']['geomtype'][$this->qlayerset[$i]['attributes']['name'][$j]];
$dimension = $this->qlayerset[$i]['attributes']['dimension'][$j];
$privileg = $this->qlayerset[$i]['attributes']['privileg'][$j];
$this->form_field_names .= $this->qlayerset[$i]['Layer_ID'].';'.$this->qlayerset[$i]['attributes']['real_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].'_oid'].';'.$this->qlayerset[$i]['attributes']['form_element_type'][$j].';'.$this->qlayerset[$i]['attributes']['nullable'][$j].'|';

die letzte Zeile durch folgende Zeile ersetzt:

$this->form_field_names .= $this->qlayerset[$i]['Layer_ID'].';'.$this->qlayerset[$i]['attributes']['real_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].'_oid'].';Geometrie;'.$this->qlayerset[$i]['attributes']['nullable'][$j].'|';

+ angleitem mit Mapserver 5

Wenn man den Mapserver in der Version 5.x verwendet, funktionieren die per angleitem gedrehten Styles nicht (z.B. bei Schraffurwinkeln). Um das zu beheben, müssen in kvwmap.php in der Funktion loadclasses() die Zeilen

if (MAPSERVERVERSION < 500 AND $dbStyle['angleitem']!='') {
  $style->set('angleitem',$dbStyle['angleitem']);
}

durch diese hier ersetzt werden:

if ($dbStyle['angleitem']!=''){
  if(MAPSERVERVERSION < 500){
    $style->set('angleitem',$dbStyle['angleitem']);
  }else{
    $style->setbinding(MS_STYLE_BINDING_ANGLE, $dbStyle['angleitem']);
  }
}


+ Zoom auf Linienlayer

Der Rollenlayer, der beim Zoom auf Linienobjekte erzeugt wird, hat ein falsches Symbol. Zum Beheben des Fehlers muss in kvwmap.php in der Funktion zoom_toLine() in der Zeile

$style['symbol'] = 4;

die 4 durch eine 9 ersetzt werden.


+ Ausgabe von historischen Grundbuchbezirken

Offenbar kommt es doch noch zu Ausgaben von historischen Grundbuchbezirken. Zum Beheben des Fehlers müssen in postgresql.php in der Funktion getGrundbuchbezirke() die Zeilen

$sql ="SELECT b.bezirk AS Schluessel,g.bezeichnung AS Name FROM alb_g_buchungen AS b,alb_v_grundbuchbezirke AS g";
$sql.=" WHERE b.bezirk=g.grundbuchbezschl AND b.flurstkennz = '".$FlurstKennz."'";

durch diese hier ersetzt werden:

$sql ="SELECT b.bezirk AS Schluessel,g.bezeichnung AS Name FROM alb_g_buchungen AS b,alb_v_grundbuchbezirke AS g, alb_grundbuecher AS gb";
$sql.=" WHERE b.bezirk=g.grundbuchbezschl AND b.flurstkennz = '".$FlurstKennz."'";
$sql.=" AND b.bezirk=gb.bezirk AND b.blatt=gb.blatt";
$sql.=" AND gb.aktualitaetsnr NOT LIKE 'hist'";

+ Nachweisrecherche nach Antragsnummer

Sucht man nach den Dokumenten eines Antrags, schlägt die Suche mit einer Fehlermeldung fehl. Um den Fehler zu beheben, müssen in nachweis.php in der Funktion getNachweise() die beiden Zeilen

$sql ="SELECT n.*,v.name AS vermst FROM n_nachweise AS n,n_nachweise2antraege AS n2a,n_vermstelle AS v, n2d.dokumentart_id AS andere_art, d.art AS andere_art_name";
$sql.=" FROM n_vermstelle AS v, n_nachweise AS n";

durch diese hier ersetzt werden:

$sql ="SELECT n.*,v.name AS vermst, n2d.dokumentart_id AS andere_art, d.art AS andere_art_name";
$sql.=" FROM n_nachweise2antraege AS n2a, n_vermstelle AS v, n_nachweise AS n";

+ WMS-Export von allen Layern

Wenn man beim WMS-Export alle Layer exportiert, so werden auch alle Layer in die Mapdatei geschrieben, allerdings fehlen bei den nicht aktiven Layern wichtige Daten. Um den Fehler zu beheben muss in kvwmap.php in der Funktion wmsExportSenden() vor der Zeile

$this->loadMap('DataBase');

diese Zeile eingefügt werden:

$this->class_load_level = 2;		# die Klassen von allen Layern laden

+ function imagerotate fehlerhaft

--Hschmidt 11:56, 23. Apr 2009 (CEST)
Die function imagerotate in "allg_funktionen.php" ist fehlerhaft. Das betrifft die Anwender, die den Druck mit ImageMagick drehen wollen. Dazu die Funktion in "all_funktionen.php durch die unter Ver. 1.7.0 schon angegebene ersetzen siehe unten.


+ labelangleitem mit Mapserver 5

Wenn man den Mapserver in der Version 5.x verwendet, funktionieren die per labelangleitem gedrehten Labels nicht. D.h. sie werden nicht gedreht. Um das zu beheben, muss in kvwmap.php in der Funktion loadclasses() die Zeile

$klasse->label->set('angle', $layerset['labelangleitem']);

durch diese hier

$klasse->label->setbinding(MS_LABEL_BINDING_ANGLE, $layerset['labelangleitem']);

ersetzt werden.

+ Verschieben des Kartenausschnitts im Geometrie-Editor

Wenn man im Internet-Explorer versucht den Kartenausschnitt im Geometrie-Editor der Fachschalen zu verschieben, kommt eine Fehlermeldung. Um den Fehler zu beheben, muss in SVG_Utilities.php in der Funktion recentre() die Zeile

if(measurefunctions == true)

vor der Zeile

save_measure_path();

eingefügt werden.

+ Speichern eines Datensatzes mit einem SubFormEmbeddedPK-Attribut

Wenn man versucht einen Datensatz im GLE zu speichern, der ein SubFormEmbeddedPK-Attribut besitzt, erscheint eine Fehlermeldung. Um den Fehler zu beheben, muss in kvwmap.php in der Funktion sachdaten_speichern() die Zeile

if($type != 'SubFormPK' AND $type != 'SubFormFK'){

durch diese hier ersetzt werden:

if($type != 'SubFormPK' AND $type != 'SubFormFK' AND $type != 'SubFormEmbeddedPK'){


+ Auswahlfeld mit Constraint

--Markus Hentschel 08:14, 16. Apr 2009 (CEST) Ein Attribut einer Datenbanktabelle hat ein Constraint. Das wird im GLE auch ausgewertet, so dass die definierten Werte als Auswahl auftauchen. allerdings wird der ausgewählte Wert nicht gespeichert, das Feld bleibt leer.

--Rahn 09:37, 4. Mai 2009 (CEST) Zum Beheben des Fehlers muss in generic_layer_editor_2.php folgende Zeile
echo '<select title="'.$this->qlayerset[$i]['attributes']['alias'][$j].'"  style="font-size: '.$this->user->rolle->fontsize_gle.'px" name="'.$this->qlayerset[$i]['Layer_ID'].';'.$this->qlayerset[$i]['attributes']['real_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].'_oid'].';'.$this->qlayerset[$i]['attributes']['form_element_type'][$j].'">';

durch diese hier ersetzt werden:

echo '<select title="'.$this->qlayerset[$i]['attributes']['alias'][$j].'"  style="font-size: '.$this->user->rolle->fontsize_gle.'px" name="'.$this->qlayerset[$i]['Layer_ID'].';'.$this->qlayerset[$i]['attributes']['real_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].'_oid'].';'.$this->qlayerset[$i]['attributes']['form_element_type'][$j].';'.$this->qlayerset[$i]['attributes']['nullable'][$j].'">';

+ Anteilseigentum im ALB-Auszug 35

Das Anteilseigentum wird im Auszug 35 fälschlicherweise doppelt ausgegeben. Damit es richtig erscheint, muss in alb.php die Zeile 730

$pdf->addText($col1,$row-=24,$fontSize,$flst->Grundbuecher[$g]['zusatz_eigentuemer']);

gelöscht werden.


+ SubformembeddedPK bei mehreren Datensätzen

--Markus Hentschel 13:34, 7. Apr 2009 (CEST) Werden in der Layersuche mehrere Datensätze eines Layers mit einem "SubformembeddedPK"-Attribut aufgelistet, erscheint das "Embeddede" immer ganz oben im ersten gefundenen Datensatz.

--Rahn 15:42, 7. Apr 2009 (CEST) Zum Beheben des Fehlers müssen in der Datei embedded_subformPK.php alle Vorkommen von
$this->qlayerset[$i]['Layer_ID'].'_'.$k

durch

$this->qlayerset[$i]['Layer_ID'].$this->formvars['count'].'_'.$k

ersetzt werden (3 mal). Außerdem muss in generic_layer_editor_2.php vor die Zeile

echo $data;

diese Zeile eingefügt werden:

$data .= '&count='.$k;

+ Rasterlayer immer auswählbar

--Markus Hentschel 16:56, 6. Apr 2009 (CEST) Rasterlayer sind über den gesamten Maßstabsbereich auswählbar, obwohl sie auf einen bestimmten Maßstabsbereich eingegrenzt sind.

--Rahn 09:14, 7. Apr 2009 (CEST) Um den Fehler zu beheben, muss in kvwmap.php in der Funktion loadmap() die Zeile
if($this->class_load_level == 2 OR $layerset[$i]['requires'] != '' OR ($this->class_load_level == 1 AND $layerset[$i]['aktivStatus'] != 0)){

vor die Zeile

$layer->setProjection('+init=epsg:'.$layerset[$i]['epsg_code']); # recommended

verschoben werden.

+ "requires"-Layer werden nicht angezeigt

Layer, die über das "requires"-Feld an andere Layer gebunden sind, werden nicht angezeigt. Um den Fehler zu beheben muss in kvwmap.php in der Funktion loadmap() die Zeile

if($this->class_load_level == 2 OR ($this->class_load_level == 1 AND $layerset[$i]['status'] != 0)){

durch diese hier ersetzt werden:

if($this->class_load_level == 2 OR $layerset[$i]['requires'] != '' OR ($this->class_load_level == 1 AND $layerset[$i]['aktivStatus'] != 0)){

und außerdem in der Funktion read_layer() die Zeile

if($withClasses == 2 OR ($withClasses == 1 AND $rs['aktivStatus'] != '0')){

durch diese hier

if($withClasses == 2 OR $rs['requires'] != '' OR ($withClasses == 1 AND $rs['aktivStatus'] != '0')){

+ Fachschale Bodenrichtwerte

In der Fachschale Bodenrichtwerte haben sich ein paar Fehler eingeschlichen. Um die Fehler zu beheben, muss in kvwmap.php in der Funktion bodenRichtWertErfassung() die Zeile

$this->verfahren = $bodenrichtwertzone->getVerfahren();

gelöscht werden.

Außerdem muss in der Datei SVG_polygon_and_point.php nach der Zeile

<input name="result" type="hidden" value="">

diese Zeile eingefügt werden:

<input name="area" type="hidden" value="">

+ Fehlermeldung "Call to a member function setMetaData() on a non-object"

Es kann sein, dass bei einigen obige Fehlermeldung auftritt. Zum Beheben des Fehlers muss in kvwmap.php in den Funktionen read_layer() und read_RollenLayer() jeweils ein DISTINCT eingefügt werden. Also so:

SELECT DISTINCT ...

Version 1.7.0

+ Drehung der Karte beim Drucken auch ohne PHP neu zu kompilieren

Dies ist zwar kein richtiger kvwmap-Bug aber passt hier wohl trotzdem am besten rein. Für die Drehung der Karte beim Drucken war es bisher immer erforderlich, dass das PHP mit einer bestimmten GD-Bibliothek kompiliert sein musste. Eine andere Möglichkeit besteht darin, die Drehung des Kartenbildes mit ImageMagick zu machen. Dazu muss man ImageMagick installiert haben (hat man ja wahrscheinlich schon für die Druckvorschau) und folgenden Code in allg_funktionen.php einfügen:

if(!function_exists('imagerotate')){
	function imagerotate($source_image, $angle, $bgd_color){
		$angle = 360-$angle; // GD rotates CCW, imagick rotates CW
    $file1 = IMAGEPATH.'imagick_' . rand( 10000,99999 ) . '.png';
    $file2 = IMAGEPATH.'imagick_' . rand( 10000,99999 ) . '.png';
    if(@imagepng($source_image, $file1)){
    	exec('convert -rotate ' . $angle . ' ' . $file1 . ' ' . $file2 );
      if(file_exists($file2)){
        $new_image = imagecreatefrompng($file2);
        unlink($file1);
        unlink($file2);
        return $new_image;
      }
      else{
      	echo 'Bildrotation mit ImageMagick fehlgeschlagen.';
      	return $source_image;
      }
    }
    else{
    	echo 'Kann temporäre Bilddateien nicht anlegen.';
    	return $source_image;
    }
	}
 }
 

+ Doppeltes Suchergebnis nach Klick auf Kartenausschnitt

Wenn man in der Sachdatenanzeige auf "Kartenausschnitt" klickt um auf das Objekt zu zoomen, wurden bisher oft 2 temporäre Rollenlayer angelegt. Das hat folgenden Grund: Obwohl man nur einmal auf den Link klickt, wird die URL des Links zweimal geladen, d.h. zweimal beim Server abgefragt. Das passiert im übrigen auch nicht nur bei diesem Link für den Kartenausschnitt, sondern bei allen Links in kvwmap, die eine URL aufrufen. Nur ist der Link für den Kartenausschnitt der einzige bei dem man es merkt, weil durch Aufruf dieser URL eben ein Rollenlayer angelegt wird. Und den sieht man dann in der Legende. Bei allen anderen Links bekommt man vom doppelten Aufruf gar nichts mit. Die Ursache für die doppelten Aufrufe scheint in einer Zeile in der gui.php zu liegen. Es ist die Zeile

<META http-equiv=Content-Type content="text/html; charset=<?php echo $this->user->rolle->charset; ?>">

Vor dieser Zeile steht noch etwas Javascript und das ist offenbar die Fehlerursache. Wenn man die Zeile vor das Javascript, also in die zweite Zeile der Datei verschiebt, tritt der Fehler nicht mehr auf.

+ Datensatz erzeugen nicht erlaubt

--Markus Hentschel 15:22, 11. Mär 2009 (CET) Wenn das "...Erstellen von neuen Datensätzen für diesen Layer in dieser Stelle nicht erlaubt..." ist, dann sollte der "neu"-Link im GLE nicht erscheinen.

+ Drucken von kleinen Maßstäben

Durch die Konstante MINSCALE kommt es beim Drucken mit sehr kleinen Maßstäben dazu, dass der Kartenausschnitt verfälscht wird. Um den Fehler zu beheben in der Datei kvwmap.php in der Funktion drawMap() die Zeile

if(MINSCALE != '' AND $this->map->scale < MINSCALE){

durch diese hier ersetzen:

if(MINSCALE != '' AND $this->map_factor == '' AND $this->map->scale < MINSCALE){

+ clientIpIsValide

--Markus Hentschel 15:58, 5. Feb 2009 (CET) In der Funktion clientIpIsValide muss es statt "$GUI->debug->write..." "$this->debug->write..." heißen.

+ Flächen mit weniger als drei Punkten

--Markus Hentschel 14:52, 5. Feb 2009 (CET) Beim Eckpunkte löschen müssen mindestens drei Punkte der Fläche übrigbleiben. Beim Versuch, dann noch einen Punkt zu löschen, muss eine Fehlermeldung kommen. Analog für Linienzüge.

+ Attributabhängige Auswahllisten

--Rahn 10:38, 29. Jan 2009 (CET) Damit die attributabhängigen Auswahllisten auch Zeichenketten unterstützen, muss folgendes in kvwmap.php angepasst werden:

In der Funktion add_attribute_values() muss die Zeile

$attributes['dependent_options'][$i][$k] = substr($options, 0, $req_start).$query_result[$k][$req]; # requires-Tag aus SQL entfernen und ein Array erzeugen, welches die korrekten SQLs jedem Datensatz zuordnet

durch diese hier ersetzt werden:

$attributes['dependent_options'][$i][$k] = substr($options, 0, $req_start)."'".$query_result[$k][$req]."'"; # requires-Tag aus SQL entfernen und ein Array erzeugen, welches die korrekten SQLs jedem Datensatz zuordnet

und die Zeile

$attributes['options'][$i] = substr($attributes['options'][$i], 0, $req_start).$attributes[$req]['enum_value'][0]; # requires-Tag aus SQL entfernen und den ersten Wert als Startwert nehmen

muss so lauten:

$attributes['options'][$i] = substr($attributes['options'][$i], 0, $req_start)."'".$attributes[$req]['enum_value'][0]."'"; # requires-Tag aus SQL entfernen und den ersten Wert als Startwert nehmen

In der Funktion get_select_list() muss die Zeile

$sql = substr($attributes['options'][0], 0, $req_start).$this->formvars['value']; # requires-Tag aus SQL entfernen und um den übergebenen Wert erweitern

durch diese hier ersetzt werden:

$sql = substr($attributes['options'][0], 0, $req_start)."'".$this->formvars['value']."'"; # requires-Tag aus SQL entfernen und um den übergebenen Wert erweitern

+ Historisch gewordene Grundbücher

--Andreas Thurm 12:57, 28. Jan 2009 (CET)Historisch gewordene Grundbücher werden bei der Suche nach Grundbüchern und bei der Flurstücksanzeige nicht als solche erkannt. Das führt dazu, dass bei der Flurstücksanzeige mehrere Bestände (die aktuellen und die ehmaligen Eigentümer) aufgelistet werden. Bei der Grundbuchblattsuche wird ein historisch gewordenes Grundbuch genau wie ein aktuelles behandelt. Ich kann nicht erkennen, das es historisch geworden ist. In der Tabelle alb_grundbuecher haben die betreffenden Grundbücher in der Spalte aktualitaetsnr den Eintrag 'hist'. Es wurde also beim Einlesen der ALB-Fortführung erkannt, dass das Grundbuch historisch geworden ist. Diese Info müsste dann auch bei der Grundbuchblatt- und Flurstücksanzeige ausgewertet werden.


+ Kartenausschnitt bei epsg != 2398

--Markus Hentschel 16:10, 19. Jan 2009 (CET) Wenn ich als Kartenprojektion einen anderen EPSG als den ALK-originären 2398 ausgewählt habe, dann wird nach einer Suche nicht an die richtige Stelle gezoomt, wenn ich auf Kartenausschnitt klicke.

+ Nachweissuche Stammnummer

--Markus Hentschel 08:31, 19. Jan 2009 (CET) Damit die Nachweissuche auch mit 9-stelligen Stammnummern funktioniert, muss das Attribut "suchstammnr" in der Tabelle "rolle_nachweise" auf varchar(9) erweitert werden.

+ Koordinatenzoom

--Eulenberger 13:47, 16. Jan 2009 (CET) Wenn man den "Koordinatenzoom" Button gedrückt hat erscheint eine Eingabemöglichkeit für Koordinaten, dort gibt es einen Button "Abbrechen", wenn der betätigt wird entsteht ein Laufzeitfehler in JScript mit der Meldung: Das Objekt unterstützt diese Eigenschaft oder Methode nicht. line: 919, column: 3. Die Meldung kann zwar mit OK bestätigt werden kommt dann aber immer wieder, da hilft nur "gewaltsames" schließen vom Browser.

--Markus Hentschel 08:35, 19. Jan 2009 (CET) Haben Sie wirklich die Version 1.7.0? Eigentlich sollte der Fehler behoben sein, siehe 1.6.8: Laufzeitfehlermeldung bei Koordinatenzoom

--Eulenberger 09:05, 26. Jan 2009 (CET) Haben die Version 1.6.9 mit ein paar Änderungen in Richtung 1.7.0, die Funktion war noch nicht geändert, jetzt gehts es. Danke

+ Karteninfo

--Markus Hentschel 08:33, 15. Jan 2009 (CET) Die Angabe des verwendeten Koordinatensystem ändert sich bei "Karteninfo" nicht, wenn man ein anderes Bezugssystem als GK 3° S42/83 verwendet.

+ Operator "befindet sich in"

--Markus Hentschel 14:18, 14. Jan 2009 (CET) Bei der Layersuche mittels "befindet sich in" wird folgendes SQL als Fehler angemeckert:

SELECT * FROM (SELECT bplan.oid AS bplan_oid, plan_id, id, aufstellende_gemeinde, gemeindenr_alt, gemeindename,
gemeindenr_neu, art, plan_nr, bezeichnung, zusatz, legende, code_stand, datum_stand, dat_stellungn_toeb,
dat_beteiligung4_1, dat_beteiligung4_2, dat_beteiligung4a_3, dat_plananzeige, dat_stellungn_ro,
dat_antrag_genehmigt, dat_bescheid, bescheid, bemerkung_extern, bemerkung_intern, flaeche_planangabe_ha,
flaeche_alk_ha, themennr, rok_nr, rok_relevant, letzte_akt, datenherr, erf_grundl, art_baulnutzung, anzahl,
anzahldoc, the_geom FROM bplan WHERE 1=1) as query WHERE 1=1 ('barth, stadt','pruchten') AND
(the_geom && Transform(geomfromtext('POLYGON((4517000 5982000, 4587000 5982000, 4587000 6041000,
4517000 6041000, 4517000 5982000))', 2398), 2398) OR the_geom IS NULL) AND (1 = 1 AND code_stand = '0'
OR code_stand = '1') LIMIT 20

Vor der Klammer mit den Suchbegriffen fehlt

AND lower(aufstellende_gemeinde) in

+ Geometrie mit nur zwei Punkten

--Markus Hentschel 13:52, 13. Jan 2009 (CET) Fehlerhafterweise lehnt kvwmap eine Fläche mit nur zwei Punkten nicht ab.

+ Layer löschen

--Markus Hentschel 08:12, 22. Dez 2008 (CET) Wenn man einen Layer löscht, werden die Einträge in den Tabellen layer_attributes, layer_attributes2stelle und u_rolle2used_layer nicht mit gelöscht.

+ Geometrie hinzufügen im GLE

--Markus Hentschel 09:48, 19. Dez 2008 (CET) Der Button "Geometrie hinzufügen" ist schon vorausgewählt, wenn ich eine existierende Geometrie bearbeiten will. Wenn ich dann in die Karte klicke, wird die Geometrie vom letzten vorhandenen Punkt aus weitergezeichnet, was bestimmt so nicht sein soll.

+ Grundbuchblattsuche | 5-stellige Grundbuchbezirksnummer

--Hschmidt 09:52, 18. Dez 2008 (CET)
Habe hier in der Datenbank als "Altlast des Liegenschaftskatasters" kurioserweise drei Grundbuchblätter, die in einem GB-Bezirk in Schleswig-Holstein liegen und einen 5-stelligen Schlüssel haben.
Beim Versuch das Blatt aufzurufen über die Grundbuchblattsuche kommt die Fehlermeldung "Angaben fehlerhaft: Die Bezirksnummer ist keine 6 Zeichen lang."

--Rahn 10:46, 18. Dez 2008 (CET) Damit der Test auch mit 5-stelligen Nummern funktioniert, muss man in kataster.php in der Funktion grundbuchblattSuchParameterPruefen() die Zeile
if (strlen($this->Bezirk)!=6) {

durch diese hier ersetzen:

if (strlen($this->Bezirk) < 5) {
--Markus Hentschel 09:55, 19. Dez 2008 (CET) Die Frage ist ja vielleicht, ob diese Fehlermeldung nicht vielleicht doch Sinn macht, um eben genau solche "Altlasten" aufzudecken und zu bereinigen.

+ Text mit Hochkomma im GLE

--Markus Hentschel 14:12, 17. Dez 2008 (CET)
Es ist nicht möglich, Texte, die Hochkommata enthalten, im GLE zu speichern.

+ CSV-Export und Kartenausschnitt

--Markus Hentschel 08:45, 17. Dez 2008 (CET)

  • Der CSV-Export von vielen Flurstücken aus der Sachsdatenanzeige ALB heraus geht im Firefox 3 nicht. Meldung im Downloadmanager: "Download wurde durch ihre Sicherheitzonen-Regeln blockiert". Auch nachdem ich den IE7 installiert habe und die Internetoptionen wie empfohlen geändert habe, kommt dieselbe Meldung.
  • Der Zoom auf viele markierte Flurstücke aus der Sachsdatenanzeige ALB heraus geht im Internet-Explorer 6 nicht. Meldung in der Statuszeile: "Ungültige Syntax". Im IE7 zeigt er die URL und dort ist zu sehen, dass der Aufruf nach dem 2046. Zeichen abgeschnitten wird.

--Rahn 11:31, 17. Dez 2008 (CET)

Mit Austausch dieser Datei in /snippets dürten beide Probleme behoben sein. Vorher aber noch in Flurstuecke_custom.php umbenennen.
--Rahn 14:05, 18. Dez 2008 (CET) Datei wurde nochmal geändert. Wer sie schon runtergeladen hatte, bitte nochmal runterladen.

+ Einige Fehler und Ungereimtheiten im ALB-Druck (30/35)

--Hschmidt 12:07, 4. Dez 2008 (CET)
Klassifizierung
Es kommt teilweise zu Ausgabe von Zeilen wie:

Klassifizierung            33
                 12206 m2  33-340 KREISSTRAßE
                           Bodsch K       17            EMZ  0

Habe mir erstmal damit geholfen die Einträge in der alb.php zu entfernen bzw. auskommentiert. Dieses sollte aber abgefangen werden, dass "Bodsch" (Bodenschätzung?) und "EMZ 0" (?) nicht ausgegeben werden, wenn keine Werte vorhanden sind.

Verfahren
Wenn zu einer ausführenden Stelle kein Verfahren eingetragen ist, z.B. wie hier zu den Wasser- und Bodenverbänden, sollte die Ausgabe der Zeile:

Verfahren                   ( )

unterdrückt werden.

Bestand
Bei der Auflistung sollten die Eigentümer aufgelistet werden wie: 1.1, 1.2 ... und nicht wie jetzt 1.01, 1.02 ... Das Geburtsdatum sollte rechts stehen und nicht unter dem Namen. Die Ausgabe überflüssiger Komma nach dem Namen wie z.B.:

Schmidt, Heinz,,, 

sollte unterdrückt werden.

Entstehung
In der Zeile sollte wenn keine Enstehung eingetragen ist statt:

Entstehung     /    -
Entstehung     2

ausgegeben werden wie im "Original ALB" das soll wohl heissen "vor Kolido" wie mir die Katasterleute gesagt haben :-)

Damit genug gemeckert ;-)

--Markus Hentschel 12:03, 19. Dez 2008 (CET) Das wird von meinen ALB-Fachleuten bestätigt. Zusätzlich haben sie noch zwei Fehler gefunden:
  • Bei sehr vielen Baulasten werden weitere Zeilen mit Baulasten "verschluckt".
  • Wenn gleichzeitig unverschlüsselte und verschlüsselte Lagebezeichnungen eingetragen sind, stehen nur die verschlüsselten da. Zumindest bei uns ist es im primären ALB so, dass in solchen Fällen alle Lagebezeichnungen da stehen.
--Karsten Daedelow 9:56, 09.01.09(dae)

Hier noch ein kleinerer Fehler in den ALB-Auszügen: Bei Eigentümerangaben kann es zu sehr langen Zeilen kommen ( z.B. Zeilen-Nr. 2 "Zusätze" werden dverse GB-Nrn aufgeführt). Diese sollten bei Zeilenende umgebrochen werden.

+ Liniengeometrie erzeugen

Versucht man im GLE in einem Linienlayer eine neue Geometrie zu erzeugen, erhält man bisher eine Fehlermeldung. Um den Fehler zu beheben, muss in new_layer_data.php folgende Zeile unten angefügt werden:

<input type="hidden" name="geomtype" value="<? echo $this->geomtype; ?>">

dann müssen in kvwmap.php in der Funktion neuer_Layer_Datensatz_speichern() die folgenden Zeilen

 if($this->formvars['newpathwkt'] != ''){
   $sql .= ", Transform(geomfromtext('".$this->formvars['newpathwkt']."', ".$client_epsg."), ".$layer_epsg.")";
 }
 elseif($this->formvars['newpath'] != ''){
   $spatial_pro = new spatial_processor($this->user->rolle, $this->database, $this->pgdatabase);
   $this->formvars['newpathwkt'] = $spatial_pro->composeMultipolygonWKTStringFromSVGPath($this->formvars['newpath']);
   $sql .= ", Transform(geomfromtext('".$this->formvars['newpathwkt']."', ".$client_epsg."), ".$layer_epsg.")";
 }
 elseif($this->formvars['loc_x'] != ''){
 

durch diese hier ersetzt werden:

 if($this->formvars['newpathwkt'] != ''){			# wenn WKT Geometrie vorhanden, kann diese direkt verwendet werden
   $sql .= ", Transform(geomfromtext('".$this->formvars['newpathwkt']."', ".$client_epsg."), ".$layer_epsg.")";
 }
 elseif($this->formvars['geomtype'] == 'POLYGON' OR $this->formvars['geomtype'] == 'MULTIPOLYGON' OR $this->formvars['geomtype'] == 'GEOMETRY'){		# wenn nicht, muss abhängig vom Geometrietyp, die WKT-Geometrie aus dem SVG erzeugt werden
   $spatial_pro = new spatial_processor($this->user->rolle, $this->database, $this->pgdatabase);
   $this->formvars['newpathwkt'] = $spatial_pro->composeMultipolygonWKTStringFromSVGPath($this->formvars['newpath']);
   $sql .= ", Transform(geomfromtext('".$this->formvars['newpathwkt']."', ".$client_epsg."), ".$layer_epsg.")";
 }
 elseif($this->formvars['geomtype'] == 'MULTILINESTRING'){
   $spatial_pro = new spatial_processor($this->user->rolle, $this->database, $this->pgdatabase);
   $this->formvars['newpathwkt'] = $spatial_pro->composeMultilineWKTStringFromSVGPath($this->formvars['newpath']);
   $sql .= ", Transform(geomfromtext('".$this->formvars['newpathwkt']."', ".$client_epsg."), ".$layer_epsg.")";
 }
 elseif($this->formvars['geomtype'] == 'POINT'){
 

und in der Funktion neuer_Layer_Datensatz() nach der Zeile

$geomtype = $this->qlayerset[0]['attributes']['geomtype']['the_geom'];

diese Zeile eingefügt werden:

$this->geomtype = $geomtype;

+ Layersuche

In der Layersuche hat sich noch ein Fehler eingeschlichen, sodass die Operatoren > und < nicht funktionieren. Um den Fehler zu beheben, müssen in kvwmap.php in der Funktion GenerischeSuche_Suchen() folgende Zeilen

 if($this->formvars['value_'.$layerset[0]['attributes']['name'][$i]] != '' OR $this->formvars['operator_'.$layerset[0]['attributes']['name'][$i]] == 'IS NULL' OR $this->formvars['operator_'.$layerset[0]['attributes']['name'][$i]] == 'IS NOT NULL'){
   $sql_where .= ' AND LOWER(query.'.$layerset[0]['attributes']['name'][$i].') '.$this->formvars['operator_'.$layerset[0]['attributes']['name'][$i]].' ';
   if($this->formvars['operator_'.$layerset[0]['attributes']['name'][$i]] != 'IN' AND $this->formvars['operator_'.$layerset[0]['attributes']['name'][$i]] != 'IS NULL' AND $this->formvars['operator_'.$layerset[0]['attributes']['name'][$i]] != 'IS NOT NULL'){
     $sql_where.='LOWER(\''.$this->formvars['value_'.$layerset[0]['attributes']['name'][$i]].'\')';
   }
   else{
     if($this->formvars['operator_'.$layerset[0]['attributes']['name'][$i]] == 'IN')
       $sql_where .= '('.strtolower($this->formvars['value_'.$layerset[0]['attributes']['name'][$i]]).')';
   }
 }
 

durch diese hier ersetzt werden:

 if($this->formvars['value_'.$layerset[0]['attributes']['name'][$i]] != '' OR $this->formvars['operator_'.$layerset[0]['attributes']['name'][$i]] == 'IS NULL' OR $this->formvars['operator_'.$layerset[0]['attributes']['name'][$i]] == 'IS NOT NULL'){
   if($this->formvars['operator_'.$layerset[0]['attributes']['name'][$i]] == 'LIKE' OR $this->formvars['operator_'.$layerset[0]['attributes']['name'][$i]] == 'NOT LIKE'){
     $sql_where .= ' AND LOWER(query.'.$layerset[0]['attributes']['name'][$i].') '.$this->formvars['operator_'.$layerset[0]['attributes']['name'][$i]].' ';
     $sql_where.='LOWER(\''.$this->formvars['value_'.$layerset[0]['attributes']['name'][$i]].'\')';
   }
   else{
     if($this->formvars['operator_'.$layerset[0]['attributes']['name'][$i]] == 'IN'){
       $sql_where .= '('.strtolower($this->formvars['value_'.$layerset[0]['attributes']['name'][$i]]).')';
     }
     else{
       $sql_where .= ' AND query.'.$layerset[0]['attributes']['name'][$i].' '.$this->formvars['operator_'.$layerset[0]['attributes']['name'][$i]].' ';
       $sql_where.='\''.$this->formvars['value_'.$layerset[0]['attributes']['name'][$i]].'\'';
     }
   }
 }
 


+ Sachdatenabfrage auf geänderte Geometrie

--Markus Hentschel 15:08, 20. Nov 2008 (CET) Wenn ich in "data" the_geom noch irgendwie bearbeite (z.B. so: "... translate(the_geom,-126.26,-45.45) as the_geom..."), dann funktioniert die Sachdatenabfrage in der Karte nicht am angezeigten Ort des Objekts. Am originalen Ort (also da, wo the_geom tatsächlich ist) kriege ich dagegen das Objekt zu fassen.

--Rahn 15:42, 21. Nov 2008 (CET) Das liegt daran, dass bei der Sachdatenabfrage das Pfad-Statement verwendet wird.
--Markus Hentschel 08:07, 24. Nov 2008 (CET) Du hast Recht, wenn ich the_geom auch im pfad modifiziere, klappts wieder mit der Sachdatenabfrage. Wenn ich aber ein Objekt über die Layersuche auswähle, habe ich das Problem wieder.
--Markus Hentschel 12:09, 19. Dez 2008 (CET) Das Problem beruhte auf suboptimalen Parametern in proj4 und kann deswegen auch anders gelöst werden.

+ Flurstücksdatenanzeige ohne Klassifizierung

--Hschmidt 14:48, 20. Nov 2008 (CET)
Die Ausgabe der Flurstücksdaten über die gebräuchlichen Snippets gibt keine Angaben über die "Klassifizierung" aus. Das pfad-statement des Flurstückslayers scheint i.O. und die Layerattribut-Rechteverwaltung listet die Klassifizierung auch auf! Die Daten werden jedoch über den ALB-Druck ausgegeben. Das gleiche ist bei der Version 1.6.9!

- Kein Drucken von WMS

--Markus Hentschel 09:43, 13. Nov 2008 (CET) Wenn externe WMS in die Stelle eingebunden werden, kommt bei der Druckvorschau oder bei go=Druckrahmen folgende Fehlermeldung (egal ob die WMS-Layer an oder aus sind):

Fatal error: [MapServer Error]: msAddImageSymbol(): Error opening image file /srv/www/var/data/MapFiles/Mischwald_Bild. in /srv/www/htdocs/kvwmap/class/kvwmap.php on line 3838

Workaround: In kvwmap.php den ganzen Abschnitt unterhalb von "Schritt 1)" ($extent=$this->map->extent;) bis oberhalb von "$this->drawMap();" auskommentieren.

+ Sachdatenanzeige und CSV-Export

Damit die Blätterfunktion der Sachdatenanzeige auch im Internet Explorer funktioniert, müssen in der Datei sachdatenanzeige.php in folgenden Zeilen

 #if($this->formvars['qLayer'.$this->qlayerset[$i]['Layer_ID']] == 1){
   echo '<input name="qLayer'.$this->qlayerset[$i]['Layer_ID'].'" type="hidden" value="1">';
   echo '<input name="offset_'.$this->qlayerset[$i]['Layer_ID'].'" type="hidden" value="'.$this->formvars['offset_'.$this->qlayerset[$i]['Layer_ID']].'">';
   echo '<input name="sql_'.$this->qlayerset[$i]['Layer_ID'].'" type="hidden" value="'.$this->qlayerset[$i]['sql'].'">';
 #}
 

die beiden # entfernt werden.

Damit danach auch noch der CSV-Export für alle Treffer funktioniert, muss in der gleichen Datei hinter

<input name="operator_'.$this->qlayerset[0]['attributes']['name'][$j].'" type="hidden" value="'.$this->formvars['operator_'.$this->qlayerset[0]['attributes']['name'][$j]].'">

diese Zeile eingefügt werden:

<input name="sql_'.$this->formvars['selected_layer_id'].'" type="hidden" value="'.$this->qlayerset[0]['sql'].'">

+ Printversion

Die neue Druckansicht für die Sachdatenanzeige funktioniert zwar, aber die dafür verwendete Datei printversion.php liegt falsch im Verzeichnis layouts. Das hat zur Folge, dass diese Datei in der Stellenwahl fälschlicherweise als GUI auswählbar ist. Um den Fehler zu beheben, einfach die Datei in den Ordner snippets verschieben und in kvwmap.php in der Funktion output() die Zeile

include (LAYOUTPATH.'printversion.php');

so anpassen:

include (LAYOUTPATH.'snippets/printversion.php');

+ Ausgabe von nicht editierbaren Auswahlfeldern im GLE

Auswahlfelder, die ihre Optionen aus einem SQL-Statement holen, erlauben es ja einen output anzuzeigen und einen value zu speichern. Damit auch bei nicht editierbaren Auswahlfeldern der output erscheint und nicht der value, muss in generic_layer_editor_2.php folgender Abschnitt

case 'Auswahlfeld' : {
   if($this->qlayerset[$i]['attributes']['real_type'][$this->qlayerset[$i]['attributes']['name'][$j]] == 'geometry' OR $this->qlayerset[$i]['attributes']['privileg'][$j] == '0' OR $lock[$k]){
     $auswahlfeld_value=$this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['name'][$j]];
     $auswahlfeld_value_laenge=strlen($auswahlfeld_value);
     echo '<input readonly style="background-color:#e8e3da;" size="'.$auswahlfeld_value_laenge.'" type="text" name="'.$this->qlayerset[$i]['Layer_ID'].';'.$this->qlayerset[$i]['attributes']['real_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].'_oid'].';'.$this->qlayerset[$i]['attributes']['form_element_type'][$j].'" value="'.$auswahlfeld_value.'">';
   }

durch diesen hier ersetzt werden:

case 'Auswahlfeld' : {
   if($this->qlayerset[$i]['attributes']['real_type'][$this->qlayerset[$i]['attributes']['name'][$j]] == 'geometry' OR $this->qlayerset[$i]['attributes']['privileg'][$j] == '0' OR $lock[$k]){
     if(is_array($this->qlayerset[$i]['attributes']['dependent_options'][$j])){		# mehrere Datensätze und ein abhängiges Auswahlfeld --> verschiedene Auswahlmöglichkeiten
       for($e = 0; $e < count($this->qlayerset[$i]['attributes']['enum_value'][$j][$k]); $e++){
         if($this->qlayerset[$i]['attributes']['enum_value'][$j][$k][$e] == $this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['name'][$j]]){
	   $auswahlfeld_output = $this->qlayerset[$i]['attributes']['enum_output'][$j][$k][$e];
	   $auswahlfeld_output_laenge=strlen($auswahlfeld_output);
	   break;
         }
       }
     }
     else{
       for($e = 0; $e < count($this->qlayerset[$i]['attributes']['enum_value'][$j]); $e++){
         if($this->qlayerset[$i]['attributes']['enum_value'][$j][$e] == $this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['name'][$j]]){
           $auswahlfeld_output = $this->qlayerset[$i]['attributes']['enum_output'][$j][$e];
	   $auswahlfeld_output_laenge=strlen($auswahlfeld_output);
	   break;
         }
       }
     }
     echo '<input readonly style="background-color:#e8e3da;" size="'.$auswahlfeld_output_laenge.'" type="text" name="'.$this->qlayerset[$i]['Layer_ID'].';'.$this->qlayerset[$i]['attributes']['real_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].';'.$this->qlayerset[$i]['shape'][$k][$this->qlayerset[$i]['attributes']['table_name'][$this->qlayerset[$i]['attributes']['name'][$j]].'_oid'].';'.$this->qlayerset[$i]['attributes']['form_element_type'][$j].'" value="'.$auswahlfeld_output.'">';
   }

+ Referenzkarte im Druck bei Nicht-Standard-SRS

--Markus Hentschel 12:27, 21. Okt 2008 (CEST)-- Wenn ich ein anderes als das für die Stelle als Standard definierte Koordinatensystem auswähle und anschließend die Karte drucke, bekomme ich kein oder ein falsch gelagertes Bild in der Referenzkarte - dort soll eine topographische Karte angezeigt werden, die als WMS eingebunden wird. Im entsprechenden Refmapfile steht in der connection nämlich die SRS drin und die verändert sich nicht, wenn der User das Koordinatensystem der Stelle wechselt.

--Rahn 15:58, 6. Apr 2009 (CEST) Um den Fehler zu beheben, müssen in kvwmap.php in der Funktion createReferenceMap() nach der Zeile
$refmap->setextent($minx,$miny,$maxx,$maxy);

folgende Zeilen hinzugefügt werden:

$projFROM = ms_newprojectionobj("init=epsg:".$this->user->rolle->epsg_code);
$projTO = ms_newprojectionobj("init=epsg:".EPSGCODE);
$refmap->extent->project($projFROM, $projTO);

+ ZoomToMaxLayerExtent

--Markus Hentschel 12:27, 21. Okt 2008 (CEST) Beim Klick in der Legende auf "volle Layerausdehnung" kann ich den maximalen Extent der Stelle verlassen, was so sicher nicht gewollt ist.

- wldge2sql Grundausstattung

--Markus Hentschel 12:29, 21. Okt 2008 (CEST) Das Lesen einer Grundausstattung erzeugt keinen Eintrag in der Tabelle alb_fortfuehrungen.

--SigridP 10:45, 23. Okt 2008 (CEST)Auch die abschließende Übersicht (Anzahl der eingelesenen Datensätze usw.)wird nicht erstellt.

+ Anpassungen in der fgs Version

config.default.php

Der Installationspath in der config.default.php, welche man dann später als config.php für kvwmap verwenden soll enthält einen Fehler in der Konstantendefinition für INSTALLPATH define('INSTALLPATH','/home/fgs/fgs'); ersetzen durch

define('INSTALLPATH','/home/fgs/fgs/');

Die Defaulteinstellung für die URL würde ich auf localhost setzen oder localhost:8080 Zur Freuder derjenigen, die erstmal local und mit 8080 anfangen.

define('URL','http://localhost:8080/');

Sonst gehen die AJAX Sachen nicht, Z.B. der GLE. Nächste Sache ist, der Defaultpfad für die Grafiken der sollte folgendermaßen aussehen:

define ('GRAPHICSPATH','graphics/');

layouts/sql_dumps/mysql_install_admin.sql

Die Version auf 170 setzen und in den folgenden Version auf die aktuelle.

SET @pg_dbname='kvwmapsp170';

In der Angabe für die Stelle muss der Name für das Wappen stz.png lauten nicht stz.gif.

INSERT INTO `stelle` ( `ID` , `Bezeichnung` , `start` , `stop` , `minxmax` , `minymax` , `maxxmax`,
`maxymax` , `Referenzkarte_ID` , `Authentifizierung` , `ALB_status` , `wappen` , `alb_raumbezug` ,
`alb_raumbezug_wert` )
VALUES ( @stelle_id, 'Administration', '0000-00-00', '0000-00-00', '4440000', '5920000',
'4560000', '6080000', '1', '1', '30', 'stz.png', , );



Ältere Versionen