2012-04-06 93 views
3

我剛開始使用MySQL Geospatial擴展,希望能夠在我的500K點數據庫中加快緯度/經度範圍搜索。創建了一個新的GEOMETRYp從MySQL Geometry列中檢索座標

問題:返回p & AsText(p)值進行簡單的(BLOB),而不是在十進制度。沒有值由GeomFromText(p)返回。因爲我有冗餘的latlng列,所以我仍然設法得到我需要的緯度值。但我正在考慮刪除latlng列,並只依靠p

轉換現有的緯度/經度值如果使用AsText你會得到你的對象WKT來分

UPDATE listings SET p = GeomFromText('POINT(39.948177 -75.174324)') WHERE listing_id = '585221'; 

嘗試從GEOMTRY山坳p

SELECT listing_id, lat, lng, GeomFromText(p), AsText(p), p from listings WHERE MBRContains(GeomFromText('Polygon((39 -76, 40 -76, 40 -74, 39 -74, 39 -76))'), p) 
+0

當您使用AsText(p)而不是GeomFromText(p)時會發生什麼? – 2012-04-06 13:22:05

+0

'AsText(p)'也返回'(BLOB)' – Nyxynyx 2012-04-06 13:39:32

回答

5

檢索緯度LNG格式。要提取點座標使用:

SELECT listing_id X(p), Y(p) 
FROM listings 
WHERE MBRContains(GeomFromText('Polygon((39 -76, 40 -76, 40 -74, 39 -74, 39 -76))'), p) 

的MySQL可能返回的AsText結果作爲BLOB,因爲它可以變得很長,複雜的對象。只是,無論你用什麼來顯示結果都無法應付,但文字就在那裏。