0

私は2つのテーブルを持っています:citycity_neighbor

cityすべての都市のリストが含まcity_neighborれ、特定の都市の近隣が含まれます。--neighbor_idは、テーブルinsert into city_neighbor (city_id, neighbor_id) Values(1,2)からの別の都市のIDです。city派手すぎるものはありません。

私が作成しなければならないのは、ユーザーが特定の半径内のすべての都市を選択できるページです。例:たとえば、半径5都市でシカゴに隣接するすべての都市を選択します。重要:半径5都市です。マイル/kmの半径を使用できません。このパススタイルの半径を使用する必要があります(緯度/経度に関連する応答は使用しないでください)。

2番目のシナリオ:ユーザーは、ジャンプの数で昇順で並べられたすべての都市を選択したいと考えています(ジャンプは、A(シカゴ)からBに移動するために通過する必要がある1つの都市です)。

何か案は?

PS私のデータベースには約8,000の都市が含まれています。

4

1 に答える 1

3
FUNCTION: CountNeighbors
IMPORT: city, depth
EXPORT: neighbors
ALGORITHM:
   neighbors = SET
   ++depth
   direct_neighbors = SELECT NEIGHBORS OF city
   neighbors += direct_neighbors
   IF depth < 5
       FOR EACH neighbor IN direct_neighbors
           neighbors += CountNeighbors(neighbor, depth, result)
于 2013-02-07T06:23:26.107 に答える