Auswahl der Kartenprojektion (EPSG-Code) vereinfachen: Unterschied zwischen den Versionen
Zeile 1: | Zeile 1: | ||
+ | --[[Benutzer:Pkorduan|Pkorduan]] 11:01, 17. Mär 2008 (CET) | ||
+ | Mittlerweile, seit Version 1.6.8 kann das Problem der langen Liste auch ohne die Einträge in der Datenbank zu löschen gelößt werden. Es gibt die Möglickeit in der config.php die EPSG-Codes anzugeben, die man in der Auswahlliste bei "Stelle Wählen" haben möchte. | ||
+ | Dazu geben sie die folgende Zeile ein: | ||
+ | #Unterstützte SRIDs, nur diese stehen zur Auswahl bei der Stellenwahl | ||
+ | $supportedSRIDs = array(4326,2397,2398,2399,31466,31467,31468,32648,25832,25833,35833,325833); | ||
+ | Die Funktion zum Lesen der EPSG Codes in postgresql.php wurde entsprechend angepasst: | ||
+ | function read_epsg_codes(){ | ||
+ | global $supportedSRIDs; | ||
+ | $sql ="SELECT srid, srtext FROM spatial_ref_sys"; | ||
+ | # Wenn zu unterstützende SRIDs angegeben sind, ist die Abfrage diesbezüglich eingeschränkt | ||
+ | $anzSupportedSRIDs = count($supportedSRIDs); | ||
+ | if ($anzSupportedSRIDs > 0) { | ||
+ | $sql.=" WHERE auth_srid IN (".$supportedSRIDs[0]; | ||
+ | for ($i=1;$i<$anzSupportedSRIDs;$i++) { | ||
+ | $sql.=",".$supportedSRIDs[$i]; | ||
+ | } | ||
+ | $sql.=")"; | ||
+ | } | ||
+ | $sql.=" ORDER BY srid"; | ||
+ | #echo $sql; | ||
+ | $ret = $this->execSQL($sql, 4, 0); | ||
+ | if($ret[0]==0){ | ||
+ | while($row = pg_fetch_array($ret[1])){ | ||
+ | $explosion = explode('[', $row['srtext']); | ||
+ | if(strlen($explosion[1]) > 30){ | ||
+ | $explosion[1] = substr($explosion[1], 0, 30); | ||
+ | } | ||
+ | $row['srtext'] = $explosion[1]; | ||
+ | $epsg_codes[] = $row; | ||
+ | } | ||
+ | } | ||
+ | return $epsg_codes; | ||
+ | } | ||
--[[Benutzer:Hschmidt|Hschmidt]] 10:38, 13. Dez 2007 (CET)<br> | --[[Benutzer:Hschmidt|Hschmidt]] 10:38, 13. Dez 2007 (CET)<br> | ||
Die Auswahl der Kartenprojektion (EPSG-Code) im Menue "Stelle wählen" ist bei den in der Postgis-Tabelle spatial_ref_sys vorhandenen 2671 Datensätzen ziemlich mühselig und verwirrend.<br> | Die Auswahl der Kartenprojektion (EPSG-Code) im Menue "Stelle wählen" ist bei den in der Postgis-Tabelle spatial_ref_sys vorhandenen 2671 Datensätzen ziemlich mühselig und verwirrend.<br> |
Aktuelle Version vom 17. März 2008, 11:01 Uhr
--Pkorduan 11:01, 17. Mär 2008 (CET) Mittlerweile, seit Version 1.6.8 kann das Problem der langen Liste auch ohne die Einträge in der Datenbank zu löschen gelößt werden. Es gibt die Möglickeit in der config.php die EPSG-Codes anzugeben, die man in der Auswahlliste bei "Stelle Wählen" haben möchte. Dazu geben sie die folgende Zeile ein:
#Unterstützte SRIDs, nur diese stehen zur Auswahl bei der Stellenwahl $supportedSRIDs = array(4326,2397,2398,2399,31466,31467,31468,32648,25832,25833,35833,325833);
Die Funktion zum Lesen der EPSG Codes in postgresql.php wurde entsprechend angepasst:
function read_epsg_codes(){ global $supportedSRIDs; $sql ="SELECT srid, srtext FROM spatial_ref_sys"; # Wenn zu unterstützende SRIDs angegeben sind, ist die Abfrage diesbezüglich eingeschränkt $anzSupportedSRIDs = count($supportedSRIDs); if ($anzSupportedSRIDs > 0) { $sql.=" WHERE auth_srid IN (".$supportedSRIDs[0]; for ($i=1;$i<$anzSupportedSRIDs;$i++) { $sql.=",".$supportedSRIDs[$i]; } $sql.=")"; } $sql.=" ORDER BY srid"; #echo $sql; $ret = $this->execSQL($sql, 4, 0); if($ret[0]==0){ while($row = pg_fetch_array($ret[1])){ $explosion = explode('[', $row['srtext']); if(strlen($explosion[1]) > 30){ $explosion[1] = substr($explosion[1], 0, 30); } $row['srtext'] = $explosion[1]; $epsg_codes[] = $row; } } return $epsg_codes; }
--Hschmidt 10:38, 13. Dez 2007 (CET)
Die Auswahl der Kartenprojektion (EPSG-Code) im Menue "Stelle wählen" ist bei den in der Postgis-Tabelle spatial_ref_sys vorhandenen 2671 Datensätzen ziemlich mühselig und verwirrend.
Habe die Sätze auf die vom LAiV "Empfohlenen EPSG-Codes für Koordinatensysteme in
Mecklenburg-Vorpommern" reduziert mit:
delete from spatial_ref_sys where not srid = 4314 and not srid = 4178 and not srid = 4326 and not srid = 31468 and not srid = 31469
and not srid = 2398 and not srid = 2399 and not srid = 28402 and not srid = 28403 and not srid = 25832 and not srid = 25833
and not srid = 32632 and not srid = 32633
Wer doch eventuell kvwmap im Urlaub auf Hawaii oder auf Dienstreise in China einsetzen möchte sollte vorher ein Backup der vorhandenen Tabelle machen ;-)
Aber Vorsicht: bei der Version 1.6.6 gibt es noch ein Problem wenn man das Koordinatensystem umgestellt hat und dann nach einer Recherche auf den Kartenausschnitt zoomt. Das soll aber in der neuen nächsten Version behoben sein.