wiki:PostNASMapbender3
Last modified 3 weeks ago Last modified on 10/28/18 18:56:03

Der ALKIS WMS mit Auskunft kann ebenfalls in Mapbender integriert werden.


Infoabfrage

Hierzu muss ein angepasstes Infotemplate in der Mapdatei verwendet werden:

TEMPLATE './template/alkis_fs_mb3.html'

In der Funktion wird auf das Skript alkisausk.php verwiesen, das im gewohnten Verzeichnis /info im Webverzeichnis liegt.

Beispiel:

(function() {
	var selParcel = "[gml_id]";
	var link = "http://alkis.mapbender3.org/mapbender3/web/info/alkis/alkisausk.php?gkz=xxx&gmlid=" 
        + encodeURI(selParcel);
	window.open(link,'','left=0,top=20,width=600,height=800,resizable=yes,menubar=no,toolbar=no,
        location=no,status=no,scrollbar=yes');
})();

Mapbender

info-Verzeichnis mit den Auskunftsskripten

mapbender/web/info

Konfigurations-Dateien

  • können in Mapbender unter mapbender/app/config abgelegt werden

Verweis in der Datei alkis_conf_location.php über:

require_once(dirname(__FILE__)."/../../../app/config/alkis_www_conf.php");

Suche über den SQL-Search-Router

  • über das Element SearchRouter? können in Mapbender Suchen definiert werden
  • die ALKIS-Suchen nach Flurstück, Eigentümer und Adresse können so angeboten werden
  1. Datenbank einbinden

Einbinden der ALKIS Datenbank in Mapbender siehe https://doc.mapbender.org/en/customization/database.html

  1. SearchRouter? als Element in die Anwendung einbinden
  1. Views für die Suchen erzeugen
  • View Flurstückssuche
Drop view qry_mb3_ax_flurstueck_suche;
CREATE OR REPLACE VIEW public.qry_mb3_ax_flurstueck_suche AS 
 SELECT f.gml_id,
    ge.gemeinde,
    ge.gemeindename,
    f.gemarkungsnummer::text AS gemarkungsnummer,
    f.beginnt,
    f.endet,
    g.gemarkung,
    g.gemarkungsname,
    g.land,
    g.regierungsbezirk,
    g.kreis,
    f.flurnummer::text AS flurnummer,
    f.zaehler::text AS zaehler,
    f.nenner::text AS nenner,
    replace(f.flurstueckskennzeichen::text, '_'::text, ''::text) AS flurstueckskennzeichen,
    f.wkb_geometry AS the_geom_etrs
   FROM ax_flurstueck f
     LEFT JOIN pp_gemarkung g ON f.gemarkungsnummer::text = g.gemarkung::text
     LEFT JOIN pp_gemeinde ge ON g.kreis::text = ge.kreis::text AND g.gemeinde::text = ge.gemeinde::text
  WHERE f.endet IS NULL AND NOT (f.flurstueckskennzeichen IN ( SELECT ax_historischesflurstueck.flurstueckskennzeichen
           FROM ax_historischesflurstueck));

Sicht für Adresssuche

Drop view qry_mb3_adresse_suche;
CREATE OR REPLACE VIEW qry_mb3_adresse_suche AS 
	SELECT p.ogc_fid,
	    p.drehwinkel * 57.296::double precision AS drehwinkel,
	    l.hausnummer as hausnummer,
	    m.gemeinde::text AS gemeinde,
	    m.bezeichnung AS gemeindename,
	    k.bezeichnung AS strasse,
	    l.lage AS strschl,
	    m.kreis::text AS kreis,
	    p.wkb_geometry AS the_geom_etrs
	     FROM ap_pto p
	     JOIN alkis_beziehungen v ON p.gml_id = v.beziehung_von
	     JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu = l.gml_id
	     JOIN ax_lagebezeichnungkatalogeintrag k ON l.kreis::text = k.kreis::text AND l.gemeinde::text = k.gemeinde::text AND l.lage::text = k.lage::text
            JOIN ax_gemeinde m ON l.gemeinde::text = m.gemeinde::text AND l.kreis::text = m.kreis::text
            WHERE p.art::text = 'HNR'::text AND v.beziehungsart::text ='dientZurDarstellungVon'::text AND p.endet IS NULL AND l.endet IS NULL;

neue Tabelle für die Eigentümersuche

-- DROP VIEW public.qry_mb3_eigentuemer_suche_union;

CREATE OR REPLACE VIEW public.qry_mb3_eigentuemer_suche_union AS 
 SELECT foo.flurstueckskennzeichen,
    foo.flur,
    foo.fs_zaehler,
    foo.fs_nenner,
    foo.flaeche,
    foo.geom,
    foo.bezirkname,
    foo.gb_blatt,
    foo.blattart,
    foo.bvnr,
    foo.buchgsartwert,
    foo.buchgsart,
    foo.name_num,
    foo.nachname,
    foo.vorname
   FROM ( SELECT f.flurstueckskennzeichen,
            f.flurnummer AS flur,
            f.zaehler AS fs_zaehler,
            f.nenner AS fs_nenner,
            f.amtlicheflaeche AS flaeche,
            f.wkb_geometry AS geom,
            b.bezeichnung AS bezirkname,
            g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,
            g.blattart,
            s.laufendenummer AS bvnr,
            art.wert AS buchgsartwert,
            art.bezeichner AS buchgsart,
            n.laufendenummernachdin1421 AS name_num,
            p.nachnameoderfirma AS nachname,
            p.vorname
           FROM ax_person p
             JOIN alkis_beziehungen bpn ON bpn.beziehung_zu = p.gml_id
             JOIN ax_namensnummer n ON bpn.beziehung_von = n.gml_id
             JOIN alkis_beziehungen bng ON n.gml_id = bng.beziehung_von
             JOIN ax_buchungsblatt g ON bng.beziehung_zu = g.gml_id
             JOIN ax_buchungsblattbezirk b ON g.land::text = b.land::text AND g.bezirk::text = b.bezirk::text
             JOIN alkis_beziehungen bgs ON bgs.beziehung_zu = g.gml_id
             JOIN ax_buchungsstelle s ON s.gml_id = bgs.beziehung_von
             JOIN v_bs_buchungsart art ON s.buchungsart = art.wert
             JOIN alkis_beziehungen bf ON s.gml_id = bf.beziehung_zu
             JOIN ax_flurstueck f ON f.gml_id = bf.beziehung_von
          WHERE n.endet IS NULL AND g.endet IS NULL AND b.endet IS NULL AND s.endet IS NULL AND f.endet IS NULL
        UNION
         SELECT f.flurstueckskennzeichen,
            f.flurnummer AS flur,
            f.zaehler AS fs_zaehler,
            f.nenner AS fs_nenner,
            f.amtlicheflaeche AS flaeche,
            f.wkb_geometry AS geom,
            b.bezeichnung AS bezirkname,
            g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,
            g.blattart,
            s.laufendenummer AS bvnr,
            art.wert AS buchgsartwert,
            art.bezeichner AS buchgsart,
            n.laufendenummernachdin1421 AS name_num,
            p.nachnameoderfirma AS nachname,
            p.vorname
           FROM ax_person p
             JOIN alkis_beziehungen bpn ON bpn.beziehung_zu = p.gml_id
             JOIN ax_namensnummer n ON bpn.beziehung_von = n.gml_id
             JOIN alkis_beziehungen bng ON n.gml_id = bng.beziehung_von
             JOIN ax_buchungsblatt g ON bng.beziehung_zu = g.gml_id
             JOIN ax_buchungsblattbezirk b ON g.land::text = b.land::text AND g.bezirk::text = b.bezirk::text
             JOIN alkis_beziehungen bgs ON bgs.beziehung_zu = g.gml_id
             JOIN ax_buchungsstelle s ON s.gml_id = bgs.beziehung_von
             JOIN v_bs_buchungsart art ON s.buchungsart = art.wert
             JOIN alkis_beziehungen bg ON s.gml_id = bg.beziehung_von
             JOIN ax_buchungsstelle bs ON bs.gml_id = bg.beziehung_zu
             JOIN alkis_beziehungen bf ON bs.gml_id = bf.beziehung_zu
             JOIN ax_flurstueck f ON f.gml_id = bf.beziehung_von
          WHERE n.endet IS NULL AND g.endet IS NULL AND b.endet IS NULL AND s.endet IS NULL AND f.endet IS NULL) foo;

View Grundbuchsuche

-- DROP VIEW qry_mb3_grundbuch_suche;

CREATE OR REPLACE VIEW qry_mb3_grundbuch_suche AS 
 SELECT foo.buchungsart,
    foo.bezirkname,
    foo.bezirk,
    foo.gb_blatt,
    foo.blattart,
    foo.flurstueckskennzeichen,
    foo.geom,
    foo.endet
   FROM ( SELECT s.buchungsart,
            b.bezeichnung AS bezirkname,
            b.bezirk,
            g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,
            g.blattart,
            f.flurstueckskennzeichen,
            f.wkb_geometry AS geom,
            f.endet
           FROM ax_buchungsblatt g
             JOIN ax_buchungsblattbezirk b ON g.land::text = b.land::text AND g.bezirk::text = b.bezirk::text
             JOIN alkis_beziehungen bgs ON bgs.beziehung_zu = g.gml_id
             JOIN ax_buchungsstelle s ON s.gml_id = bgs.beziehung_von
             JOIN v_bs_buchungsart art ON s.buchungsart = art.wert
             JOIN alkis_beziehungen bf ON s.gml_id = bf.beziehung_zu
             JOIN ax_flurstueck f ON f.gml_id = bf.beziehung_von
          WHERE g.endet IS NULL AND b.endet IS NULL AND s.endet IS NULL AND f.endet IS NULL
        UNION
         SELECT s.buchungsart,
            b.bezeichnung AS bezirkname,
            b.bezirk,
            g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,
            g.blattart,
            f.flurstueckskennzeichen,
            f.wkb_geometry AS geom,
            f.endet
           FROM ax_buchungsblatt g
             JOIN ax_buchungsblattbezirk b ON g.land::text = b.land::text AND g.bezirk::text = b.bezirk::text
             JOIN alkis_beziehungen bgs ON bgs.beziehung_zu = g.gml_id
             JOIN ax_buchungsstelle s ON s.gml_id = bgs.beziehung_von
             JOIN v_bs_buchungsart art ON s.buchungsart = art.wert
             JOIN alkis_beziehungen bg ON s.gml_id = bg.beziehung_von
             JOIN ax_buchungsstelle bs ON bs.gml_id = bg.beziehung_zu
             JOIN alkis_beziehungen bf ON bs.gml_id = bf.beziehung_zu
             JOIN ax_flurstueck f ON f.gml_id = bf.beziehung_von
          WHERE g.endet IS NULL AND s.endet IS NULL AND b.endet IS NULL AND s.endet IS NULL AND f.endet IS NULL) foo;

         

4. Konfiguration des Search-Routers

Flurstückssuche

class: Mapbender\CoreBundle\Component\SQLSearchEngine
class_options:
  connection: alkis
  relation: qry_mb3_ax_flurstueck_suche
  attributes:
    - gml_id
    - gemarkungsnummer
    - gemarkungsname
    - flurnummer
    - zaehler
    - nenner
    - flurstueckskennzeichen
  geometry_attribute: the_geom_etrs
form:
  gemarkungsnummer:
    type: text
    options:
      required: false
    compare: exact
  flurnummer:
    type: text
    options:
      label: Flur
      required: false
      attr:
        data-autocomplete: 'on'
        data-autocomplete-distinct: 'on'
        data-autocomplete-using: gemarkungsname
  zaehler:
    type: text
    options:
      label: Zähler
      required: true
      attr:
        data-autocomplete: 'on'
        data-autocomplete-distinct: 'on'
        data-autocomplete-using: gemarkungsname
  nenner:
    type: text
    options:
      label: Nenner
      required: false
      attr:
        data-autocomplete: 'on'
        data-autocomplete-distinct: 'on'
        data-autocomplete-using: gemarkungsname
results:
  view: table
  headers:
    flurnummer: Flur
    zaehler: Zähler
    nenner: Nenner
    gemarkungsnummer: Gemarkung
  callback:
    event: click
    options:
      buffer: 50
				

Konfiguration Adressuche

class: Mapbender\CoreBundle\Component\SQLSearchEngine
class_options:
  connection: alkis
  relation: qry_mb3_adresse_suche
  attributes:
    - kreis
    - gemeindenummer
    - hausnummer
    - gemeindename
    - strasse
  geometry_attribute: the_geom_etrs
form:
  gemeindename:
    type: text
    options:
      required: false
  strasse:
    type: text
    options:
      label: Straße
      required: false
      attr:
        data-autocomplete: 'on'
        data-autocomplete-distinct: 'on'
        data-autocomplete-using: gemeindename
  hausnummer:
    type: text
    options:
      label: Hausnummer
      required: false
      attr:
        data-autocomplete: 'on'
        data-autocomplete-distinct: 'on'
        data-autocomplete-using: bezeichnung
results:
  view: table
  headers:
    strasse: Straße
    hausnummer: Hausnr.
    gemeindename: Ort
  callback:
    event: click
    options:
      buffer: 50

Gemeinde mit Auswahlbox

    gemeinde:
        type: choice
        options:
            empty_value: ...bitte Gemeinde auswählen
            choices:
                103: Osann-Monzel
                104: Test

Konfiguration Eigentümersuche

class: Mapbender\CoreBundle\Component\SQLSearchEngine
class_options:
  connection: alkis
  relation: qry_mb3_eigentuemer_suche_union
  attributes:
    - gb_blatt
    - buchgsart
    - nachname
    - vorname
    - bezirkname
    - fs_zaehler
    - fs_nenner
    - flur
    - flurstueckskennzeichen
  geometry_attribute: geom
form:
  nachname:
    type: text
    options:
      label: Nachname
      required: false
    compare: ilike
  vorname:
    type: text
    options:
      label: Vorname
      required: false
    compare: ilike
  gb_blatt:
    type: text
    options:
      label: 'Grundbuchblattnummer (GB-NR)'
      required: false
    compare: exact
  bezirkname:
    type: text
    options:
      label: Bezirk
      required: false
      attr:
        data-autocomplete: 'on'
        data-autocomplete-distinct: 'on'
        data-autocomplete-using: flur
  flur:
    type: text
    options:
      label: Flur
      required: false
      attr:
        data-autocomplete: 'on'
        data-autocomplete-distinct: 'on'
        data-autocomplete-using: flur
  fs_zaehler:
    type: text
    options:
      label: Zähler
      required: false
      attr:
        data-autocomplete: 'on'
        data-autocomplete-distinct: 'on'
        data-autocomplete-using: flur
  fs_nenner:
    type: text
    options:
      label: Nenner
      required: false
      attr:
        data-autocomplete: 'on'
        data-autocomplete-distinct: 'on'
        data-autocomplete-using: flur
results:
  view: table
  headers:
    nachname: Nachname
    vorname: Vorname
    flurstueckskennzeichen: Flstk.
    gb_blatt: GB-NR
    bezirkname: Bezirk
    flur: Flur
  callback:
    event: click
    options:
      buffer: 40
      minScale: null
      maxScale: null

Konfiguration Grundbuchsuche

 noch offen



Attachments