ジオメトリ タイプ フィールドを使用して、いくつかのマップ ゾーンをテーブルに保存しました。
したがって、挿入は次のようになります。
INSERT INTO zones (zoneName, coords) VALUES ('name',
PolygonFromText('POLYGON((
41.11396418691335 1.2562662363052368,
41.11370552595821 1.2560248374938965,
41.11851079510035 1.2459397315979004,
41.11880984984478 1.2461864948272705,
41.11396418691335 1.2562662363052368))'));
次に、ユーザーの位置を取得し、彼がゾーン内にいるかどうかを知る必要があります。これはこれでうまくいきます:
SELECT id
FROM zones
WHERE MBRContains(coords,GeomFromText('POINT(41.117783 1.260590)'))
ただし、ユーザーの位置が完全ではない場合もあるため、ユーザーの位置に最も近いゾーンを知っておくとよいと思います。
それは私がまったく知らない部分です... 2つのポイント間の距離を取得するためのクエリをいくつか見つけましたが、ポイントとポリゴンは取得しませんでした。