sql >> Databáze >  >> RDS >> PostgreSQL

Vytvoření tabulky pro hodnoty polygonu v Postgis a vložení

Nemám dostatečnou pověst, abych okomentoval vaši otázku, existuje odkaz, který by se vám mohl hodit:SQL dotaz pro point-in-polygon pomocí PostgreSQL

Přidání rozšíření pro vaši databázi

CREATE EXTENSION postgis;

Vytváření tabulky

CREATE TABLE areas (
    id SERIAL PRIMARY KEY,
    name VARCHAR(64),
    polygon GEOMETRY
);

Vytvoření indexu nad polygonovým polem

CREATE INDEX areas_polygon_idx ON areas USING GIST (polygon);

Vkládání záznamu

INSERT INTO areas (name, polygon) VALUES (
    'A',
    ST_GeometryFromText('POLYGON((50.6373 3.0750,50.6374 3.0750,50.6374 3.0749,50.63 3.07491,50.6373 3.0750))')
);

Dotazování

SELECT name FROM areas WHERE ST_Contains(polygon, ST_GeomFromText('POINT(50.637 3.074)'));
 name 
------
(0 rows)

SELECT name FROM areas WHERE ST_Contains(polygon, ST_GeomFromText('POINT(50.63735 3.07495)'));
 name 
------
 A
(1 row)



  1. Změna časového pásma po připojení k databázi pomocí set time_zone =...

  2. Zakázání sdružování připojení v Rails pro použití PgBouncer

  3. Může dosažení MAX_UTILIZATION for PROCESSES způsobit výjimku Nelze získat spravované připojení?

  4. Samostatná databáze PostgreSQL pro každého klienta s automatickými migracemi při vytváření klienta v jedné aplikaci Django a na stejném serveru