如何使用PostGIS创建和查询包含lat / long的表?

时间:2017-01-05 00:59:33

标签: sql postgresql gis postgis

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

创建表格只会出现以下内容:

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

如果是,那么point是什么?您何时会使用ST_Point(X,Y)

此列是否应该有索引?

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

1 个答案:

答案 0 :(得分:1)

是的,使用地理位置创建表格的语法就像CREATE TABLE x (geog geography(POINT,4326) );

一样简单

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

  • LINESTRING
  • POLYGON
  • MULTIPOINT
  • MULTILINESTRING
  • MULTIPOLYGON
  • GEOMETRYCOLLECTION

在某些情况下,将地理位置存储在表格中的原因是,它使您能够运行several functions,这样可以为您提供结果,就像您在球形地球上计算一样。因此,例如,我可以将两个点存储为地理位置(仅知道每个点的长度),并且我可以在米中轻松找到它们之间的距离

ST_Point(X,Y)只是一个接收两个数字的函数,然后创建一个点,其中X为第一个数字,Y为第二个数字。它不一定是Lat-long对。事实上,这个Point没有它所处的坐标参考系统的概念。

创建表后,在其中插入记录就像下面这样简单: INSERT INTO X (geog) VALUES (ST_GeographyFromText('POINT(2.5559 49.0083)'));

此处您正在为巴黎创建地理位置,纬度为49.0083N,经度为2.5559 E