@@ -353,6 +353,11 @@ func (v2Service WMSService) MapLayersToV3() pdoknlv3.Layer {
353353
354354 if ok {
355355 topLayer = & notGroupedLayers [0 ]
356+ var bbox * pdoknlv3.WMSBoundingBox
357+ if len (topLayer .BoundingBoxes ) > 0 {
358+ bbox = & topLayer .BoundingBoxes [0 ]
359+ }
360+ topLayer .BoundingBoxes = getDefaultWMSLayerBoundingBoxes (bbox )
356361 }
357362 }
358363
@@ -362,10 +367,10 @@ func (v2Service WMSService) MapLayersToV3() pdoknlv3.Layer {
362367 // it needs to be created with defaults from the service
363368 // and in this case the middleLayers are all layers without a group
364369 if topLayer == nil {
365- boundingBoxes := make ([] pdoknlv3.WMSBoundingBox , 0 )
370+ var bbox * pdoknlv3.WMSBoundingBox
366371 if v2Service .Extent != nil {
367372 bboxStringList := strings .Split (* v2Service .Extent , " " )
368- bbox := pdoknlv3.WMSBoundingBox {
373+ bbox = & pdoknlv3.WMSBoundingBox {
369374 CRS : v2Service .DataEPSG ,
370375 BBox : smoothoperatormodel.BBox {
371376 MinX : bboxStringList [0 ],
@@ -374,15 +379,14 @@ func (v2Service WMSService) MapLayersToV3() pdoknlv3.Layer {
374379 MaxY : bboxStringList [3 ],
375380 },
376381 }
377- boundingBoxes = append (boundingBoxes , bbox )
378382 }
379383
380384 topLayer = & pdoknlv3.Layer {
381385 Title : & v2Service .Title ,
382386 Abstract : & v2Service .Abstract ,
383387 Keywords : v2Service .Keywords ,
384388 Layers : []pdoknlv3.Layer {},
385- BoundingBoxes : boundingBoxes ,
389+ BoundingBoxes : getDefaultWMSLayerBoundingBoxes ( bbox ) ,
386390 Visible : true ,
387391 }
388392
@@ -410,6 +414,102 @@ func (v2Service WMSService) MapLayersToV3() pdoknlv3.Layer {
410414 return * topLayer
411415}
412416
417+ func getDefaultWMSLayerBoundingBoxes (defaultBbox * pdoknlv3.WMSBoundingBox ) []pdoknlv3.WMSBoundingBox {
418+ defaultBboxes := []pdoknlv3.WMSBoundingBox {
419+ {
420+ CRS : "EPSG:28992" ,
421+ BBox : smoothoperatormodel.BBox {
422+ MinX : "-25000" ,
423+ MinY : "250000" ,
424+ MaxX : "280000" ,
425+ MaxY : "860000" ,
426+ },
427+ },
428+ {
429+ CRS : "EPSG:25831" ,
430+ BBox : smoothoperatormodel.BBox {
431+ MinX : "-470271" ,
432+ MinY : "5.56231e+06" ,
433+ MaxX : "795163" ,
434+ MaxY : "6.18197e+06" ,
435+ },
436+ },
437+ {
438+ CRS : "EPSG:25832" ,
439+ BBox : smoothoperatormodel.BBox {
440+ MinX : "62461.6" ,
441+ MinY : "5.56555e+06" ,
442+ MaxX : "397827" ,
443+ MaxY : "6.19042e+06" ,
444+ },
445+ },
446+ {
447+ CRS : "EPSG:3034" ,
448+ BBox : smoothoperatormodel.BBox {
449+ MinX : "2.61336e+06" ,
450+ MinY : "3.509e+06" ,
451+ MaxX : "3.22007e+06" ,
452+ MaxY : "3.84003e+06" ,
453+ },
454+ },
455+ {
456+ CRS : "EPSG:3035" ,
457+ BBox : smoothoperatormodel.BBox {
458+ MinX : "3.01676e+06" ,
459+ MinY : "3.81264e+06" ,
460+ MaxX : "3.64485e+06" ,
461+ MaxY : "4.15586e+06" ,
462+ },
463+ },
464+ {
465+ CRS : "EPSG:3857" ,
466+ BBox : smoothoperatormodel.BBox {
467+ MinX : "281318" ,
468+ MinY : "6.48322e+06" ,
469+ MaxX : "820873" ,
470+ MaxY : "7.50311e+06" ,
471+ },
472+ },
473+ {
474+ CRS : "EPSG:4258" ,
475+ BBox : smoothoperatormodel.BBox {
476+ MinX : "50.2129" ,
477+ MinY : "2.52713" ,
478+ MaxX : "55.7212" ,
479+ MaxY : "7.37403" ,
480+ },
481+ },
482+ {
483+ CRS : "EPSG:4326" ,
484+ BBox : smoothoperatormodel.BBox {
485+ MinX : "50.2129" ,
486+ MinY : "2.52713" ,
487+ MaxX : "55.7212" ,
488+ MaxY : "7.37403" ,
489+ },
490+ },
491+ {
492+ CRS : "CRS:84" ,
493+ BBox : smoothoperatormodel.BBox {
494+ MinX : "2.52713" ,
495+ MinY : "50.2129" ,
496+ MaxX : "7.37403" ,
497+ MaxY : "55.7212" ,
498+ },
499+ },
500+ }
501+ bboxes := []pdoknlv3.WMSBoundingBox {}
502+ if defaultBbox != nil {
503+ bboxes = []pdoknlv3.WMSBoundingBox {* defaultBbox }
504+ }
505+ for _ , bbox := range defaultBboxes {
506+ if defaultBbox == nil || bbox .CRS != defaultBbox .CRS {
507+ bboxes = append (bboxes , bbox )
508+ }
509+ }
510+ return bboxes
511+ }
512+
413513func (v2Layer WMSLayer ) MapToV3 (v2Service WMSService ) pdoknlv3.Layer {
414514 layer := pdoknlv3.Layer {
415515 Name : & v2Layer .Name ,
0 commit comments