所以我有2個表:的SQLite - >尋找兩個最接近的點到兩個不同點
route(#id)
step(#id,route_id,lat,lng,sequence_order)
而且2 GPS座標:M1(LAT1,lng1)M2(LAT2,lng2)。
所以,我想找到所有的路線,從2個GPS座標的每個至少有一步距離1.0英里的距離,並且按升序排列。因此,如果我找到Route#25,它距M1有0.4英里的步驟S1,距離M2 0.2英里的步驟S2,只有S1的序列號比S2的序列號差。是否有意義 ?
假設我添加了一個函數來計算距離,我可以申請做很容易:
SELECT r.id,s1.lat,s1.lng,s2.lat,s2.lng,distance(s1.lat,s1.lng,lat1,lng1) as d1,distance(s2.lat,s2.lng,lat2,lng2) as d2 FROM route r
INNER JOIN step s1 ON r.id = s1.route_id
INNER JOIN step s2 ON r.id = s2.route_id AND s1.sequence_order < s2.sequence_order
WHERE d1<1.0
AND d2<1.0
我想有行爲,是隻保留最近的座標(s1.lat ,s1.lng)和(s2.lat,s2.lng)到我的點。所以我想我可以這樣做:
ORDER BY d1
ORDER BY d2
GROUP BY r.id
但它只是崩潰。
有什麼想法?
似乎每個'Route'都有一些序列化的'Steps'。但是什麼是表'ZSTEP'?它看起來像你想要一個自我加入表「步驟」。也許真正的桌子被命名爲'ZSTEP',並且爲了這個問題的目的您將其名稱更改爲'Step',但忘記更改第二個實例?我在想這個太多了嗎? ;) – onedaywhen 2010-07-16 11:26:32
其實ZSTEP是我發佈時忘記編輯的真名。 – Julien 2010-07-16 11:32:55