diff --git a/tileserver.php b/tileserver.php index 0991b61..1a9c842 100644 --- a/tileserver.php +++ b/tileserver.php @@ -734,7 +734,13 @@ class Wmts extends Server { * @return Object */ public function parseTileMatrix($layer, $tileMatrix){ - + + //process projection + if(isset($layer['proj4'])){ + preg_match_all("/([^+= ]+)=([^= ]+)/", $layer['proj4'], $res); + $proj4 = array_combine($res[1], $res[2]); + } + for($i = 0; $i < count($tileMatrix); $i++){ if(!isset($tileMatrix[$i]['id'])){ @@ -760,11 +766,8 @@ class Wmts extends Server { $tileMatrix[$i]['extent'][0], $tileMatrix[$i]['extent'][3] ); } - if (!isset($layer['axis'])) { - $layer['axis'] = $layer['xy']; - } // Origins of geographic coordinate systems are setting in opposite order - if ($layer['axis'] == 'yx') { + if (isset($proj4) && $proj4['proj'] === 'longlat') { $tileMatrix[$i]['origin'] = array_reverse($tileMatrix[$i]['origin']); } if(!isset($tileMatrix[$i]['scale_denominator'])){ @@ -907,7 +910,7 @@ class Wmts extends Server { ); } } - + header('Content-type: application/xml'); echo '