sql >> Databasteknik >  >> RDS >> PostgreSQL

Skapa en tabell för polygonvärden i Postgis och infoga

Jag har inte tillräckligt rykte för att kommentera din fråga, det finns en länk som kan vara användbar:SQL-fråga för punkt-i-polygon med PostgreSQL

Lägger till tillägg för din databas

CREATE EXTENSION postgis;

Skapar tabell

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

Skapar index över polygonfält

CREATE INDEX areas_polygon_idx ON areas USING GIST (polygon);

Infogar post

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

Frågar

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. Hur man ställer in binära data med setBlob() i C++-kontakten

  2. MySQL-kollation för att lagra flerspråkig data på okänt språk

  3. Hur SCHEMA_NAME() fungerar i SQL Server

  4. SQL primär nyckel