1
我想查找所有不比距離給定點的特定點距離更遠的點。與正常半徑搜索一樣,每個點只有半徑可變(每個條目使用點+半徑定義一個圓周)。PostGIS查找包含特定點的所有圓 - 如何定義索引
我的問題是如何爲這個問題定義一個索引(我現在使用的查詢如下),如果可以使用非GIS和GIS字段創建索引(如下面的Enable字段)。
目前,我有這個工作查詢它
SELECT "Locations"."Name",
FROM public."Locations"
WHERE
"Locations"."Enabled" = TRUE
AND ST_DWithin(
"Locations"."MyCoord"::geography,
ST_SetSRID(ST_MakePoint(<Given Long>, <Given Lat>),4326)::geography,
"Locations"."Radius");
與表像下面
Id: uuid
Name: text
Enabled: boolean
MyCoord: GEOGRAPHY(Point)
Radius: double precision
這是一個複製和粘貼錯誤,都是地理。但是,如果在索引中根本沒有使用半徑,只要MyCoord(它是圍繞它的圓的中心)的索引如何加快搜索速度(AFAIK至少需要一個邊界框來加快搜索速度)。 – Fionn
我在你的查詢中看到的細微差別是你有一個靜態距離來檢查,但在我的查詢中,距離以及一個座標位於查詢表中。所以你的查詢只有一個可變元素,而我有兩個。 – Fionn
你檢查了嗎?這個元素也是我在索引創建後想到的一個變量......沒有區別。正如你所看到的,索引定義中沒有300 ... – Jendrusk