Çok noktalı ve nokta PostGIS


12

Yalnızca bir noktayı saklamak için kullandığımı bilerek 'nokta' yerine 'çoklu nokta' geometri türünü kullanmak normal midir?

Çok noktadan noktaya nasıl dönüştürebilirim?


Çok parçalı geometrileri nasıl kontrol edeceğinizi ve sütun türlerini çoktan
John

Yanıtlar:


16

"Çoklu Nokta" yı "Nokta" ya dönüştürmek için ST_Dump kullanmanız gerekir , örneğin:

SELECT (ST_Dump(the_geom)).geom AS the_POINT_geom
  FROM MULTIPOINT_table;

"Çoklu" veya tekli geometrileri kullanma konusunda şu mantığı kullanıyorum:

  • her geometrinin farklı nitelikleri varsa -> Tek
  • bir grup geometri aynı özelliklere sahipse -> "Multi"

9

Tek noktadan bir noktaya çıkarmak için en kolay yolu MULTIPOINTolduğunu ST_GeometryN:

SELECT ST_AsText(ST_GeometryN('MULTIPOINT ((1 1))', 1));
--POINT(1 1)

Bu, set-döndürme işlevinin kullanılamadığı durumlarda olası sorunları önler.

Sadece POINTtip geometriler için kullanılabilen bazı önemli optimizasyonlar vardır (özellikle PostGIS'in önceki sürümlerinde), bu nedenle tek noktaların POINTiyi bir uygulama olarak depolanması . A POINTayrıca a'dan yaklaşık% 25 daha az alan kullanır MULTIPOINT.

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.