@ -16,7 +16,7 @@ netgis.Client=function(a,b){this.build="20220826";this.debug=!1;netgis.util.isSt
this . hideLoader ( ) } ; netgis . Client . Layers = Object . freeze ( { PARCEL _DISTRICTS : "parcel-districts" , PARCEL _FIELDS : "parcel-fields" , PARCEL _FEATURES : "parcel-features" , EDIT _LAYER : "edit-layer" , PREVIEW _LAYER : "preview-layer" } ) ; netgis . Client . prototype . applyConfig = function ( a ) { this . createModules ( ) ; this . load ( ) ; this . invoke ( netgis . Events . CONTEXT _UPDATE , a ) ; this . initModules ( a ) ; this . initConfig ( a ) ; this . initOutput ( a ) ; this . initEvents ( ) ; this . importLayers = { } ; this . setMode ( netgis . Modes . VIEW ) } ;
netgis . Client . prototype . initElements = function ( ) { } ;
netgis . Client . prototype . initModules = function ( a ) { this . map = new netgis . MapOpenLayers ( a ) ; this . map . attach ( this . root ) ; this . controls = new netgis . Controls ; this . controls . attach ( this . root ) ; this . layerPanel = new netgis . Panel ( "Inhalte" ) ; this . layerPanel . attach ( this . root ) ; this . layerTree = new netgis . Tree ; this . layerTree . container . style . position = "absolute" ; this . layerTree . container . style . width = "100%" ; this . layerTree . container . style . top = "12mm" ; this . layerTree . container . style . bottom = "6mm" ; this . layerTree . container . style . overflow =
"auto" ; this . layerTree . attach ( this . layerPanel . container ) ; this . toolboxPanel = new netgis . Panel ( "Werkzeuge" ) ; this . toolboxPanel . attach ( this . root ) ; this . toolbox = new netgis . Toolbox ( a ) ; this . toolbox . attach ( this . toolboxPanel . container ) ; this . searchPlace = new netgis . SearchPlace ( a ) ; this . searchPlace . attach ( this . root ) ; this . parcelPanel = new netgis . Panel ( "Flurst\u00fccks-Suche" ) ; this . parcelPanel . container . style . minWidth = "92mm" ; this . parcelPanel . attach ( this . root ) ; this . searchParcel = new netgis . SearchParcel ( a ); this . searchParcel . attach ( this . parcelPanel . container ) ;
"auto" ; this . layerTree . attach ( this . layerPanel . container ) ; this . toolboxPanel = new netgis . Panel ( "Werkzeuge" ) ; this . toolboxPanel . attach ( this . root ) ; this . toolbox = new netgis . Toolbox ( a ) ; this . toolbox . attach ( this . toolboxPanel . container ) ; this . searchPlace = new netgis . SearchPlace ( a ) ; this . searchPlace . attach ( this . root ) ; this . parcelPanel = new netgis . Panel ( "Flurst\u00fccks-Suche" ) ; this . parcelPanel . container . style . minWidth = "92mm" ; this . parcelPanel . attach ( this . root ) ; this . searchParcel = new netgis . SearchParcel ( a ,this ); this . searchParcel . attach ( this . parcelPanel . container ) ;
this . importModal = new netgis . Modal ( "Ebene hinzuf\u00fcgen" ) ; this . importModal . container . classList . add ( "netgis-import" ) ; this . importModal . attach ( this . root ) ; a = document . createElement ( "div" ) ; a . className = "netgis-content netgis-form netgis-noselect" ; this . importModal . content . appendChild ( a ) ; var b = document . createElement ( "label" ) ; b . innerHTML = "Dateiformat:" ; a . appendChild ( b ) ; var c = document . createElement ( "select" ) ; c . innerHTML = "<option value='geojson'>GeoJSON</option><option value='gml'>GML</option><option value='gpkg'>GeoPackage</option><option value='shp'>Shapefile (Zip)</option><option value='spatialite'>Spatialite</option>" ;
b . addEventListener ( "change" , this . onImportFileTypeChange . bind ( this ) ) ; b . appendChild ( c ) ; this . importFileSelect = c ; b = document . createElement ( "div" ) ; b . innerHTML = "<h3>Unterst\u00fctzte Koordinatensysteme:</h3><ul><li>World Geodetic System 1984 (EPSG:4326)</li><li>ETRS89 / UTM zone 32N (EPSG:25832)</li></ul>" ; a . appendChild ( b ) ; b = document . createElement ( "label" ) ; b . innerHTML = "Datei ausw\u00e4hlen/ablegen:" ; a . appendChild ( b ) ; c = document . createElement ( "input" ) ; c . className = "netgis-color-d" ; c . setAttribute ( "type" , "file" ) ;
c . setAttribute ( "accept" , ".geojson,.json" ) ; b . appendChild ( c ) ; this . importFileInput = c ; b = document . createElement ( "button" ) ; b . setAttribute ( "type" , "button" ) ; b . className = "netgis-button netgis-center netgis-color-a netgis-hover-c netgis-shadow" ; b . innerHTML = "<i class='netgis-icon fas fa-check'></i><span>Hinzuf\u00fcgen</span>" ; b . addEventListener ( "click" , this . onImportFileClick . bind ( this ) ) ; a . appendChild ( b ) ; this . importServiceModal = new netgis . Modal ( "Dienst hinzuf\u00fcgen" ) ; this . importServiceModal . container . classList . add ( "netgis-import" ) ;
@ -53,15 +53,16 @@ netgis.Client.prototype.onLayersToggle=function(a){this.layerPanel.toggle();this
netgis . Client . prototype . onLayerTreeItemChange = function ( a ) { var b = a . detail . id ; a = a . detail . checked ; switch ( b ) { default : for ( var c = this . config . layers , d = ! 1 , e = null , f = 0 ; f < c . length ; f ++ ) { var g = c [ f ] , h = g . id ; if ( h === b ) { e = this . map . createLayer ( g ) ; d = ! 0 ; break } } if ( ! d ) for ( h in this . importLayers ) if ( h === b ) { e = this . importLayers [ b ] ; d = ! 0 ; break } d && ( a ? ( this . map . addLayer ( b , e ) , this . attribution . onLayerShow ( { id : b } ) ) : ( this . map . removeLayer ( b ) , this . attribution . onLayerHide ( { id : b } ) ) ) ; break ; case "edit-layer" : a ? this . map . addLayer ( netgis . Client . Layers . EDIT _LAYER ,
this . map . editLayer ) : this . map . removeLayer ( netgis . Client . Layers . EDIT _LAYER ) } } ; netgis . Client . prototype . onToolboxToggle = function ( a ) { this . toolboxPanel . toggle ( ) ; this . toolboxPanel . visible ( ) && ( this . layerPanel . hide ( ) , this . parcelPanel . hide ( ) ) } ; netgis . Client . prototype . onSearchPlaceToggle = function ( a ) { this . searchPlace . toggle ( ) } ; netgis . Client . prototype . onSearchPlaceSelect = function ( a ) { a = a . detail ; this . map . zoomExtent ( a . minx , a . miny , a . maxx , a . maxy ) } ;
netgis . Client . prototype . onSearchParcelToggle = function ( a ) { this . parcelPanel . toggle ( ) ; this . parcelPanel . visible ( ) && ( this . layerPanel . hide ( ) , this . toolboxPanel . hide ( ) ) } ; netgis . Client . prototype . onControlsZoom = function ( a ) { this . map . zoom ( a . detail ) } ; netgis . Client . prototype . onControlsZoomAll = function ( a ) { this . map . zoomAll ( ) } ; netgis . Client . prototype . onParcelsPanelToggle = function ( a ) { this . searchParcel . reset ( ) } ;
netgis . Client . prototype . onParcelsReset = function ( a ) { this . map . removeLayer ( netgis . Client . Layers . PARCEL _DISTRICTS ) ; this . map . removeLayer ( netgis . Client . Layers . PARCEL _FIELDS ) ; this . map . removeLayer ( netgis . Client . Layers . PARCEL _FEATURES ) ; if ( this . parcelPanel . visible ( ) ) { this . parcelsAdded = [ ] ; var b = this . config . searchParcel . districts _service ; a = this . map . createLayer ( b ) ; var c = this . config . styles . parcel ; this . map . setLayerStyleSimple ( a , c . fill , c . stroke , c . width ) ; this . map . addLayer ( netgis . Client . Layers . PARCEL _DISTRICTS , a ) ;
if ( b . minZoom ) { var d = this ; window . setTimeout ( function ( ) { d . map . zoomLevel ( b . minZoom + 1 ) } , 50 ) } this . setMode ( netgis . Modes . PARCEL _SELECT ) } else this . setMode ( netgis . Modes . VIEW ) } ;
netgis . Client . prototype . onParcelsFieldsResponse = function ( a ) { var b = a . detail ; this . map . zoomGeoJSON ( b . geojson ) ; this . map . removeLayer ( netgis . Client . Layers . PARCEL _DISTRICTS ) ; a = this . config . styles . parcel ; b = this . map . createLayerGeoJSON ( b . geojson , ! 1 ) ; this . map . setLayerStyleSimple ( b , a . fill , a . stroke , a . width ) ; this . map . setLayerOrder ( b , 4E4 ) ; this . map . addLayer ( netgis . Client . Layers . PARCEL _FIELDS , b ) } ;
netgis . Client . prototype . onParcelsResponse = function ( a ) { a = this . map . createLayerWKT ( a . detail . parcels ) ; var b = this . config . styles . parcel ; this . map . removeLayer ( netgis . Client . Layers . PARCEL _DISTRICTS ) ; this . map . removeLayer ( netgis . Client . Layers . PARCEL _FIELDS ) ; this . map . removeLayer ( netgis . Client . Layers . PARCEL _FEATURES ) ; this . map . setLayerStyleSimple ( a , b . fill , b . stroke , b . width ) ; this . map . addLayer ( netgis . Client . Layers . PARCEL _FEATURES , a ) ; this . map . zoomLayer ( netgis . Client . Layers . PARCEL _FEATURES ) } ;
netgis . Client . prototype . onMapFeatureEnter = function ( a ) { a = a . detail ; switch ( a . layer ) { case netgis . Client . Layers . PARCEL _DISTRICTS : a = a . properties . gemarkung ; this . map . container . setAttribute ( "title" , a ) ; break ; case netgis . Client . Layers . PARCEL _FIELDS : a = a . properties . flurname ; this . map . container . setAttribute ( "title" , a ) ; break ; case netgis . Client . Layers . PARCEL _FEATURES : a = "Flur: " + a . properties . fln + " / Z\u00e4hler: " + a . properties . fsn _zae + " / Nenner: " + a . properties . fsn _nen , this . map . container . setAttribute ( "title" , a + " (Klicken zum \u00dcbernehmen der Geometrie)" ) } } ;
netgis . Client . prototype . onMapFeatureClick = function ( a ) { a = a . detail ; switch ( a . layer ) { default : console . info ( "Feature Click:" , a ) ; break ; case netgis . Client . Layers . PARCEL _DISTRICTS : this . searchParcel . setDistrict ( a . properties . gemarkung + " (" + a . properties . ldkreis + ")" , a . properties . gmkgnr ) ; break ; case netgis . Client . Layers . PARCEL _FIELDS : this . searchParcel . setFieldNumber ( a . properties . flur ) ; break ; case netgis . Client . Layers . PARCEL _FEATURES : var b = a . properties . fsk ; - 1 === this . parcelsAdded . indexOf ( b ) && ( this . map . addEditFeature ( this . map . createFeatureJSON ( a . properties ) ) ,
this . map . updateSnapFeatures ( ) , this . parcelsAdded . push ( b ) ) } } ; netgis . Client . prototype . onMapFeatureLeave = function ( a ) { this . map . container . setAttribute ( "title" , "" ) } ; netgis . Client . prototype . onParcelsItemEnter = function ( a ) { this . map . setFeatureHover ( this . map . findFeature ( netgis . Client . Layers . PARCEL _FEATURES , "fsk" , a . detail . id ) , ! 0 ) } ; netgis . Client . prototype . onParcelsItemLeave = function ( a ) { this . map . setFeatureHover ( this . map . findFeature ( netgis . Client . Layers . PARCEL _FEATURES , "fsk" , a . detail . id ) , ! 1 ) } ;
netgis . Client . prototype . onParcelsItemClick = function ( a ) { this . map . zoomFeature ( this . map . findFeature ( netgis . Client . Layers . PARCEL _FEATURES , "fsk" , a . detail . id ) ) } ; netgis . Client . prototype . onParcelsImportClick = function ( a ) { a = a . detail ; this . map . addEditFeature ( this . map . createFeatureWKT ( a . geom , { id : a . id } ) ) ; this . map . updateSnapFeatures ( ) } ; netgis . Client . prototype . onSetMode = function ( a ) { this . setMode ( a . detail ) } ;
netgis . Client . prototype . onSnapToggle = function ( a ) { ( a = a . detail . target . checked ) ? ( this . map . updateSnapFeatures ( ) , this . map . setSnapOn ( ) ) : this . map . setSnapOff ( ) ; this . toolbox . setSnap ( a ) } ; netgis . Client . prototype . onTracingToggle = function ( a ) { a . detail . target . checked ? ( this . map . updateSnapFeatures ( ) , this . map . setSnapOn ( ) , this . map . setTracingOn ( ) , this . toolbox . setSnap ( ! 0 ) ) : this . map . setTracingOff ( ) } ;
netgis . Client . prototype . onParcelsReset = function ( a ) { this . map . removeLayer ( netgis . Client . Layers . PARCEL _DISTRICTS ) ; this . map . removeLayer ( netgis . Client . Layers . PARCEL _FIELDS ) ; this . map . removeLayer ( netgis . Client . Layers . PARCEL _FEATURES ) ; if ( this . parcelPanel . visible ( ) ) { this . parcelsAdded = [ ] ; var b = this . config . searchParcel . districts _service ; a = this . map . createLayer ( b ) ; var c = this . config . styles . parcel ; this . map . setLayerStyleSimple ( a , c . fill , c . stroke , c . width ) ; this . map . setLayerOrder ( a , 99999 ) ; this . map . addLayer ( netgis . Client . Layers . PARCEL _DISTRICTS ,
a ) ; if ( b . minZoom ) { var d = this ; window . setTimeout ( function ( ) { d . map . zoomLevel ( b . minZoom + 1 ) } , 50 ) } this . setMode ( netgis . Modes . PARCEL _SELECT ) } else this . setMode ( netgis . Modes . VIEW ) } ;
netgis . Client . prototype . onParcelsFieldsResponse = function ( a ) { var b = a . detail ; this . map . zoomGeoJSON ( b . geojson ) ; this . map . removeLayer ( netgis . Client . Layers . PARCEL _DISTRICTS ) ; a = this . config . styles . parcel ; b = this . map . createLayerGeoJSON ( b . geojson , ! 1 ) ; this . map . setLayerStyleSimple ( b , a . fill , a . stroke , a . width ) ; this . map . setLayerOrder ( b , 99999 ) ; this . map . addLayer ( netgis . Client . Layers . PARCEL _FIELDS , b ) } ;
netgis . Client . prototype . onParcelsResponse = function ( a ) { a = this . map . createLayerWKT ( a . detail . parcels ) ; var b = this . config . styles . parcel ; this . map . removeLayer ( netgis . Client . Layers . PARCEL _DISTRICTS ) ; this . map . removeLayer ( netgis . Client . Layers . PARCEL _FIELDS ) ; this . map . removeLayer ( netgis . Client . Layers . PARCEL _FEATURES ) ; this . map . setLayerStyleSimple ( a , b . fill , b . stroke , b . width ) ; this . map . setLayerOrder ( a , 99999 ) ; this . map . addLayer ( netgis . Client . Layers . PARCEL _FEATURES , a ) ; this . map . zoomLayer ( netgis . Client . Layers . PARCEL _FEATURES ) } ;
netgis . Client . prototype . onMapFeatureEnter = function ( a ) { a = a . detail ; switch ( a . layer ) { case netgis . Client . Layers . PARCEL _DISTRICTS : a = a . properties . gemarkung ; this . map . container . setAttribute ( "title" , a ) ; break ; case netgis . Client . Layers . PARCEL _FIELDS : a = a . properties . flurname ; this . map . container . setAttribute ( "title" , a ) ; break ; case netgis . Client . Layers . PARCEL _FEATURES : a = "Flur: " + a . properties . fln + " / Z\u00e4hler: " + a . properties . fsn _zae + " / Nenner: " + a . properties . fsn _nen , this . editable && ( a += " (Klicken zum \u00dcbernehmen der Geometrie)" ) ,
this . map . container . setAttribute ( "title" , a ) } } ;
netgis . Client . prototype . onMapFeatureClick = function ( a ) { a = a . detail ; switch ( a . layer ) { default : console . info ( "Feature Click:" , a ) ; break ; case netgis . Client . Layers . PARCEL _DISTRICTS : this . searchParcel . setDistrict ( a . properties . gemarkung + " (" + a . properties . ldkreis + ")" , a . properties . gmkgnr ) ; break ; case netgis . Client . Layers . PARCEL _FIELDS : this . searchParcel . setFieldNumber ( a . properties . flur ) ; break ; case netgis . Client . Layers . PARCEL _FEATURES : if ( ! 0 === this . editable ) { var b = a . properties . fsk ; - 1 === this . parcelsAdded . indexOf ( b ) &&
( this . map . addEditFeature ( this . map . createFeatureJSON ( a . properties ) ) , this . map . updateSnapFeatures ( ) , this . parcelsAdded . push ( b ) ) } } } ; netgis . Client . prototype . onMapFeatureLeave = function ( a ) { this . map . container . setAttribute ( "title" , "" ) } ; netgis . Client . prototype . onParcelsItemEnter = function ( a ) { this . map . setFeatureHover ( this . map . findFeature ( netgis . Client . Layers . PARCEL _FEATURES , "fsk" , a . detail . id ) , ! 0 ) } ;
netgis . Client . prototype . onParcelsItemLeave = function ( a ) { this . map . setFeatureHover ( this . map . findFeature ( netgis . Client . Layers . PARCEL _FEATURES , "fsk" , a . detail . id ) , ! 1 ) } ; netgis . Client . prototype . onParcelsItemClick = function ( a ) { this . map . zoomFeature ( this . map . findFeature ( netgis . Client . Layers . PARCEL _FEATURES , "fsk" , a . detail . id ) ) } ; netgis . Client . prototype . onParcelsImportClick = function ( a ) { a = a . detail ; ! 1 !== this . editable && ( this . map . addEditFeature ( this . map . createFeatureWKT ( a . geom , { id : a . id } ) ) , this . map . updateSnapFeatures ( ) ) } ;
netgis . Client . prototype . onSetMode = function ( a ) { this . setMode ( a . detail ) } ; netgis . Client . prototype . onSnapToggle = function ( a ) { ( a = a . detail . target . checked ) ? ( this . map . updateSnapFeatures ( ) , this . map . setSnapOn ( ) ) : this . map . setSnapOff ( ) ; this . toolbox . setSnap ( a ) } ; netgis . Client . prototype . onTracingToggle = function ( a ) { a . detail . target . checked ? ( this . map . updateSnapFeatures ( ) , this . map . setSnapOn ( ) , this . map . setTracingOn ( ) , this . toolbox . setSnap ( ! 0 ) ) : this . map . setTracingOff ( ) } ;
netgis . Client . prototype . onBufferToggle = function ( a ) { if ( a = a . detail . target . checked ) this . map . onDrawBufferOn ( ) ; else this . map . onDrawBufferOff ( ) ; this . toolbox . setBuffer ( a ) } ; netgis . Client . prototype . onBufferRadiusChange = function ( a ) { a = Number . parseFloat ( a . detail . target . value ) ; this . map . onDrawBufferRadiusChange ( a ) ; this . toolbox . setBufferRadius ( a ) } ; netgis . Client . prototype . onBufferSegmentsChange = function ( a ) { a = Number . parseInt ( a . detail . target . value ) ; this . map . onDrawBufferSegmentsChange ( a ) ; this . toolbox . setBufferSegments ( a ) } ;
netgis . Client . prototype . onBufferFeatureChange = function ( a ) { this . map . onBufferChange ( a . detail ) } ; netgis . Client . prototype . onBufferFeatureAccept = function ( a ) { this . map . onBufferAccept ( ) } ; netgis . Client . prototype . onImportShapefileShow = function ( a ) { this . modal . onImportShapefileShow ( a ) } ; netgis . Client . prototype . onImportGeoJSONShow = function ( a ) { this . modal . onImportGeoJSONShow ( a ) } ; netgis . Client . prototype . onImportGMLShow = function ( a ) { this . modal . onImportGMLShow ( a ) } ; netgis . Client . prototype . onImportSpatialiteShow = function ( a ) { this . modal . onImportSpatialiteShow ( a ) } ;
netgis . Client . prototype . onImportGeopackageShow = function ( a ) { this . modal . onImportGeopackageShow ( a ) } ; netgis . Client . prototype . onExportPDFShow = function ( a ) { this . modal . onExportPDFShow ( a ) } ; netgis . Client . prototype . onExportPNGShow = function ( a ) { this . modal . onExportPNGShow ( a ) } ; netgis . Client . prototype . onExportJPEGShow = function ( a ) { this . modal . onExportJPEGShow ( a ) } ; netgis . Client . prototype . onExportGIFShow = function ( a ) { this . modal . onExportGIFShow ( a ) } ; netgis . Client . prototype . onExportPDF = function ( a ) { this . map . onExportPDF ( a ) } ;
@ -104,8 +105,8 @@ this.client.on(netgis.Events.PARCEL_SHOW_PREVIEW,this.onParcelShowPreview.bind(t
this . onDrawBufferRadiusChange . bind ( this ) ) ; this . client . on ( netgis . Events . DRAW _BUFFER _SEGMENTS _CHANGE , this . onDrawBufferSegmentsChange . bind ( this ) ) } ;
netgis . MapOpenLayers . prototype . initMap = function ( a ) { "undefined" !== typeof proj4 && ( proj4 . defs ( a . projections ) , proj4 . defs ( "urn:ogc:def:crs:OGC:1.3:CRS84" , proj4 . defs ( "EPSG:4326" ) ) , ol . proj . proj4 . register ( proj4 ) ) ; this . view = new ol . View ( { projection : a . map . projection , center : a . map . center , minZoom : a . map . minZoom , maxZoom : a . map . maxZoom , zoom : a . map . zoom } ) ; this . setPadding ( 0 , 0 , 0 , 0 ) ; this . map = new ol . Map ( { target : this . container , view : this . view , pixelRatio : 1 , moveTolerance : 5 , controls : [ ] } ) ; a . map . scalebar && ( this . scalebar = new ol . control . ScaleLine ( { bar : ! 0 } ) ,
this . map . addControl ( this . scalebar ) ) ; this . map . on ( "pointermove" , this . onPointerMove . bind ( this ) ) ; this . map . on ( "click" , this . onSingleClick . bind ( this ) ) ; this . map . on ( "movestart" , this . onMoveStart . bind ( this ) ) ; this . map . on ( "moveend" , this . onMoveEnd . bind ( this ) ) ; this . view . on ( "change:resolution" , this . onChangeResolution . bind ( this ) ) } ; netgis . MapOpenLayers . prototype . initStyles = function ( a ) { a = a . styles . select ; this . hoverStyle = this . createStyle ( a . fill , a . stroke , a . width ) ; this . hoverStyle . setZIndex ( 1 ) } ;
netgis . MapOpenLayers . prototype . initDefaultLayers = function ( ) { this . editLayer = new ol . layer . Vector ( { source : new ol . source . Vector ( { features : [ ] } ) , style : this . styleEdit . bind ( this ) , zIndex : this . editLayerID } ) ; this . addLayer ( netgis . Client . Layers . EDIT _LAYER , this . editLayer ) ; this . previewLayer = new ol . layer . Vector ( { source : new ol . source . Vector ( { features : [ ] } ) , style : this . styleSketch . bind ( this ) , zIndex : this . editLayerID + 10 } ) ; this . addLayer ( netgis . Client . Layers . PREVIEW _LAYER , this . previewLayer ) ; this . parcelLayer= new ol . layer . Vector ( { source : new ol . source . Vector ( { features : [ ] } ) ,
style : this . styleParcel . bind ( this ) , zIndex : this . editLayerID + 20 } ) ; this . map . addLayer ( this . parcelLayer ) ; this . editEventsOn ( ) } ; netgis . MapOpenLayers . prototype . editEventsOn = function ( ) { this . editLayer . getSource ( ) . on ( "addfeature" , this . onEditLayerAdd . bind ( this ) ) ; this . editLayer . getSource ( ) . on ( "changefeature" , this . onEditLayerChange . bind ( this ) ) ; this . editLayer . getSource ( ) . on ( "removefeature" , this . onEditLayerRemove . bind ( this ) ) } ; netgis . MapOpenLayers . prototype . editEventsOff = function ( ) { } ;
netgis . MapOpenLayers . prototype . initDefaultLayers = function ( ) { this . editLayer = new ol . layer . Vector ( { source : new ol . source . Vector ( { features : [ ] } ) , style : this . styleEdit . bind ( this ) , zIndex : this . editLayerID } ) ; this . addLayer ( netgis . Client . Layers . EDIT _LAYER , this . editLayer ) ; this . previewLayer = new ol . layer . Vector ( { source : new ol . source . Vector ( { features : [ ] } ) , style : this . styleSketch . bind ( this ) , zIndex : this . editLayerID + 1E3 } ) ; this . addLayer ( netgis . Client . Layers . PREVIEW _LAYER , this . previewLayer ) ; this . editEventsOn( ) } ;
netgis . MapOpenLayers . prototype . editEventsOn = function ( ) { this . editLayer . getSource ( ) . on ( "addfeature" , this . onEditLayerAdd . bind ( this ) ) ; this . editLayer . getSource ( ) . on ( "changefeature" , this . onEditLayerChange . bind ( this ) ) ; this . editLayer . getSource ( ) . on ( "removefeature" , this . onEditLayerRemove . bind ( this ) ) } ; netgis . MapOpenLayers . prototype . editEventsOff = function ( ) { } ;
netgis . MapOpenLayers . prototype . initInteractions = function ( ) { this . interactions [ netgis . Modes . VIEW ] = [ new ol . interaction . DragPan , new ol . interaction . MouseWheelZoom ] ; this . interactions [ netgis . Modes . PANNING ] = this . interactions [ netgis . Modes . VIEW ] ; this . interactions [ netgis . Modes . ZOOMING _IN ] = this . interactions [ netgis . Modes . VIEW ] ; this . interactions [ netgis . Modes . ZOOMING _OUT ] = this . interactions [ netgis . Modes . VIEW ] ; this . interactions [ netgis . Modes . DRAW _POINTS ] = [ new ol . interaction . Draw ( { type : "Point" , source : this . editLayer . getSource ( ) ,
style : this . styleSketch . bind ( this ) } ) , new ol . interaction . DragPan , new ol . interaction . MouseWheelZoom ] ; this . interactions [ netgis . Modes . DRAW _POINTS ] [ 0 ] . on ( "drawend" , this . onDrawPointsEnd . bind ( this ) ) ; this . interactions [ netgis . Modes . DRAW _LINES ] = [ new ol . interaction . Draw ( { type : "LineString" , source : this . editLayer . getSource ( ) , style : this . styleSketch . bind ( this ) } ) , new ol . interaction . DragPan , new ol . interaction . MouseWheelZoom ] ; this . interactions [ netgis . Modes . DRAW _LINES ] [ 0 ] . on ( "drawend" , this . onDrawLinesEnd . bind ( this ) ) ;
this . interactions [ netgis . Modes . DRAW _POLYGONS ] = [ new ol . interaction . Draw ( { type : "Polygon" , source : this . editLayer . getSource ( ) , style : this . styleSketch . bind ( this ) } ) , new ol . interaction . DragPan , new ol . interaction . MouseWheelZoom ] ; this . interactions [ netgis . Modes . CUT _FEATURE _BEGIN ] = [ new ol . interaction . DragPan , new ol . interaction . MouseWheelZoom ] ; this . interactions [ netgis . Modes . CUT _FEATURE _DRAW ] = [ new ol . interaction . Draw ( { type : "Polygon" , style : this . styleSketch . bind ( this ) } ) , new ol . interaction . DragPan , new ol . interaction . MouseWheelZoom ] ;
@ -134,7 +135,7 @@ netgis.MapOpenLayers.prototype.styleModify=function(a){var b=new ol.style.Style(
geometry : this . getGeometryPoints ( a ) } ) ; a = a . getGeometry ( ) ; a instanceof ol . geom . Polygon && ( a = a . getArea ( ) , b . setText ( new ol . style . Text ( { text : [ netgis . util . formatArea ( a , ! 0 ) , "4mm sans-serif" ] , font : this . labelFont , fill : new ol . style . Fill ( { color : this . config . styles . modify . stroke } ) , backgroundFill : new ol . style . Fill ( { color : "rgba( 255, 255, 255, 0.5 )" } ) , padding : [ 2 , 4 , 2 , 4 ] } ) ) ) ; return [ b , c ] } ;
netgis . MapOpenLayers . prototype . styleSketch = function ( a ) { var b = a . getGeometry ( ) , c = new ol . style . Style ( { image : new ol . style . Circle ( { radius : this . config . styles . sketch . pointRadius , fill : new ol . style . Fill ( { color : this . config . styles . sketch . stroke } ) } ) , fill : new ol . style . Fill ( { color : this . config . styles . sketch . fill } ) , stroke : new ol . style . Stroke ( { color : this . config . styles . sketch . stroke , width : this . config . styles . sketch . strokeWidth } ) } ) ; b instanceof ol . geom . Polygon && ( b = b . getArea ( ) , c . setText ( new ol . style . Text ( { text : [ netgis . util . formatArea ( b ,
! 0 ) , "4mm sans-serif" ] , font : this . labelFont , fill : new ol . style . Fill ( { color : this . config . styles . sketch . stroke } ) , backgroundFill : new ol . style . Fill ( { color : "rgba( 255, 255, 255, 0.5 )" } ) , padding : [ 2 , 4 , 2 , 4 ] } ) ) ) ; a = new ol . style . Style ( { image : new ol . style . Circle ( { radius : this . config . styles . sketch . pointRadius , fill : new ol . style . Fill ( { color : this . config . styles . sketch . stroke } ) } ) , geometry : this . getGeometryPoints ( a ) } ) ; return [ c , a ] } ;
netgis . MapOpenLayers . prototype . styleParcel = function ( ) { return new ol . style . Style ( { fill : new ol . style . Fill ( { color : this . client . config . styles . parcel . fill } ) , stroke : new ol . style . Stroke ( { color : this . client . config . styles . parcel . stroke , width : this . client . config . styles . parcel . strokeWidth } ) }) } ; netgis . MapOpenLayers . prototype . redrawVectorLayers = function ( ) { this . map . getLayers ( ) . forEach ( function ( a , b , c ) { a instanceof ol . layer . Vector && a . setStyle ( a . getStyle ( ) ) } ) } ;
netgis . MapOpenLayers . prototype . styleParcel = function ( ) { return new ol . style . Style ( { fill : new ol . style . Fill ( { color : this . client . config . styles . parcel . fill } ) , stroke : new ol . style . Stroke ( { color : this . client . config . styles . parcel . stroke , width : this . client . config . styles . parcel . strokeWidth } ) ,zIndex : 99999 }) } ; netgis . MapOpenLayers . prototype . redrawVectorLayers = function ( ) { this . map . getLayers ( ) . forEach ( function ( a , b , c ) { a instanceof ol . layer . Vector && a . setStyle ( a . getStyle ( ) ) } ) } ;
netgis . MapOpenLayers . prototype . getGeometryPoints = function ( a ) { var b = a . getGeometry ( ) ; if ( b instanceof ol . geom . LineString ) return new ol . geom . MultiPoint ( b . getCoordinates ( ) ) ; if ( b instanceof ol . geom . Polygon ) { a = [ ] ; b = b . getCoordinates ( ) ; for ( var c = 0 ; c < b . length ; c ++ ) for ( var d = b [ c ] , e = 0 ; e < d . length ; e ++ ) a . push ( d [ e ] ) ; return new ol . geom . MultiPoint ( a ) } if ( b instanceof ol . geom . MultiPolygon ) { a = [ ] ; for ( var f = b . getPolygons ( ) , g = 0 ; g < f . length ; g ++ ) for ( b = f [ g ] . getCoordinates ( ) , c = 0 ; c < b . length ; c ++ ) for ( d = b [ c ] , e = 0 ; e < d . length ; e ++ ) a . push ( d [ e ] ) ;
return new ol . geom . MultiPoint ( a ) } if ( b instanceof ol . geom . MultiLineString ) { a = [ ] ; f = b . getPolygons ( ) ; for ( g = 0 ; g < f . length ; g ++ ) for ( b = f [ g ] . getCoordinates ( ) , c = 0 ; c < b . length ; c ++ ) for ( d = b [ c ] , e = 0 ; e < d . length ; e ++ ) a . push ( d [ e ] ) ; return new ol . geom . MultiPoint ( a ) } return b } ; netgis . MapOpenLayers . prototype . getActiveVectorLayers = function ( ) { for ( var a = [ ] , b = this . map . getLayers ( ) . getArray ( ) , c = this . layers , d = 0 ; d < c . length ; d ++ ) { var e = c [ d ] ; e instanceof ol . layer . Vector && - 1 < b . indexOf ( e ) && a . push ( e ) } return a } ;
netgis . MapOpenLayers . prototype . setMode = function ( a ) { switch ( this . mode ) { case netgis . Modes . BUFFER _FEATURE _EDIT : this . onBufferCancel ( null ) ; break ; case netgis . Modes . DRAW _POINTS : case netgis . Modes . DRAW _LINES : var b = this . drawBufferOn ; this . onDrawBufferOff ( null ) ; this . drawBufferOn = b ; break ; case netgis . Modes . MODIFY _FEATURES : this . editLayer . setStyle ( this . styleEdit . bind ( this ) ) } this . container . classList . remove ( "netgis-cursor-draw" ) ; this . container . classList . remove ( "netgis-clickable" ) ; switch ( a ) { case netgis . Modes . DRAW _POINTS : this . container . classList . add ( "netgis-cursor-draw" ) ;
@ -153,9 +154,10 @@ netgis.MapOpenLayers.prototype.onAddServiceWMS=function(a){var b=this.createLaye
netgis . MapOpenLayers . prototype . onSetExtent = function ( a ) { var b = ol . proj . fromLonLat ( [ a . minx , a . miny ] , this . client . config . map . projection ) ; a = ol . proj . fromLonLat ( [ a . maxx , a . maxy ] , this . client . config . map . projection ) ; this . view . fit ( [ b [ 0 ] , b [ 1 ] , a [ 0 ] , a [ 1 ] ] ) } ; netgis . MapOpenLayers . prototype . onChangeZoom = function ( a ) { this . view . animate ( { zoom : this . view . getZoom ( ) + a , duration : 200 } ) } ; netgis . MapOpenLayers . prototype . onZoomWKT = function ( a ) { a = ( new ol . format . WKT ) . readGeometry ( a ) ; this . view . fit ( a , { duration : 300 , padding : [ 40 , 40 , 40 , 40 ] } ) } ;
netgis . MapOpenLayers . prototype . onPointerMove = function ( a ) { var b = a . pixel ; a = a . coordinate ; var c = null , d = null ; this . map . forEachFeatureAtPixel ( b , function ( a , b ) { if ( b ) { if ( b . get ( "id" ) && netgis . util . isString ( b . get ( "id" ) ) && - 1 !== b . get ( "id" ) . search ( "import-" ) ) return ! 1 ; c = a ; d = b ; return ! 0 } } ) ; switch ( this . mode ) { default : return ! 0 ; case netgis . Modes . PARCEL _SELECT : case netgis . Modes . DELETE _FEATURES : case netgis . Modes . CUT _FEATURE _BEGIN : case netgis . Modes . BUFFER _FEATURE _BEGIN : break ; case netgis . Modes . DRAW _POINTS : case netgis . Modes . DRAW _LINES : return this . updateDrawBufferPreview ( ) ,
! 0 } c !== this . hoverFeature && ( this . hoverFeature && this . featureLeave ( this . hoverFeature , this . hoverLayer , b , a ) , c && this . featureEnter ( c , d , b , a ) , this . redrawVectorLayers ( ) , this . hoverFeature = c , this . hoverLayer = d ) ; c && this . featureHover ( c , d , b , a ) } ; netgis . MapOpenLayers . prototype . onPointerLeave = function ( a ) { this . hoverFeature && ( this . featureLeave ( this . hoverFeature , this . hoverLayer , [ a . offsetX , a . offsetY ] , null ) , this . hoverLayer = this . hoverFeature = null ) } ;
netgis . MapOpenLayers . prototype . featureEnter = function ( a , b , c , d ) { b && ( this . container . classList . add ( "netgis-clickable" ) , b . get ( "id" ) !== netgis . Client . Layers . EDIT _LAYER && - 1 === b . get ( "id" ) . search ( "import-" ) && a . setStyle ( this . hoverStyle ) , netgis . util . invoke ( this . container , netgis . Events . MAP _FEATURE _ENTER , { pixel : c , coords : d , layer : b . get ( "id" ) , properties : a . getProperties ( ) } ) ) } ; netgis . MapOpenLayers . prototype . featureHover = function ( a , b , c , d ) { } ;
netgis . MapOpenLayers . prototype . featureLeave = function ( a , b , c , d ) { b && ( this . container . classList . remove ( "netgis-clickable" ) , b . get ( "id" ) !== netgis . Client . Layers . EDIT _LAYER && a . setStyle ( null ) , netgis . util . invoke ( this . container , netgis . Events . MAP _FEATURE _LEAVE , { pixel : c , coords : d , layer : b . get ( "id" ) , properties : a . getProperties ( ) } ) ) } ; netgis . MapOpenLayers . prototype . findFeature = function ( a , b , c ) { if ( a = this . activeLayers [ a ] ) { a = a . getSource ( ) . getFeatures ( ) ; for ( var d = null , e = 0 ; e < a . length ; e ++ ) { var f = a [ e ] ; if ( f . get ( b ) === c ) { d = f ; break } } return d } } ;
netgis . MapOpenLayers . prototype . setFeatureHover = function ( a , b ) { a . setStyle ( b ? this . hoverStyle : null ) } ; netgis . MapOpenLayers . prototype . onPointerMove _01 = function ( a ) { a = a . pixel ; var b = this . hoverFeature , c = this ; switch ( this . mode ) { case netgis . Modes . DRAW _POINTS : case netgis . Modes . DRAW _LINES : this . updateDrawBufferPreview ( ) } b = null ; this . map . forEachFeatureAtPixel ( a , function ( a , e ) { e === c . editLayer && ( b = a ) ; return ! 0 } ) ; b !== this . hoverFeature && this . redrawVectorLayers ( ) ; this . hoverFeature = b } ;
netgis . MapOpenLayers . prototype . featureEnter = function ( a , b , c , d ) { if ( b ) { this . container . classList . add ( "netgis-clickable" ) ; var e = ! 1 ; b . get ( "id" ) === netgis . Client . Layers . EDIT _LAYER && ( e = ! 0 ) ; b . get ( "id" ) === netgis . Client . Layers . PARCEL _DISTRICTS && ( e = ! 0 ) ; b . get ( "id" ) === netgis . Client . Layers . PARCEL _FIELDS && ( e = ! 0 ) ; b . get ( "id" ) === netgis . Client . Layers . PARCEL _FEATURES && ( e = ! 0 ) ; e && a . setStyle ( this . hoverStyle ) ; netgis . util . invoke ( this . container , netgis . Events . MAP _FEATURE _ENTER , { pixel : c , coords : d , layer : b . get ( "id" ) , properties : a . getProperties ( ) } ) } } ;
netgis . MapOpenLayers . prototype . featureHover = function ( a , b , c , d ) { } ; netgis . MapOpenLayers . prototype . featureLeave = function ( a , b , c , d ) { b && ( this . container . classList . remove ( "netgis-clickable" ) , b . get ( "id" ) !== netgis . Client . Layers . EDIT _LAYER && a . setStyle ( null ) , netgis . util . invoke ( this . container , netgis . Events . MAP _FEATURE _LEAVE , { pixel : c , coords : d , layer : b . get ( "id" ) , properties : a . getProperties ( ) } ) ) } ;
netgis . MapOpenLayers . prototype . findFeature = function ( a , b , c ) { if ( a = this . activeLayers [ a ] ) { a = a . getSource ( ) . getFeatures ( ) ; for ( var d = null , e = 0 ; e < a . length ; e ++ ) { var f = a [ e ] ; if ( f . get ( b ) === c ) { d = f ; break } } return d } } ; netgis . MapOpenLayers . prototype . setFeatureHover = function ( a , b ) { a . setStyle ( b ? this . hoverStyle : null ) } ;
netgis . MapOpenLayers . prototype . onPointerMove _01 = function ( a ) { a = a . pixel ; var b = this . hoverFeature , c = this ; switch ( this . mode ) { case netgis . Modes . DRAW _POINTS : case netgis . Modes . DRAW _LINES : this . updateDrawBufferPreview ( ) } b = null ; this . map . forEachFeatureAtPixel ( a , function ( a , e ) { e === c . editLayer && ( b = a ) ; return ! 0 } ) ; b !== this . hoverFeature && this . redrawVectorLayers ( ) ; this . hoverFeature = b } ;
netgis . MapOpenLayers . prototype . onSingleClick = function ( a ) { switch ( this . mode ) { default : this . hoverFeature && this . hoverLayer && ( a = { pixel : a . pixel , coords : a . coordinate , layer : this . hoverLayer . get ( "id" ) , id : this . hoverFeature . getId ( ) , properties : this . hoverFeature . getProperties ( ) } , netgis . util . invoke ( this . container , netgis . Events . MAP _FEATURE _CLICK , a ) ) ; break ; case netgis . Modes . DELETE _FEATURES : this . hoverFeature && ( this . editLayer . getSource ( ) . removeFeature ( this . hoverFeature ) , this . featureLeave ( this . hoverFeature , this . editLayer ) ,
this . hoverFeature = null , netgis . util . invoke ( this . container , netgis . Events . SET _MODE , netgis . Modes . VIEW ) ) ; break ; case netgis . Modes . CUT _FEATURE _BEGIN : this . hoverFeature && ( this . selected = this . hoverFeature , netgis . util . invoke ( this . container , netgis . Events . SET _MODE , netgis . Modes . CUT _FEATURE _DRAW ) ) ; break ; case netgis . Modes . BUFFER _FEATURE _BEGIN : this . hoverFeature && ( this . selected = this . hoverFeature , netgis . util . invoke ( this . container , netgis . Events . SET _MODE , netgis . Modes . BUFFER _FEATURE _EDIT ) ) } } ;
netgis . MapOpenLayers . prototype . onMoveStart = function ( a ) { } ; netgis . MapOpenLayers . prototype . onMoveEnd = function ( a ) { } ; netgis . MapOpenLayers . prototype . onChangeResolution = function ( a ) { } ;
@ -194,8 +196,8 @@ function(){var n=document.createElement("canvas");n.width=b;n.height=c;var p=n.g
t . setFillColor ( 255 , 255 , 255 ) ; t . rect ( x , r + u - 11 , 80 , 11 , "F" ) ; t . setFontSize ( 8 ) ; t . text ( "Datum: " + netgis . util . getTimeStamp ( ) , x + 2 , r + u - 2 - 4 ) ; t . text ( "Quelle: " + window . location . href , x + 2 , r + u - 2 ) ; n = t . output ( "bloburl" , { filename : k . export . defaultFilename + ".pdf" } ) ; window . open ( n , "_blank" ) ; break ; case "jpeg" : window . navigator . msSaveBlob ? window . navigator . msSaveBlob ( n . msToBlob ( ) , k . export . defaultFilename + ".jpg" ) : ( q . setAttribute ( "download" , k . export . defaultFilename + ".jpg" ) , q . setAttribute ( "href" , n . toDataURL ( "image/jpeg" , 1 ) ) , q . click ( ) ) ;
break ; case "png" : window . navigator . msSaveBlob ? window . navigator . msSaveBlob ( n . msToBlob ( ) , k . export . defaultFilename + ".png" ) : ( q . setAttribute ( "download" , k . export . defaultFilename + ".png" ) , q . setAttribute ( "href" , n . toDataURL ( "image/png" , 1 ) ) , q . click ( ) ) ; break ; case "gif" : q . setAttribute ( "download" , k . export . defaultFilename + ".gif" ) , v = new GIF ( { workerScript : k . export . gifWebWorker , quality : 1 } ) , v . addFrame ( n ) , v . on ( "finished" , function ( a ) { q . setAttribute ( "href" , window . URL . createObjectURL ( a ) ) ; q . click ( ) } ) , v . render ( ) } h . setTarget ( g ) ;
g . removeChild ( m ) ; netgis . util . invoke ( f . container , netgis . Events . EXPORT _END , null ) } ) ; h . renderSync ( ) } ; l . src = k . export . logo } ; netgis . MapOpenLayers . prototype . splitMultiPolygons = function ( a ) { a = a . getSource ( ) ; for ( var b = a . getFeatures ( ) , c = [ ] , d = [ ] , e = 0 ; e < b . length ; e ++ ) { var f = b [ e ] , g = f . getGeometry ( ) ; if ( g instanceof ol . geom . MultiPolygon ) { g = g . getPolygons ( ) ; for ( var h = 0 ; h < g . length ; h ++ ) { var k = new ol . Feature ( { geometry : g [ h ] } ) ; d . push ( k ) } c . push ( f ) } } for ( e = 0 ; e < c . length ; e ++ ) a . removeFeature ( c [ e ] ) ; a . addFeatures ( d ) } ; netgis = netgis || { } ; netgis . Menu = function ( ) { this . root = this . client = null ; this . sections = [ ] } ;
netgis . Menu . prototype . load = function ( ) { this . root = document . createElement ( "header" ) ; this . root . className = "netgis-menu netgis-color-a netgis-shadow" ; var a = document . createElement ( "div" ) ; this . root . appendChild ( a ) ; var b = this . createButton ( '<i class="fab fa-buffer"></i><span>Inhalte</span>' , ! 0 ) ; b . addEventListener ( "click" , this . onToggleClick . bind ( this ) ) ; a . appendChild ( b ) ; b = this . createButton ( '<i class="fas fa-tools"></i><span>Werkzeuge</span>' , ! 0 ) ; b . addEventListener ( "click" , this . onToolboxClick . bind ( this ) ) ;a . appendChild ( b ) ;
b = this . createButton ( '<i class="fas fa-vector-square"></i><span>Flurst\u00fccke</span>' , ! 0 ) ; b . addEventListener ( "click" , this . onSearchParcelClick . bind ( this ) ) ; a . appendChild ( b ) ; b = this . createButton ( '<i class="fas fa-search"></i><span>Suche</span>' , ! 0 ) ; b . addEventListener ( "click" , this . onSearchPlaceClick . bind ( this ) ) ; a . appendChild ( b ) ; this . client . editable && ( a = this . createMenu ( '<i class="fas fa-caret-down"></i>Zeichnen' ) . getElementsByTagName ( "ul" ) [ 0 ] , a . appendChild ( this . createMenuItem ( '<i class="fas fa-map-marker-alt"></i>Punkte' ,
netgis . Menu . prototype . load = function ( ) { this . root = document . createElement ( "header" ) ; this . root . className = "netgis-menu netgis-color-a netgis-shadow" ; var a = document . createElement ( "div" ) ; this . root . appendChild ( a ) ; var b = this . createButton ( '<i class="fab fa-buffer"></i><span>Inhalte</span>' , ! 0 ) ; b . addEventListener ( "click" , this . onToggleClick . bind ( this ) ) ; a . appendChild ( b ) ; ! 0 === this . client . editable && ( b = this . createButton ( '<i class="fas fa-tools"></i><span>Werkzeuge</span>' , ! 0 ) , b . addEventListener ( "click" , this . onToolboxClick . bind ( this ) ) ,
a . appendChild ( b ) ) ; b = this . createButton ( '<i class="fas fa-vector-square"></i><span>Flurst\u00fccke</span>' , ! 0 ) ; b . addEventListener ( "click" , this . onSearchParcelClick . bind ( this ) ) ; a . appendChild ( b ) ; b = this . createButton ( '<i class="fas fa-search"></i><span>Suche</span>' , ! 0 ) ; b . addEventListener ( "click" , this . onSearchPlaceClick . bind ( this ) ) ; a . appendChild ( b ) ; this . client . editable && ( a = this . createMenu ( '<i class="fas fa-caret-down"></i>Zeichnen' ) . getElementsByTagName ( "ul" ) [ 0 ] , a . appendChild ( this . createMenuItem ( '<i class="fas fa-map-marker-alt"></i>Punkte' ,
this . onDrawPointClick . bind ( this ) ) ) , a . appendChild ( this . createMenuItem ( '<i class="fas fa-minus"></i>Linien' , this . onDrawLineClick . bind ( this ) ) ) , a . appendChild ( this . createMenuItem ( '<i class="fas fa-vector-square"></i>Polygone' , this . onDrawPolygonClick . bind ( this ) ) ) , a = this . createMenu ( '<i class="fas fa-caret-down"></i>Bearbeiten' ) . getElementsByTagName ( "ul" ) [ 0 ] , a . appendChild ( this . createMenuItem ( '<i class="fas fa-cut"></i>Ausschneiden' , this . onCutFeatureClick . bind ( this ) ) ) , a . appendChild ( this . createMenuItem ( '<i class="fas fa-arrows-alt"></i>Verschieben' ,
this . onModifyFeaturesClick . bind ( this ) ) ) , a . appendChild ( this . createMenuItem ( '<i class="fas fa-eraser"></i>L\u00f6schen' , this . onDeleteFeaturesClick . bind ( this ) ) ) , a . appendChild ( this . createMenuItem ( '<i class="far fa-dot-circle"></i>Puffern' , this . onBufferFeatureClick . bind ( this ) ) ) , a = this . createMenu ( '<i class="fas fa-caret-down"></i>Import' ) . getElementsByTagName ( "ul" ) [ 0 ] , a . appendChild ( this . createMenuItem ( '<i class="fas fa-file"></i>GeoJSON' , this . onImportGeoJSONClick . bind ( this ) ) ) , a . appendChild ( this . createMenuItem ( '<i class="fas fa-file"></i>GML' ,
this . onImportGMLClick . bind ( this ) ) ) , a . appendChild ( this . createMenuItem ( '<i class="fas fa-file"></i>Shapefile' , this . onImportShapefileClick . bind ( this ) ) ) , a . appendChild ( this . createMenuItem ( '<i class="fas fa-file"></i>Spatialite' , this . onImportSpatialiteClick . bind ( this ) ) ) , a . appendChild ( this . createMenuItem ( '<i class="fas fa-file"></i>GeoPackage' , this . onImportGeopackageClick . bind ( this ) ) ) , a = this . createMenu ( '<i class="fas fa-caret-down"></i>Export' ) . getElementsByTagName ( "ul" ) [ 0 ] , a . appendChild ( this . createMenuItem ( '<i class="fas fa-file"></i>PDF' ,
@ -218,7 +220,7 @@ l){k=e;m=!0;break}m||(e=c.folders.length,c.folders.push({title:h,parent:k,path:l
l [ 0 ] ; c . layers . push ( { folder : g , type : netgis . LayerTypes . XYZ , url : k . href , title : f . title , attribution : f . rights , active : f . active } ) ; break ; case "http://www.opengis.net/spec/owc-geojson/1.0/req/osm" : k = l [ 0 ] , c . layers . push ( { folder : g , type : netgis . LayerTypes . XYZ , url : k . href , title : f . title , attribution : f . rights , active : f . active } ) } } b . invoke ( netgis . Events . CONTEXT _UPDATE , c ) } } } ( ) ; netgis = netgis || { } ; netgis . Panel = function ( a ) { this . initElements ( a ) ; this . initEvents ( ) } ; netgis . Panel . prototype . initElements = function ( a ) { var b = document . createElement ( "section" ) ; b . className = "netgis-panel netgis-resize-right netgis-color-e netgis-shadow" ; this . addHeader ( b , a , this . onHeaderClick . bind ( this ) ) ; this . container = b } ; netgis . Panel . prototype . initEvents = function ( ) { this . resizeObserver = ( new ResizeObserver ( this . onResize . bind ( this ) ) ) . observe ( this . container ) } ; netgis . Panel . prototype . attach = function ( a ) { a . appendChild ( this . container ) } ;
netgis . Panel . prototype . addHeader = function ( a , b , c ) { var d = document . createElement ( "button" ) ; d . className = "netgis-button netgis-clip-text netgis-color-c" ; d . innerHTML = "<span>" + b + "</span><i class='netgis-icon fas fa-times'></i>" ; d . setAttribute ( "type" , "button" ) ; c && ( d . onclick = c ) ; a && a . appendChild ( d ) ; return d } ; netgis . Panel . prototype . show = function ( ) { this . container . classList . add ( "netgis-show" ) ; netgis . util . invoke ( this . container , netgis . Events . PANEL _TOGGLE , { panel : this , visible : ! 0 } ) } ;
netgis . Panel . prototype . hide = function ( ) { this . container . classList . remove ( "netgis-show" ) ; netgis . util . invoke ( this . container , netgis . Events . PANEL _TOGGLE , { panel : this , visible : ! 1 } ) } ; netgis . Panel . prototype . toggle = function ( ) { this . container . classList . toggle ( "netgis-show" ) ; netgis . util . invoke ( this . container , netgis . Events . PANEL _TOGGLE , { panel : this , visible : this . container . classList . contains ( "netgis-show" ) } ) } ; netgis . Panel . prototype . visible = function ( ) { return this . container . classList . contains ( "netgis-show" ) } ;
netgis . Panel . prototype . width = function ( ) { return this . container . getBoundingClientRect ( ) . width } ; netgis . Panel . prototype . onHeaderClick = function ( a ) { this . hide ( ) } ; netgis . Panel . prototype . onResize = function ( a ) { this . container . classList . contains ( "netgis-show" ) && ( a = this . container . getBoundingClientRect ( ) , netgis . util . invoke ( this . container , netgis . Events . PANEL _RESIZE , { width : a . width } ) ) } ; netgis = netgis || { } ; netgis . SearchParcel = function ( a ){ this . config = a ; this . initElements ( ) ; this . initEvents ( ) } ; netgis . SearchParcel . Events = Object . freeze ( { TOGGLE : "search-parcel-toggle" } ) ;
netgis . Panel . prototype . width = function ( ) { return this . container . getBoundingClientRect ( ) . width } ; netgis . Panel . prototype . onHeaderClick = function ( a ) { this . hide ( ) } ; netgis . Panel . prototype . onResize = function ( a ) { this . container . classList . contains ( "netgis-show" ) && ( a = this . container . getBoundingClientRect ( ) , netgis . util . invoke ( this . container , netgis . Events . PANEL _RESIZE , { width : a . width } ) ) } ; netgis = netgis || { } ; netgis . SearchParcel = function ( a ,b ){ this . client = b ; this . config = a ; this . initElements ( ) ; this . initEvents ( ) } ; netgis . SearchParcel . Events = Object . freeze ( { TOGGLE : "search-parcel-toggle" } ) ;
netgis . SearchParcel . prototype . initElements = function ( ) { this . container = document . createElement ( "section" ) ; this . container . className = "netgis-search-parcel" ; var a = document . createElement ( "section" ) ; this . top = a ; this . container . appendChild ( a ) ; var b = this . createInput ( "Gemarkungsname:" ) ; b . style . position = "relative" ; a . appendChild ( b ) ; this . nameInput = b . children [ 0 ] ; this . nameInput . setAttribute ( "title" , "ENTER: Ausw\u00e4hlen, ESCAPE: Zur\u00fccksetzen" ) ; this . nameInput . addEventListener ( "keyup" , this . onInputNameKey . bind ( this ) ) ;
this . nameLoader = document . createElement ( "div" ) ; this . nameLoader . className = "netgis-loader netgis-text-primary netgis-hide" ; this . nameLoader . innerHTML = "<i class='fas fa-spinner'></i>" ; b . appendChild ( this . nameLoader ) ; this . nameList = document . createElement ( "ul" ) ; a . appendChild ( this . nameList ) ; b = this . createInput ( "Gemarkungsnummer:" ) ; this . districtInput = b . children [ 0 ] ; a . appendChild ( b ) ; b = this . createInput ( "Flurnummer:" ) ; this . fieldInput = b . children [ 0 ] ; this . fieldInput . addEventListener ( "keyup" , this . onInputFieldKey . bind ( this ) ) ;
a . appendChild ( b ) ; b = this . createInput ( "<span>Flurst\u00fccksnummer (Z\u00e4hler/Nenner):</span>" ) ; this . parcelInputA = b . children [ 1 ] ; this . parcelInputA . style . width = "48%" ; this . parcelInputB = this . parcelInputA . cloneNode ( ! 0 ) ; this . parcelInputB . style . marginLeft = "4%" ; b . appendChild ( this . parcelInputB ) ; a . appendChild ( b ) ; b = document . createElement ( "button" ) ; b . setAttribute ( "type" , "button" ) ; b . addEventListener ( "click" , this . onParcelSearchClick . bind ( this ) ) ; b . className = "netgis-color-a netgis-hover-c" ; b . innerHTML = "Flurst\u00fccke suchen" ;
@ -229,8 +231,8 @@ netgis.SearchParcel.prototype.attach=function(a){a.appendChild(this.container)};
netgis . SearchParcel . prototype . createNameItem = function ( a ) { var b = document . createElement ( "li" ) , c = document . createElement ( "button" ) ; c . setAttribute ( "type" , "button" ) ; c . addEventListener ( "click" , this . onNameItemClick . bind ( this ) ) ; c . className = "netgis-color-e netgis-hover-a netgis-text-a netgis-hover-text-e" ; c . innerHTML = a ; b . appendChild ( c ) ; return b } ;
netgis . SearchParcel . prototype . createTable = function ( a ) { var b = document . createElement ( "div" ) ; b . className = "netgis-table-wrapper" ; var c = document . createElement ( "table" ) ; b . appendChild ( c ) ; var d = document . createElement ( "thead" ) ; c . appendChild ( d ) ; var e = document . createElement ( "tr" ) ; e . className = "netgis-color-d netgis-shadow" ; d . appendChild ( e ) ; for ( d = 0 ; d < a . length ; d ++ ) { var f = document . createElement ( "th" ) ; f . innerHTML = a [ d ] ; e . appendChild ( f ) } a = document . createElement ( "tbody" ) ; c . appendChild ( a ) ; return b } ;
netgis . SearchParcel . prototype . createParcelItem = function ( a , b , c , d , e , f , g ) { var h = document . createElement ( "tr" ) ; h . className = "netgis-hover-light netgis-hover-text-primary" ; h . setAttribute ( "title" , "Klicken zum zoomen" ) ; h . setAttribute ( "data-id" , d ) ; h . setAttribute ( "data-field" , a ) ; h . setAttribute ( "data-parcel-a" , b ) ; h . setAttribute ( "data-parcel-b" , c ) ; h . setAttribute ( "data-bbox" , f ) ; h . setAttribute ( "data-geom" , g ) ; h . addEventListener ( "pointerenter" , this . onParcelEnter . bind ( this ) ) ; h . addEventListener ( "pointerleave" , this . onParcelLeave . bind ( this ) ) ;
h . addEventListener ( "click" , this . onParcelClick . bind ( this ) ) ; f = document . createElement ( "td" ) ; h . appendChild ( f ) ; g = document . createElement ( "button" ) ; g . setAttribute ( "type" , "button" ) ; g . setAttribute ( "title" , "Geometrie \u00fcbernehmen" ) ; g . addEventListener ( "click" , this . onParcelImportClick . bind ( this ) ) ; g . className = "netgis-text-primary netgis-hover-primary" ; g . innerHTML = "<i class='fas fa-paste'></i>" ; f . appendChild ( g ) ; f = document . createElement ( "td" ) ; f . innerHTML = a ; h . appendChild ( f ) ; a = document . createElement ( "td" ) ; a . innerHTML =
b ; h . appendChild ( a ) ; b = document . createElement ( "td" ) ; b . innerHTML = c ; h . appendChild ( b ) ; c = document . createElement ( "td" ) ; c . innerHTML = d ; h . appendChild ( c ) ; d = document . createElement ( "td" ) ; d . innerHTML = e ; h . appendChild ( d ) ; return h } ;
h . addEventListener ( "click" , this . onParcelClick . bind ( this ) ) ; f = document . createElement ( "td" ) ; h . appendChild ( f ) ; this . client . editable && ( g = document . createElement ( "button" ) , g . setAttribute ( "type" , "button" ) , g . setAttribute ( "title" , "Geometrie \u00fcbernehmen" ) , g . addEventListener ( "click" , this . onParcelImportClick . bind ( this ) ) , g . className = "netgis-text-primary netgis-hover-primary" , g . innerHTML = "<i class='fas fa-paste'></i>" , f . appendChild ( g ) ) ; f = document . createElement ( "td" ) ; f . innerHTML = a ; h . appendChild ( f ) ; a = document . createElement ( "td" ) ;
a . innerHTML = b ; h . appendChild ( a ) ; b = document . createElement ( "td" ) ; b . innerHTML = c ; h . appendChild ( b ) ; c = document . createElement ( "td" ) ; c . innerHTML = d ; h . appendChild ( c ) ; d = document . createElement ( "td" ) ; d . innerHTML = e ; h . appendChild ( d ) ; return h } ;
netgis . SearchParcel . prototype . reset = function ( ) { this . hideBottom ( ) ; this . nameLoader . classList . add ( "netgis-hide" ) ; this . nameInput . value = "" ; this . districtInput . value = "" ; this . fieldInput . value = "" ; this . parcelInputA . value = "" ; this . parcelInputB . value = "" ; this . nameList . innerHTML = "" ; this . parcelInfo . innerHTML = "" ; this . parcelList . innerHTML = "" ; this . parcelTable . classList . add ( "netgis-hide" ) ; this . parcelReset . classList . add ( "netgis-hide" ) ; this . parcelCount . innerHTML = "" ; var a = this ; window . setTimeout ( function ( ) { a . top . scrollTop =
0 ; a . parcelTable . scrollTop = 0 } , 10 ) ; netgis . util . invoke ( this . container , netgis . Events . PARCELS _RESET , null ) } ; netgis . SearchParcel . prototype . onInputNameKey = function ( a ) { switch ( a . keyCode ) { case 13 : this . selectFirstName ( ) ; break ; case 27 : this . reset ( ) ; break ; default : this . requestName ( this . nameInput . value . trim ( ) ) } } ;
netgis . SearchParcel . prototype . requestName = function ( a ) { this . nameDebounce && window . clearTimeout ( this . nameDebounce ) ; if ( 0 !== a . length ) { var b = this . config . searchParcel . nameURL ; b = netgis . util . replace ( b , "{q}" , window . encodeURIComponent ( a ) ) ; this . nameDebounce = window . setTimeout ( this . onInputNameDebounce . bind ( this , b ) , 200 ) ; this . nameLoader . classList . remove ( "netgis-hide" ) } } ; netgis . SearchParcel . prototype . onInputNameDebounce = function ( a ) { netgis . util . request ( a , this . onInputNameResponse . bind ( this ) ) } ;