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: * LAYER ax_flurstueck: * https://trac.wheregroup.com/PostNAS/export/297/trunk/umn/alkis/templates/alkis_fs_mb3.html * Verwendung ohne HEADER und FOOTER {{{ 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'); })(); }}} == Mapbender3 == === info-Verzeichnis mit den Auskunftsskripten === * Verzeichnis info liegt im Verzeichnis web in Mapbender3 (https://trac.wheregroup.com/PostNAS/browser/trunk/info) {{{ 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 2. SearchRouter als Element in die Anwendung einbinden * siehe http://doc.mapbender3.org/en/bundles/Mapbender/CoreBundle/elements/search_router.html * es muss der SearchRouter und ein Button zum Steuern eingebunden werden 3. 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; }}} 4. 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 }}}