ホームページ >データベース >mysql チュートリアル >MySQL に緯度/経度データを保存するときに高精度を維持するにはどうすればよいですか?

MySQL に緯度/経度データを保存するときに高精度を維持するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-30 07:41:14806ブラウズ

How Can I Maintain High Precision When Storing Latitude/Longitude Data in MySQL?

MySQL を使用した緯度/経度ストレージの精度の維持

地理データを扱う場合、正確な情報を得るには、緯度と経度の座標の精度が非常に重要です。マップ計算。座標は小数点以下 8 桁まで拡張されるため、このレベルの精度を維持するには適切な MySQL データ型を選択することが不可欠になります。

Google ドキュメントで説明されている FLOAT(10, 6) の使用の提案とは異なります。 、このデータ型では、精度が小数点以下 6 桁のみに制限されます。小数点以下 8 桁の精度を維持するには、MySQL の空間データ型内で Point データ型を使用することを検討してください。

Point データ型は、秒の小数部を含む地理座標の正確な表現を提供します。緯度と経度の両方の値を単一値タイプとして保存できます。 Point 列を作成すると、マップ計算が高精度で実行されるようになります。

例:

CREATE TABLE `buildings` (
  `coordinate` POINT NOT NULL,
  /* Even from v5.7.5 you can define an index for it */
  SPATIAL INDEX `SPATIAL` (`coordinate`)
) ENGINE=InnoDB;

/* then for insertion you can */
INSERT INTO `buildings` 
(`coordinate`) 
VALUES
(POINT(40.71727401 -74.00898606));

Point データ型を利用することで、地理情報を正確に保存および操作できます。座標を調整し、マッピング アプリケーションの正確な計算とデータの整合性を確保します。

以上がMySQL に緯度/経度データを保存するときに高精度を維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。