MySQL のジオメトリ型を使用して経度と緯度の距離の問題を処理する方法

MySQL のジオメトリ型を使用して経度と緯度の距離の問題を処理する方法

テーブルを作成する

テーブル `map` を作成します (
 `id` int(11) NULLではない、
 `address` varchar(255) NOT NULL DEFAULT ''
 `location` ジオメトリが NULL ではない、
 主キー (`id`)、
 空間キー `idx_location` (`location`)
)

入れる

マップ (ID、アドレス、場所) に VALUES (1、'somewhere'、ST_GeomFromText('POINT(121.366961 31.190049)') を挿入します。

ST_GeomFromText関数を使用する必要があり、POINT()には経度+空間+緯度が含まれていることに注意してください。

クエリ

1.緯度と経度を確認する

マップから、アドレス、ST_AsText(location) を location として選択します。

2. 2点間の距離を計算する

ST_Distance_Sphere(POINT(121.590347, 31.388094),location) を distance FROM map として選択します。

計算結果はメートル単位です。

POINT() 内の緯度と経度がカンマで区切られていることに注意してください。

3. 1000m以内の場所を検索し、遠いものから近いものへと並べ替える

次のようにコードをコピーします
SELECT id, address, ST_Distance_Sphere(POINT(121.590347, 31.388094),location) AS distance FROM map WHERE ST_Distance_Sphere(POINT(121.590347, 31.388094),location) < 1000 ORDER BY distance;

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Mybatis 学習ロード mysql バッチ データ追加方法
  • MySQLとRedisでセカンダリキャッシュを実装する方法の詳細な説明
  • MySQL共通インデックスとユニークインデックスの詳細な説明
  • mysql binlog (バイナリログ) を表示する方法
  • Docker が MySQL を作成する説明
  • PHP date() フォーマット MySQL 挿入 datetime メソッド
  • pymysql で SQL インジェクション問題を解決する方法
  • MySQLテーブルのフィールドと関連属性をエクスポートする手順
  • テーブルを開く際のMySQLスレッドの問題の解決方法
  • MySQL の制限パフォーマンス分析と最適化

<<:  vue $http の get および post リクエストのクロスドメイン問題を解決する

>>:  Tomcat が非同期サーブレットを実装する方法の詳細な説明

推薦する

良いと思う国内のデザインサイトをいくつか選んでみました。

<br />私が良いと思った国内のデザインサイトをまとめてみました。広告ではありません!...

MySql のサブクエリ内のクエリ例の詳細な説明

北西を見ると私の故郷はどこにあるでしょうか。南東の満月を何度見たことがあるでしょうか。月が再びゆっく...

JavaScript関数の詳細な紹介

任意の数のステートメントを関数を通じてカプセル化することができ、いつでもどこでも呼び出して実行できま...

MySQL パフォーマンス最適化のための魔法のツール、Explain の基本的な使用分析

導入MySQL には、SELECT ステートメントを分析し、開発者が最適化できるように SELECT...

Windows で virtualenv を使用して仮想環境を作成する方法 (2 つの方法)

オペレーティング システム: windows10_x64 Python バージョン: 3.6.8仮想...

ウェブページの画像の回転を実現するjs

この記事では、Webページの画像の回転を実現するためのjsの具体的なコードを参考までに共有します。具...

MySQL インポートおよびエクスポートのバックアップの詳細

目次1. MySQLのバックアップタイプの詳細な説明1. バックアップがデータベースに与える影響に基...

getdata テーブル テーブル データ 結合 mysql メソッド

パブリック関数 json_product_list($where, $order){ グローバル ...

Java は Excel から MySQL にデータをインポートします

実際の業務では、Excel からデータベースにデータをインポートする必要がある場合があります。データ...

ろうそくを溶かす(水滴)サンプルコードを実現する純粋な CSS

成果を達成する実装のアイデアフィルターのコントラストとぼかしを利用して溶ける効果を実現します。親要素...

Reactはいくつかの方法でパラメータを渡します

目次親コンポーネントと子コンポーネント間でパラメータを渡すルーティングパラメータステータスの改善コン...

Vue はコンポーネント間の通信をどのように実装しますか?

目次1. 父と息子のコミュニケーション1.1 親コンポーネント --> 子コンポーネント1.2...

HTML タグ sup と sub の応用の紹介

HTML タグ: 上付き文字HTML では、<sup> タグは上付き文字のテキストを定義...

Nodeはバックエンドの実装手順を素早く構築します

1. まず、node、express、express-generator をインストールします (4...