PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Création d'une table pour les valeurs Polygon dans Postgis et insertion

Je n'ai pas assez de réputation pour commenter votre question, il y a un lien qui pourrait vous être utile :Requête SQL pour un point dans un polygone à l'aide de PostgreSQL

Ajouter une extension pour votre base de données

CREATE EXTENSION postgis;

Création du tableau

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

Création d'un index sur un champ de polygone

CREATE INDEX areas_polygon_idx ON areas USING GIST (polygon);

Insertion d'enregistrement

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))')
);

Interrogation

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)