wiki:PostNASMapbender3

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

--

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

Demo

xxx (befindet sich im Aufbau)Flur

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 p.ogc_fid,
        p.drehwinkel * 57.296::double precision AS drehwinkel,
        l.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 = k.kreis AND l.gemeinde = k.gemeinde AND l.lage::text = k.lage::text
         JOIN ax_gemeinde m ON l.gemeinde = m.gemeinde AND l.kreis = m.kreis
      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;

         
  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
            - flurnummer
            - zaehler
            - nenner
            - flurstueckskennzeichen
        geometry_attribute: the_geom_etrs
    form:
        gemarkungsnummer:
            type: text
            options:
                required: false
            compare: exact
        flurnummer:
            type: text
            options:
                required: false
            compare: exact
        zaehler:
            type: text
            options:
                required: false
            compare: exact
        nenner:
            type: text
            options:
                required: false
            compare: exact
    results:
        view: table
        headers:
            flurstueckskennzeichen: Flurstückskennzeichen
        callback:
            event: click
            options:
                buffer: 40
                minScale: null
                maxScale: null
    				
    
  • Konfiguration Adressuche
    class: Mapbender\CoreBundle\Component\SQLSearchEngine
    class_options:
        connection: alkis
        relation: qry_mb3_adresse_suche
        attributes:
            - kreis
            - gemeinde
            - bezeichnung
            - hausnummer
        geometry_attribute: the_geom_etrs
    form:
        gemeinde:
            type: text
            options:
                required: false
            compare: exact
        bezeichnung:
            type: text
            options:
                required: false
                label: Straße
                attr:  # HTML attributes to inject
                    data-autocomplete: on  # this triggers autocomplete
                    data-autocomplete-distinct: on 
            compare: ilike
        hausnummer:
            type: text
            options:
                required: false
            compare: exact
    results:
        view: table
        headers:
            bezeichnung: Straße
            hausnummer: Hausnummer
        callback:
            event: click
            options:
                buffer: 40
                minScale: null
                maxScale: null
    

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: mb3_eigentuemer_suche_union
        attributes:
            - gb_blatt
            - buchgsart
            - nachname
            - bezirkname
            - fs_zaehler
            - flurstueckskennzeichen
        geometry_attribute: geom
    form:
        gb_blatt:
            type: text
            options:
                required: false
            compare: exact
        buchgsart:
            type: text
            options:
                required: false
            compare: exact
        bezirkname:
            type: text
            options:
                required: false
            compare: exact
        fs_zaehler:
            type: text
            options:
                required: false
            compare: exact
        nachname:
            type: text
            options:
                required: false
            compare: ilike
    results:
        view: table
        headers:
            flurstueckskennzeichen: Flstk.
            vorname: Vorname
            nachname: Nachname
            gb_blatt: Grundbuchblatt
            buchgsart: Buchungsart
        callback:
            event: click
            options:
                buffer: 40
                minScale: null
                maxScale: null
    

Attachments