Postgresql

如何在沒有 PostGIS 的情況下儲存緯度和經度?

  • January 21, 2019

我知道這裡有類似的問題已經得到解答,但不幸的是,它們都不適合我。我正在通過創建一個頁面來破解我的方式,該頁面將在地圖上顯示多個位置。我正在使用 HTML 5 映射和Google地圖。我已將我擁有的地址轉換為 long/lat,並將它們與其他屬性一起儲存在 CSV 文件中。

我嘗試儲存為點、字元變化和數字,以及嘗試創建自己的定義,但沒有成功。該表已經存在,我只需要添加這些額外的列。我寧願不使用 PostGIS,因為這感覺就像增加了額外的複雜性,而我完全可以不用。

所以你有什麼建議?

沒有 PostGIS 的最簡單的解決方案是將 lat/long 儲存為兩個數字列。

numeric精確度。

double precision或者即使real你不需要精度。

我看不出數據類型point不能正常工作的原因。根據文件

點是幾何類型的基本二維建構塊。point使用以下任一語法指定類型的值:

( x , y )
  x , y

其中xy是各自的座標,作為浮點數。

有關的:

我寧願不使用 PostGIS,因為這感覺就像增加了額外的複雜性,而我完全可以不用。

這很愚蠢。首先,沒有 SRS ID 的緯度和經度沒有說明這些點的位置。它們是投影的還是未投影的?在哪裡POINT( 0 0 )?你是從東方還是西方向消極的方向講話?

只需使用 PostGIS。這並不復雜。它可以解決更多問題,因此您不必這樣做。

CREATE TABLE foo ( geog geography(POINT, 4326) );
INSERT INTO foo (geog) ( ST_MakePoint(0,0) );

與幾何比較point

即使在簡單的情況下,

  • PostGIS 中的一個點可以導出為 GeoJSON ST_AsGeoJSON,或多種導出格式

  • 可以聚合成一個GEOMETRYCOLLECTION

  • 可以聚合成一條連接所有點的線。

  • 可以聚合成一個多邊形 ( ST_ConvexHull)

  • 可以使用計算點之間的距離ST_Distance

  • 可以重新投影到其他參考系統

  • 可以被索引

    • 受 KNN 對索引(查找最近點)查詢的影響<=>
    • 查找 X 範圍內的所有興趣點ST_DWithin

引用自:https://dba.stackexchange.com/questions/90072