postgresql - 纬度和经度的数据类型是什么?

标签 postgresql types latitude-longitude postgis

我是 PostgreSQL 和 PostGIS 的新手。我想在 PostgreSQL 9.1.1 数据库表中存储纬度和经度值。我将计算两点之间的距离,使用此位置值找到更近的点。

我应该为纬度和经度使用哪种数据类型?

最佳答案

您可以使用数据类型 point - 结合 (x,y) 可以是你的纬度/经度。占用16个字节:内部2个float8数字。

或者让它成为 float 类型的两列(= float8double precision)。每个 8 个字节。
或者 real (= float4) 如果不需要额外的精度。每个 4 个字节。
甚至 numeric如果您需要绝对精度。每组 4 位数字 2 个字节,加上 3 - 8 个字节的开销。

阅读关于numeric types的精美手册和 geometric types .


geometrygeography数据类型由附加模块 PostGIS 提供,并占据表格中的 一个 列。每个点占32字节。那里有一些额外的开销,比如 SRID。这些类型存储 (long/lat),而不存储 (lat/long)。

开始阅读 PostGIS manual here .

关于postgresql - 纬度和经度的数据类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8150721/

相关文章:

postgresql - 无法将 SSL 安全数据库连接到 typeorm

sql - 如何高效查询带有标签的项目

c# - 我如何通过 postgres 加密并通过 c# 解密?

java - JPA - INSERT 后的 PK 属性问题

javascript - "Subtype"与联合类型不兼容

types - 我如何在 Rust 中惯用地将 bool 转换为 Option 或 Result?

c - 将 int 保存为 char?

algorithm - 在有界区域内随机生成坐标

plotly - 以纬度和经度为 plotly 创建等值线 map

distance - 给定(纬度,经度),距离和方位的点,如何获得新的纬度和经度