232 votes

Quel type de données pour la latitude et la longitude ?

Je suis novice en matière de PostgreSQL et PostGIS. Je veux stocker les valeurs de latitude et de longitude dans une table de base de données PostgreSQL 9.1.1. Je vais calculer la distance entre deux points, trouver les points les plus proches en utilisant ces valeurs de localisation.

Quel type de données dois-je utiliser pour la latitude et la longitude ?

4voto

Irshad Khan Points 31

Utilisez Point pour stocker la longitude et la latitude dans une seule colonne :

CREATE TABLE table_name (
    id integer NOT NULL,
    name text NOT NULL,
    location point NOT NULL,
    created_on timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT table_name_pkey PRIMARY KEY (id)
)

Créer une indexation sur une colonne 'localisation' :

CREATE INDEX ON table_name USING GIST(location);

L'index GiST est capable d'optimiser la recherche du "plus proche voisin" :

SELECT * FROM table_name ORDER BY location <-> point '(-74.013, 40.711)' LIMIT 10;

Note : Le premier élément du point est la longitude et le deuxième élément est la latitude.

Pour plus d'informations, consultez ce site Opérateurs de requêtes .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X