Skip to content

Commit f52ab95

Browse files
committed
Fix empty layer extent
1 parent 3119276 commit f52ab95

File tree

2 files changed

+26
-15
lines changed

2 files changed

+26
-15
lines changed

internal/controller/mapfilegenerator/mapper.go

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
const (
1717
defaultMaxFeatures = 1000
1818
geopackagePath = "/srv/data/gpkg"
19+
defaultExtent = "-25000 250000 280000 860000"
1920
)
2021

2122
var mapserverDebugLevel = 0
@@ -68,25 +69,21 @@ func MapWFSToMapfileGeneratorInput(wfs *pdoknlv3.WFS, ownerInfo *smoothoperatorv
6869
DebugLevel: mapserverDebugLevel,
6970
},
7071
MaxFeatures: smoothoperatorutils.PointerVal(wfs.Spec.Service.CountDefault, strconv.Itoa(defaultMaxFeatures)),
71-
Layers: getWFSLayers(wfs.Spec.Service.FeatureTypes),
72+
Layers: getWFSLayers(wfs.Spec.Service),
7273
}
7374

7475
return input, nil
7576
}
7677

77-
func getWFSLayers(featureTypes []pdoknlv3.FeatureType) (layers []WFSLayer) {
78-
for _, featureType := range featureTypes {
79-
bbox := pdoknlv3.FeatureBbox{}
80-
if featureType.Bbox != nil {
81-
bbox = *featureType.Bbox
82-
}
78+
func getWFSLayers(service pdoknlv3.WFSService) (layers []WFSLayer) {
79+
for _, featureType := range service.FeatureTypes {
8380
layer := WFSLayer{
8481
BaseLayer: BaseLayer{
8582
Name: featureType.Name,
8683
Title: mapperutils.EscapeQuotes(featureType.Title),
8784
Abstract: mapperutils.EscapeQuotes(featureType.Abstract),
8885
Keywords: strings.Join(featureType.Keywords, ","),
89-
Extent: bbox.DefaultCRS.ToExtent(),
86+
Extent: getWFSExtent(featureType, service),
9087
MetadataID: featureType.DatasetMetadataURL.CSW.MetadataIdentifier,
9188
Columns: getColumns(featureType.Data),
9289
TableName: featureType.Data.GetTableName(),
@@ -104,6 +101,26 @@ func getWFSLayers(featureTypes []pdoknlv3.FeatureType) (layers []WFSLayer) {
104101
return
105102
}
106103

104+
func getWFSExtent(featureType pdoknlv3.FeatureType, service pdoknlv3.WFSService) string {
105+
if featureType.Bbox != nil {
106+
return featureType.Bbox.DefaultCRS.ToExtent()
107+
}
108+
if service.Bbox != nil {
109+
return service.Bbox.DefaultCRS.ToExtent()
110+
}
111+
return defaultExtent
112+
}
113+
114+
func getWMSExtent(serviceLayer pdoknlv3.Layer, serviceExtent string) string {
115+
if len(serviceLayer.BoundingBoxes) > 0 {
116+
return serviceLayer.BoundingBoxes[0].ToExtent()
117+
}
118+
if serviceExtent != "" {
119+
return serviceExtent
120+
}
121+
return defaultExtent
122+
}
123+
107124
func getColumns(data pdoknlv3.Data) []Column {
108125
columns := []Column{{Name: "fuuid"}}
109126
if data.GetColumns() != nil {
@@ -222,11 +239,6 @@ func MapWMSToMapfileGeneratorInput(wms *pdoknlv3.WMS, _ *smoothoperatorv1.OwnerI
222239

223240
// TODO fix linting (cyclop)
224241
func getWMSLayer(serviceLayer pdoknlv3.Layer, serviceExtent string, wms *pdoknlv3.WMS) WMSLayer {
225-
layerExtent := serviceExtent
226-
if len(serviceLayer.BoundingBoxes) > 0 {
227-
layerExtent = serviceLayer.BoundingBoxes[0].ToExtent()
228-
}
229-
230242
groupName := ""
231243
parent := serviceLayer.GetParent(&wms.Spec.Service.Layer)
232244
// If the layer falls directly under the toplayer, the groupname is omitted
@@ -255,7 +267,7 @@ func getWMSLayer(serviceLayer pdoknlv3.Layer, serviceExtent string, wms *pdoknlv
255267
Title: smoothoperatorutils.PointerVal(serviceLayer.Title, ""),
256268
Abstract: smoothoperatorutils.PointerVal(serviceLayer.Abstract, ""),
257269
Keywords: strings.Join(serviceLayer.Keywords, ","),
258-
Extent: layerExtent,
270+
Extent: getWMSExtent(serviceLayer, serviceExtent),
259271
MetadataID: metadataID,
260272
Columns: columns,
261273
GeometryType: nil,

internal/controller/shared_controller.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -608,7 +608,6 @@ func mutateConfigMapMapfileGenerator[R Reconciler, O pdoknlv3.WMSWFS](r R, obj O
608608
if err != nil {
609609
return err
610610
}
611-
// mapfileGeneratorConfig := "TODO" // TODO Implement mapfilegenerator.GetConfig for WMS
612611
configMap.Data = map[string]string{mapfileGeneratorInput: mapfileGeneratorConfig}
613612
}
614613
configMap.Immutable = smoothoperatorutils.Pointer(true)

0 commit comments

Comments
 (0)