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 が非同期サーブレットを実装する方法の詳細な説明

推薦する

Ansibleを使用してTomcatをバッチでデプロイする方法

1.1 ディレクトリ構造の構築この操作は、nginx+mysql+tomcat+dbのディレクトリ構...

vue3 カスタムディレクティブの詳細

目次1. カスタム指示の登録1.1. グローバルカスタム指示1.2. ローカルカスタム指示2. カス...

8 JSのreduce使用例とreduce操作方法

reduceメソッドは配列の反復メソッドです。 mapやfilterとは異なり、 reduceメソッ...

ハイパーリンクアイコンの仕様: 記事の読みやすさを向上

1. ハイパーリンクアイコンの仕様とは?<br />ハイパーリンクアイコンの仕様は、「C...

MySQL パフォーマンス ストレス ベンチマーク ツール sysbench の使い方の紹介

目次1. sysbenchの紹介#プロジェクトダウンロードアドレス: 2. Sysbenchのインス...

ウェブデザインのためのオンライン開発ツール10選の紹介

1. オンラインテキストジェネレーターBlindTextGenerator: デザイナーにとって、こ...

MySQL のロックの仕組みと使用法の分析

この記事では、例を使用して MySQL のロック メカニズムと使用方法を説明します。ご参考までに、詳...

MySQL外部キーの基本的な機能と使用方法の詳細な説明

この記事では、例を使用して、MySQL 外部キーの基本的な機能と使用方法を説明します。ご参考までに、...

Tomcat パイプライン モードのパイプラインとバルブの詳細な説明

序文比較的複雑な大規模システムでは、複雑なロジックで処理する必要があるオブジェクトまたはデータ フロ...

Yahooが開発したウェブページスコアリングプラグインYSlowのスコアリングルール

YSlow は、Yahoo USA が開発したページ スコアリング プラグインです。非常に優れていま...

PHP+nginx サービス 500 502 エラーのトラブルシューティングのアイデアの詳細な説明

概要オンラインサービスへのアクセス中に 500 または 502 エラーが発生した場合、緊急処理とトラ...

MySQL における主キーが 0 であることと主キーの自己選択制約の関係についての詳しい説明 (詳細)

序文この記事は主にMySQLの主キー0と主キー自己排除制約の関係を紹介し、皆さんの参考と学習のために...

MySQL ログの設定と表示方法

MySQL には次のログがあります。エラーログ: -log-errクエリログ: -logスロークエリ...

Zenコーディングリソース更新機能強化

公式サイト: http://code.google.com/p/zen-coding/ Zen コー...