Boş bir PostGIS tablosunun geometri türü nasıl alınır?


10

Satırları içine eklemeden önce bir PostGIS tablonun geom alanının geometri türünü bilmek gerekiyor bir web uygulaması var. Geom sütununun geometri türünü belirlemek için aşağıdaki sorguyu kullanın:

SELECT GeometryType(geom) FROM my_schema.building LIMIT 1

Bu, gerçek bir satırın geometri türünü döndürür, bu nedenle masam boş olduğunda çalışmaz. Geometri sütununun geometri tipini nasıl belirlerim?

Yanıtlar:


17

Sorgu geometry_columnsbu şekilde tabloya karşı çalıştırılabilir

SELECT type 
FROM geometry_columns 
WHERE f_table_schema = 'my_schema' 
AND f_table_name = 'building' 
and f_geometry_column = 'geom';

(veya bir coğrafya türü kullanıyorsanız geometry_columns, geography_columnsve f_geometry_columnile birlikte değiştirin f_geography_column)


Cevabın içindeki sql geometrytür için geri dönerken, geometrinin nokta veya çizgi olup olmadığını hala bilemiyoruz.
giser

1
Bu, geometri sütununuzun "geometri" geometri tipine ayarlandığı anlamına gelir (yani her türlü geometriyi kabul eder). Bu durumda, ST_GeometryType
atlefren 13:08

SELECT GeometryType(geom) FROM my_schema.building LIMIT 1OP yazısı gibi mi? Tablo boşsa çalışmaz.
giser

Ve bir şey daha, tüm geometri sütunu geometrytüm tablo için yazacak şekilde ayarlanmışsa , içerebilecek tüm tabloları içeren bir görünüm oluşturabilir miyim points lines polyogn?
giser

1
Sağ. Bir benzetme: bir geom kolonunun "geometri" tipinde olduğunu bildirmek, herhangi bir renkteki çoraplar için bir çekmece atamaya benzer. Bu çekmecede ne renk çorap olduğunu kontrol etmek, boşken mümkün değildir.
atlefren

3

Geometry_columns tablosuna bakın. Srid ve geometri tipine sahip tüm coğrafi sütunlar burada kayıtlıdır. GEOMETRY tipinde bir sütun varsa, tüm geometri tipleri saklanabilir.

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.