400000行のMySQLデータベースに 'flags'というテーブルがあります。この表は、英国のさまざまな地位を表す地理空間的なポイントで構成されています。バウンディングボックス内のすべての地理空間点を選択
私が作成しているアプリケーションは、Googleマップを使用しています。マップには、地図上のフラグの可視性を切り替えるボタンがあります。バウンディングボックスを渡すと、バウンディングボックス内のすべてのフラグが返される(マップに表示されるようにする)APIを作成するのが私の仕事です。
渡されるパラメータは、北東緯度/経度、およびビューポートの現在位置の南西緯度/経度です。
これで、この座標セット(ビューポート)の内側にあるすべての地理空間ポイントを返すSQLクエリを実行する必要があります。
理想的には、検索する行が多数あるため、ソリューションを最適化する必要があります。ユーザーがフラグを表示する前に、アプリケーションは特定のレベルにズームする必要があります。
フラグテーブル:
- ID
- は
- 名
例行座標:
1 | [ジオメトリ - 25B] | Tenacy AB
座標フィールドは、AsText(座標)を使用してリテラルポイントに変換することもできます。しかし、XとY関数はこれを行います。私はあなたがXとYの関数を使用することができるポイントの緯度/経度を取得するために知っているPOINT
:
座標列は、データ・タイプです。 X(座標)
DBMS:MySQLの
DBMSバージョン:5.6.14
は、 'flags'テーブルの定義を非常に参考にします。また、そのテーブルの6つのサンプル行を表示することもできます。また、英国は本来の子午線に跨っているので、経度の符号(+ - )が重要になります。 –
@OllieJonesありがとうOllie、私はフラグテーブル構造で質問を編集しました – jskidd3