1. ホーム
  2. マイスル

[解決済み】小数点以下8桁の緯度/経度に使用するMySQLデータ型は何ですか?

2022-03-29 16:27:24

質問

地図データを扱っているのですが、その中の Latitude/Longitude は小数点以下8桁まで拡張されます。例えば

Latitude 40.71727401
Longitude -74.00898606

で見た。 Googleドキュメント を使っているもの。

lat FLOAT( 10, 6 ) NOT NULL,  
lng FLOAT( 10, 6 ) NOT NULL

しかし、その小数点以下は6桁までしかありません。

を使用する必要があります。 FLOAT(10, 8) あるいは、このデータを正確に保存するために考慮すべき他の方法がありますか?これは地図の計算で使用される予定です。ありがとうございます。

どのように解決するのですか?

MySQLは 空間データ型 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));