如何使用PostGIS创建和查询包含纬度/经度的表



如何使用PostGIS创建包含地理点(纬度/经度)的表?那么,插入到这个表中的格式是什么(使用SQL/PostgreSQL)?

创建表时是否只需要以下内容:

CREATE TABLE x (geog geography(point, 4326))

如果是,point是什么?什么时候使用ST_Point(X,Y)

这列应该有索引吗?

注意:之前回答的许多问题都详细介绍了如何转换。但我想从头开始创建一个空表,支持存储纬度和经度。

是的,用Geography创建表的语法就像CREATE TABLE x (geog geography(POINT,4326) );一样简单

在该命令中,POINT是该表将要存储的形状类型。其他可能性包括:

  • 字符串
  • 多边形
  • 多点
  • 多重限制
  • 多极子
  • 几何集合

在某些情况下,将Geography存储在表中是有意义的,因为它使您能够运行多个函数,这些函数将为您提供结果,就像您在球形地球上计算一样。例如,我可以将两个点存储为Geography(只知道每个点的长度),并且我可以很容易地在Meters 中找到它们之间的距离

ST_Point(X,Y)只是一个函数,它接受两个数字,然后创建一个点,其中X是第一个数字,Y是第二个数字。它不需要是一双Lat长的。事实上,该点不知道它在哪个坐标参考系中。

创建表后,在表中插入记录非常简单:INSERT INTO X (geog) VALUES (ST_GeographyFromText('POINT(2.5559 49.0083)'));

在这里,您正在为巴黎创建一个地理点,纬度为49.0083N,经度为2.5559 E

最新更新