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.