PostGIS’te mevcut verilerin SRID’si değiştiriliyor mu?


50

Shapefile verilerimi PostGIS'e aktarırken, uygun Projeksiyonu seçmedim.

Koordinatları dönüştürmeden şimdi verinin SRID'sini nasıl değiştiririm?

Yanıtlar:


83

Bunu sizin için yapan tek bir satır fonksiyonu var. Sadece aşağıdaki SQL sorgusunu kullanın:

select UpdateGeometrySRID('Schema Name', 'mytable', 'the_geom', newSRID) ;

Fakat, eğer benim gibiyseniz, düşük seviyeli minyatür adımlarla ilgilenirsiniz. Mantıken konuşursak, yukarıdaki işlev aşağıdaki dört adım işlemine eşdeğerdir:

  1. Geometry_columns tablosunda, SRID'yi istenen değere güncelleyin.

  2. Aşağıdaki SQL deyimini kullanarak kısıtlamayı masaya bırakın.

    ALTER TABLE mytable DROP CONSTRAINT enforce_srid_the_geom;

  3. Aşağıdaki SQL deyimini kullanarak geometrinin SRID'lerini güncelleyin

    UPDATE mytable SET the_geom = ST_SetSRID(the_geom, newSRID);

  4. Aşağıdaki SQL deyimini kullanarak kısıtlamayı geri ekleyin

    ALTER TABLE mytable

    ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (newSRID));


1
Daha fazla bilgi ve bağlantılar için postgis.org/docs/ST_SetSRID.html adresini ziyaret edin
— BradHards

13

PostGIS 2.x ile, geometri sütunları genellikle benzeri yazım modlarını kullanır geometry(Point, 1234). Bunlar için tek adımda geometri sütun tipini doğrudan değiştirmek için ALTER TABLE'ı kullanabilirsiniz .

Örneğin, SRID ayarlamak için geomde mytableWGS84 için kullanın ST_SetSRID :

ALTER TABLE mytable
  ALTER COLUMN geom
    TYPE geometry(Point, 4326)
    USING ST_SetSRID(geom, 4326);

Bunun yalnızca SRID'yi değiştireceğini, ancak koordinat verilerini dönüştürmeyeceğini unutmayın.


1
Önemsiz bir değişiklikle bu, desteklemeyen coğrafya sütunlarıyla da çalışacaktır UpdateGeometrySRID.
— dsz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.