我寫此查詢和它的作品,雖然這是一個有點慢:ST_Distance和「爲」在PostGIS的
SELECT name,
(ST_Distance(ST_Transform(way,900913),ST_Transform(ST_GeomFromText('POINT (-6.2222 53.307)',4326),900913)))
FROM ga_osm_latlong_polygon
WHERE
((ST_Distance(ST_Transform(way,900913),ST_Transform(ST_GeomFromText('POINT (-6.2222 53.307)',4326),900913)))
<= 1000)
ORDER BY
(ST_Distance(ST_Transform(way,900913),ST_Transform(ST_GeomFromText('POINT (-6.2222 53.307)',4326),900913))),
name
我試圖重寫它在一個更優雅的方式,用「爲」 :
SELECT name,
(ST_Distance(ST_Transform(way,900913),ST_Transform(ST_GeomFromText('POINT (-6.2222 53.307)',4326),900913))) AS d
FROM ga_osm_latlong_polygon
WHERE (d <= 1000)
ORDER BY d, name
不幸的是,我得到: 錯誤:列 「d」 不存在
約我越來越錯在這裏是什麼你知道嗎?
謝謝!
謝謝!由於某些原因,類型'地理'沒有在我的PostGIS中定義。我需要的實際上是以米爲單位的半徑範圍內的對象(存儲在緯度/經度),這就是爲什麼我要改變mercator中的所有內容。任何其他方法呢? – Mulone 2011-02-03 10:48:50