wiki:PostNASMapbender3

Version 11 (modified by astrid.emde, 10 years ago) (diff)

--

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

Demo

http://postnas.mapbender3.org/

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 view qry_mb3_ax_flurstueck_suche as
    SELECT gml_id, gemarkungsnummer::text as gemarkungsnummer, flurnummer::text as flurnummer, zaehler::text as zaehler, nenner::text as nenner, replace(flurstueckskennzeichen,'_','') as flurstueckskennzeichen ,
    	f.wkb_geometry as the_geom_etrs 
       FROM ax_flurstueck f
    	ORDER BY f.zaehler, f.nenner ;
    
  • View Adresssuche
    Drop view qry_mb3_adresse_suche;
    Create view qry_mb3_adresse_suche as
    SELECT replace (h.hausnummer, ' ','') AS hausnummer,h.gemeinde::text gemeinde, h.kreis::text as kreis, 
    g.wkb_geometry AS the_geom_etrs, h.lage, k.bezeichnung
    FROM ax_lagebezeichnungmithausnummer h 
    JOIN alkis_beziehungen v 
    ON h.gml_id=v.beziehung_zu JOIN ax_gebaeude g 
    ON v.beziehung_von=g.gml_id 
    JOIN ax_lagebezeichnungkatalogeintrag as k
    ON h.lage=k.lage
    WHERE v.beziehungsart='zeigtAuf'
    ORDER BY  k.bezeichnung, lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);
    
  • neue Tabelle für die Eigentümersuche
CREATE TABLE mb3_eigentuemer_suche_union AS

  SELECT
 * 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.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 = b.land AND g.bezirk = b.bezirk
   JOIN alkis_beziehungen bgs ON bgs.beziehung_zu = g.gml_id
   JOIN ax_buchungsstelle s ON s.gml_id = bgs.beziehung_von
   JOIN ax_buchungsstelle_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

   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.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 = b.land AND g.bezirk = b.bezirk
   JOIN alkis_beziehungen bgs ON bgs.beziehung_zu = g.gml_id
   JOIN ax_buchungsstelle s ON s.gml_id = bgs.beziehung_von
   JOIN ax_buchungsstelle_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) AS 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
            - gemeinde
            - 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