wiki:PostNASMapbender3

Version 25 (modified by thekla.wirkus, 7 years ago) (diff)

--

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

Demo

Infoabfrage

Hierzu muss ein angepasstes Infotemplate in der Mapdatei verwendet werden:

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');
})();

Mapbender3

info-Verzeichnis mit den Auskunftsskripten

mapbender3/web/info

Konfigurations-Dateien

  • können in Mapbender3 unter mapbender3/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 Search Router

  • über das Element Search Router können in Mapbender Suchen generiert werden
  • die ALKIS Suchen nach Flurstück, Eigentümer und Adresse können so in Mapbender integriert werden
  1. Datenbank einbinden

Einbinden einer weiteren Datenbank in Mapbender3 siehe http://doc.mapbender3.org/en/book/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));}}}
    
  • View Adresssuche
    Drop view qry_mb3_adresse_suche;
    CREATE OR REPLACE VIEW qry_mb3_adresse_suche AS 
    
     SELECT foo.ogc_fid,
        foo.drehwinkel * 57.296::double precision AS drehwinkel,
        foo.hausnummer as hausnummer,
        foo.gemeinde,
        foo.gemeindename,
        foo.strasse,
        foo.strschl,
        foo.kreis,
        foo.wkb_geometry
            FROM (
    	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
    	     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
    
    	UNION
    
    	SELECT
    	p.ogc_fid,
    	    p.drehwinkel * 57.296::double precision AS drehwinkel,
    	   '' 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
    	   FROM ap_pto p
    	     JOIN alkis_beziehungen v ON p.gml_id = v.beziehung_von
    	     JOIN ax_lagebezeichnungohnehausnummer 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 = 'Strasse'::text AND v.beziehungsart::text = 'dientZurDarstellungVon'::text AND p.endet IS NULL AND l.endet IS NULL) foo;
    
  • 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;

         
  1. Konfiguration des SearchRouters?
  • Flurstückssuche - für die Flurstücke wurde die Konfiguration bereits umgesetzt
  • nur 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
        - gemeindename
        - 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: text
        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
    ###
    

Attachments