2013-09-24 89 views
2

我正在遷移PostGIS系統中的所有信息,並提供關於數千個運動空間的完整信息。對於所有這些空間我有經度和緯度值,而PostGis需要一個幾何值,這個列已經在我的表「Location」中。Postgis經度,緯度到幾何postgresql

該申請的SRID是23030.

我已經看了如何來計算經度和緯度幾何值,我發現:

update location set point=ST_GeomFromText('POINT('|| longitud || ' ' || latitud ||')',23030); 
UPDATE georrepositorio.geometria SET point = ST_SetSRID(ST_Point(longitud, latitud),23030); 
UPDATE georrepositorio.geometria SET POINT = ST_SetSRID(ST_MakePoint(longitud,latitud),23030); 

我總是得到這樣的字符串:"0101000020F6590000894327550B97114104EA99EA599D4E41"

在我正在構建的Web應用程序中,如果我標記要查找空間的位置,它會在表「位置」插入一個字符串,如:"0101000020F659000000000020DFB115C00000008053244240",它與我使用這些函數的字符串看起來相似。

問題是我無法找到每個空間,因爲有這麼多,所以我需要一個大規模的遷移,並使用這些函數來計算幾何列不起作用。因爲沒問題,這些函數會計算幾何值,但是當您查詢應用程序時不會顯示它們。

任何人都知道如何從緯度和經度計算geomtry?任何東西

回答

2

首先,幾何以二進制形式存儲,您將其看作「0101000020 ...」,這稱爲well-known binary (WKB)。對於POINT幾何圖形,可以使用ST_X(point)(經度)和ST_Y(point)(緯度)提取座標序號。您也可以使用ST_AsText(point)作爲人可讀的WKT表示。

EPSG:23030是一個投影空間參考系統(SRS),東部和北部以米爲單位。但是,如果您的座標數據是經度和緯度,則需要使用不同的SRS,例如EPSG:4326。一旦正確存儲,可以使用ST_Transform(point, 23030)爲應用程序重新投影數據。

+0

謝謝邁克!我喜歡那樣 –