2017-05-08 1 views
0

私は緯度と経度の2つの列(実数型)を持つテーブルを持っています。 これらのポイントがベルギーにあるかどうかは、SQLクエリ(postgreSQL)から直接知りたいです。 は、私はすでにパイソン(Geopy)でいくつかのことを見てきましたが、要求の数が限られている(geopy.exc.GeocoderServiceError:HTTPエラー429:あまりにも多くのリクエスト )...postgresql latitude longitude belgium

任意のアイデア? 種類について

答えて

1

PostGISエクステンションを使用して直接Postgresで実行できます。ベルギーの図形をテーブルに格納する必要があります。

呼び出す関数はST_CONTAINSで、最初のジオメトリに2番目のジオメトリが含まれている場合はTrueまたはFalseを返します。

SELECT layer_pt.* FROM layer_belgium, layer_pt WHERE ST_Contains(layer_belgium.geom, layer_pt.geom); 

最初の形状は、ベルギーの形状になると、もう一つはあなたのポイントになります。他の国がある場合は、ベルギーのみを取得するようにクエリを制限する必要があります。

ポイントジオメトリがなく、その座標だけなので、オンザフライでcreate the point geometryにする必要があります。

SELECT layer_pt.* FROM layer_belgium, layer_pt WHERE ST_Contains(layer_belgium.geom, ST_GeomFromText('POINT(' || layer_pt.y || ' ' || layer_pt.x || ')', 4326)); 

あなたはGIS StackExchange

+0

を見て、PostGISのでより多くの助けを必要とするなら、それは非常に便利です、ありがとうございます! –

+0

大歓迎です! – JGH

関連する問題