Anker PowerCor
旅行には必須の大容量モバイルバッテリー!
【最新機種】GoPro hero11 Black
最新機種でVlogの思い出を撮影しよう!
[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット
防水暴風で耐久性抜群なので旅行で大活躍です!
レッドブル エナジードリンク 250ml×24本
翼を授けよう!
モンスターエナジー 355ml×24本 [エナジードリンク]
脳を活性化させるにはこれ!
BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール
もう一人の僕を呼び覚ませ!!
サンディスク microSD 128GB
スマホからSwitchまで使える大容量MicroSDカード!
スポンサーリンク
目次
位置情報を使ったマーケティング強し
利用者からしたらとても便利な機能
スマホアプリやECサイトを使っていると、GPS情報を用いた現在地点を軸にした検索機能が搭載されるようになってきています。
近隣情報を簡単に検索する事が出来るので利用者側からしたらとても便利な機能ですよね♪
未経験開発者からしたら謎の技術
しかし、この機能を実現する上でGPSや緯度経度の位置情報を用いた機能を実装した事がない人からすると、
どうやって実現すればええんじゃ・・・。orz
と、不安になると思います。
なので、今回はMySQLに登録されている緯度経度情報と、利用者の緯度経度情報を用いた近隣検索時の方法をご紹介しようと思います。
手順
前提
今回はMySQL5.7を使用し、以下の県庁所在地テーブルを用意して、操作を行ってみようと思います。
1 2 3 4 5 6 7 8 9 |
CREATE TABLE `prefectural_office` ( `id` BIGINT(20) NOT NULL COMMENT '県庁所在地ID', `prefectureName` VARCHAR(256) NOT NULL COMMENT '都道府県名', `latitude` DOUBLE(9 , 6 ) COMMENT '緯度', `longitude` DOUBLE(9 , 6 ) COMMENT '経度', `createdAt` DATETIME NOT NULL COMMENT '作成日', `updatedAt` DATETIME NOT NULL COMMENT '更新日', PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=UTF8MB4 COMMENT='県庁所在地テーブル'; |
MySQL5.7にはgeometry
型なる緯度経度を取扱う際にとても便利な型があるとの事ですが、今回はdouble
型でそれぞれを管理してみようと思います。
サンプルデータはこんな感じ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
INSERT INTO `prefectural_office` (`id`,`prefectureName`,`latitude`,`longitude`,`createdAt`,`updatedAt`) VALUES ( 1 ,"北海道", 43.06428056 , 141.3467972 ,NOW(),NOW()), ( 2 ,"青森県", 40.82435392 , 140.7399662 ,NOW(),NOW()), ( 3 ,"岩手県", 39.70358439 , 141.152709 ,NOW(),NOW()), ( 4 ,"宮城県", 38.26892558 , 140.8720061 ,NOW(),NOW()), ( 5 ,"秋田県", 39.71803056 , 140.1031778 ,NOW(),NOW()), ( 6 ,"山形県", 38.24048889 , 140.3634278 ,NOW(),NOW()), ( 7 ,"福島県", 37.74997969 , 140.4675816 ,NOW(),NOW()), ( 8 ,"茨城県", 36.34159972 , 140.4466188 ,NOW(),NOW()), ( 9 ,"栃木県", 36.56548547 , 139.8830857 ,NOW(),NOW()), ( 10 ,"群馬県", 36.39060111 , 139.0604359 ,NOW(),NOW()), ( 11 ,"埼玉県", 35.85692781 , 139.6487866 ,NOW(),NOW()), ( 12 ,"千葉県", 35.60458889 , 140.1231833 ,NOW(),NOW()), ( 13 ,"東京都", 35.68956667 , 139.6917222 ,NOW(),NOW()), ( 14 ,"神奈川県", 35.44771111 , 139.6425361 ,NOW(),NOW()), ( 15 ,"新潟県", 37.90243547 , 139.0238251 ,NOW(),NOW()), ( 16 ,"富山県", 36.69537383 , 137.2111942 ,NOW(),NOW()), ( 17 ,"石川県", 36.594283 , 136.6257139 ,NOW(),NOW()), ( 18 ,"福井県", 36.06542211 , 136.2218332 ,NOW(),NOW()), ( 19 ,"山梨県", 35.66394444 , 138.5683861 ,NOW(),NOW()), ( 20 ,"長野県", 36.65131389 , 138.1809972 ,NOW(),NOW()), ( 21 ,"岐阜県", 35.39119222 , 136.7221532 ,NOW(),NOW()), ( 22 ,"静岡県", 34.97691111 , 138.383025 ,NOW(),NOW()), ( 23 ,"愛知県", 35.18019722 , 136.9067417 ,NOW(),NOW()), ( 24 ,"三重県", 34.730275 , 136.5085972 ,NOW(),NOW()), ( 25 ,"滋賀県", 35.00439167 , 135.8683028 ,NOW(),NOW()), ( 26 ,"京都府", 35.02128056 , 135.7556361 ,NOW(),NOW()), ( 27 ,"大阪府", 34.68631997 , 135.5200224 ,NOW(),NOW()), ( 28 ,"兵庫県", 34.69110236 , 135.1828524 ,NOW(),NOW()), ( 29 ,"奈良県", 34.68471414 , 135.8327707 ,NOW(),NOW()), ( 30 ,"和歌山県", 34.22603522 , 135.1674939 ,NOW(),NOW()), ( 31 ,"鳥取県", 35.50363722 , 134.2381983 ,NOW(),NOW()), ( 32 ,"島根県", 35.47221683 , 133.0505309 ,NOW(),NOW()), ( 33 ,"岡山県", 34.66176389 , 133.9349 ,NOW(),NOW()), ( 34 ,"広島県", 34.396275 , 132.459375 ,NOW(),NOW()), ( 35 ,"山口県", 34.18580211 , 131.4715498 ,NOW(),NOW()), ( 36 ,"徳島県", 34.06573333 , 134.5594889 ,NOW(),NOW()), ( 37 ,"香川県", 34.34003492 , 134.0432789 ,NOW(),NOW()), ( 38 ,"愛媛県", 33.84164444 , 132.7661028 ,NOW(),NOW()), ( 39 ,"高知県", 33.55975556 , 133.5311167 ,NOW(),NOW()), ( 40 ,"福岡県", 33.60626111 , 130.4181167 ,NOW(),NOW()), ( 41 ,"佐賀県", 33.24932778 , 130.2988056 ,NOW(),NOW()), ( 42 ,"長崎県", 32.74508975 , 129.8736411 ,NOW(),NOW()), ( 43 ,"熊本県", 32.78976539 , 130.7416619 ,NOW(),NOW()), ( 44 ,"大分県", 33.23812308 , 131.6125898 ,NOW(),NOW()), ( 45 ,"宮崎県", 31.91100714 , 131.4238818 ,NOW(),NOW()), ( 46 ,"鹿児島県", 31.56022022 , 130.5582808 ,NOW(),NOW()), ( 47 ,"沖縄県", 26.212375 , 127.6809806 ,NOW(),NOW() ); |
SQL
SQLのテンプレートは以下の形になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
SELECT id, prefectureName, latitude, longitude, ( 6371 * acos( -- km単位 cos(radians({緯度})) * cos(radians(latitude)) * cos(radians(longitude) - radians({経度})) + sin(radians({緯度})) * sin(radians(latitude)) ) ) AS distance FROM prefectural_office ; |
この式を実行するとdistance
項目に2点間距離がkm単位で取得出来るので、ORDER BY
やWHERE
条件にも使えます。
確認
東京タワーから
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
SELECT id, prefectureName, latitude, longitude, ( 6371 * acos( cos(radians(35.658581)) * cos(radians(latitude)) * cos(radians(longitude) - radians(139.745433)) + sin(radians(35.658581)) * sin(radians(latitude)) ) ) AS distance FROM prefectural_office ORDER BY distance ; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
+----+----------------+-----------+------------+--------------------+ | id | prefectureName | latitude | longitude | distance | +----+----------------+-----------+------------+--------------------+ | 13 | 東京都 | 35.689567 | 139.691722 | 5.950625481171745 | | 11 | 埼玉県 | 35.856928 | 139.648787 | 23.71671427178685 | | 14 | 神奈川県 | 35.447711 | 139.642536 | 25.22783961062546 | | 12 | 千葉県 | 35.604589 | 140.123183 | 34.6637438158627 | | 8 | 茨城県 | 36.341600 | 140.446619 | 98.72580516123963 | | 9 | 栃木県 | 36.565485 | 139.883086 | 101.59838451303102 | | 10 | 群馬県 | 36.390601 | 139.060436 | 102.07904543386358 | | 19 | 山梨県 | 35.663944 | 138.568386 | 106.33948479828305 | | 22 | 静岡県 | 34.976911 | 138.383025 | 144.99856059861196 | | 20 | 長野県 | 36.651314 | 138.180997 | 178.63884533543978 | | 7 | 福島県 | 37.749980 | 140.467582 | 241.296943791094 | | 16 | 富山県 | 36.695374 | 137.211194 | 254.9981890193849 | | 15 | 新潟県 | 37.902435 | 139.023825 | 257.6462044373321 | | 23 | 愛知県 | 35.180197 | 136.906742 | 262.663603602861 | | 21 | 岐阜県 | 35.391192 | 136.722153 | 275.1986596888009 | | 6 | 山形県 | 38.240489 | 140.363428 | 292.29790529837885 | | 17 | 石川県 | 36.594283 | 136.625714 | 298.8700798944938 | | 4 | 宮城県 | 38.268926 | 140.872006 | 307.0225258167587 | | 24 | 三重県 | 34.730275 | 136.508597 | 311.6940135546833 | | 18 | 福井県 | 36.065422 | 136.221833 | 320.7195086989554 | | 25 | 滋賀県 | 35.004392 | 135.868303 | 359.1309463878057 | | 26 | 京都府 | 35.021281 | 135.755636 | 368.7410271001972 | | 29 | 奈良県 | 34.684714 | 135.832771 | 371.72686754619974 | | 27 | 大阪府 | 34.686320 | 135.520022 | 398.9483006847132 | | 28 | 兵庫県 | 34.691102 | 135.182852 | 428.37485993933143 | | 30 | 和歌山県 | 34.226035 | 135.167494 | 446.5892595756499 | | 5 | 秋田県 | 39.718031 | 140.103178 | 452.4852998510215 | | 3 | 岩手県 | 39.703584 | 141.152709 | 466.502623601523 | | 31 | 鳥取県 | 35.503637 | 134.238198 | 498.2740045758765 | | 36 | 徳島県 | 34.065733 | 134.559489 | 505.1378956725802 | | 37 | 香川県 | 34.340035 | 134.043279 | 539.5901864769002 | | 33 | 岡山県 | 34.661764 | 133.934900 | 539.6319451989946 | | 2 | 青森県 | 40.824354 | 140.739966 | 580.9247160833129 | | 32 | 島根県 | 35.472217 | 133.050531 | 605.8028384722828 | | 39 | 高知県 | 33.559756 | 133.531117 | 614.5919508932951 | | 38 | 愛媛県 | 33.841644 | 132.766103 | 668.7080193259349 | | 34 | 広島県 | 34.396275 | 132.459375 | 677.9409956240623 | | 35 | 山口県 | 34.185802 | 131.471550 | 771.658681940248 | | 44 | 大分県 | 33.238123 | 131.612590 | 792.5108882098315 | | 1 | 北海道 | 43.064281 | 141.346797 | 834.8571378337715 | | 45 | 宮崎県 | 31.911007 | 131.423882 | 874.2327147262182 | | 40 | 福岡県 | 33.606261 | 130.418117 | 882.9671997424465 | | 43 | 熊本県 | 32.789765 | 130.741662 | 886.7054081831598 | | 41 | 佐賀県 | 33.249328 | 130.298806 | 906.1897556389888 | | 42 | 長崎県 | 32.745090 | 129.873641 | 963.3773037576652 | | 46 | 鹿児島県 | 31.560220 | 130.558281 | 964.5350593543586 | | 47 | 沖縄県 | 26.212375 | 127.680981 | 1555.5654256120438 | +----+----------------+-----------+------------+--------------------+ 47 rows in set (0.00 sec) |
東京ディズニーランド」
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
SELECT id, prefectureName, latitude, longitude, ( 6371 * acos( cos(radians(35.632896)) * cos(radians(latitude)) * cos(radians(longitude) - radians(139.880394)) + sin(radians(35.632896)) * sin(radians(latitude)) ) ) AS distance FROM prefectural_office ORDER BY distance ; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
+----+----------------+-----------+------------+--------------------+ | id | prefectureName | latitude | longitude | distance | +----+----------------+-----------+------------+--------------------+ | 13 | 東京都 | 35.689567 | 139.691722 | 18.17280019714266 | | 12 | 千葉県 | 35.604589 | 140.123183 | 22.17062746619568 | | 14 | 神奈川県 | 35.447711 | 139.642536 | 29.785652991722298 | | 11 | 埼玉県 | 35.856928 | 139.648787 | 32.51876968720438 | | 8 | 茨城県 | 36.341600 | 140.446619 | 93.83719890141437 | | 9 | 栃木県 | 36.565485 | 139.883086 | 103.69944748414214 | | 10 | 群馬県 | 36.390601 | 139.060436 | 111.97130395204431 | | 19 | 山梨県 | 35.663944 | 138.568386 | 118.59972289249698 | | 22 | 静岡県 | 34.976911 | 138.383025 | 154.2163634010414 | | 20 | 長野県 | 36.651314 | 138.180997 | 190.02196594148577 | | 7 | 福島県 | 37.749980 | 140.467582 | 241.15901199823207 | | 15 | 新潟県 | 37.902435 | 139.023825 | 263.6391672208879 | | 16 | 富山県 | 36.695374 | 137.211194 | 267.1438549272756 | | 23 | 愛知県 | 35.180197 | 136.906742 | 274.1532252820788 | | 21 | 岐阜県 | 35.391192 | 136.722153 | 287.1064923662216 | | 6 | 山形県 | 38.240489 | 140.363428 | 293.1106773787993 | | 4 | 宮城県 | 38.268926 | 140.872006 | 306.0653796283301 | | 17 | 石川県 | 36.594283 | 136.625714 | 311.2739615971568 | | 24 | 三重県 | 34.730275 | 136.508597 | 322.4352233215935 | | 18 | 福井県 | 36.065422 | 136.221833 | 333.2152705971605 | | 25 | 滋賀県 | 35.004392 | 135.868303 | 370.6338570662051 | | 26 | 京都府 | 35.021281 | 135.755636 | 380.296832785984 | | 29 | 奈良県 | 34.684714 | 135.832771 | 382.7356249393663 | | 27 | 大阪府 | 34.686320 | 135.520022 | 410.08535462108114 | | 28 | 兵庫県 | 34.691102 | 135.182852 | 439.632617655556 | | 5 | 秋田県 | 39.718031 | 140.103178 | 454.6687476761153 | | 30 | 和歌山県 | 34.226035 | 135.167494 | 457.17781767896673 | | 3 | 岩手県 | 39.703584 | 141.152709 | 466.2712271514309 | | 31 | 鳥取県 | 35.503637 | 134.238198 | 510.46056137594127 | | 36 | 徳島県 | 34.065733 | 134.559489 | 515.783440546053 | | 37 | 香川県 | 34.340035 | 134.043279 | 550.7544795494472 | | 33 | 岡山県 | 34.661764 | 133.934900 | 551.15715583364 | | 2 | 青森県 | 40.824354 | 140.739966 | 582.1166669748246 | | 32 | 島根県 | 35.472217 | 133.050531 | 618.0060937034976 | | 39 | 高知県 | 33.559756 | 133.531117 | 625.05497118578 | | 38 | 愛媛県 | 33.841644 | 132.766103 | 679.7199471549961 | | 34 | 広島県 | 34.396275 | 132.459375 | 689.4895945575495 | | 35 | 山口県 | 34.185802 | 131.471550 | 783.2035644592869 | | 44 | 大分県 | 33.238123 | 131.612590 | 803.3114317853348 | | 1 | 北海道 | 43.064281 | 141.346797 | 835.8568342321929 | | 45 | 宮崎県 | 31.911007 | 131.423882 | 883.9704195918114 | | 40 | 福岡県 | 33.606261 | 130.418117 | 894.2952839629211 | | 43 | 熊本県 | 32.789765 | 130.741662 | 897.393020853011 | | 41 | 佐賀県 | 33.249328 | 130.298806 | 917.3065174157102 | | 42 | 長崎県 | 32.745090 | 129.873641 | 974.2494607741061 | | 46 | 鹿児島県 | 31.560220 | 130.558281 | 974.3396415763573 | | 47 | 沖縄県 | 26.212375 | 127.680981 | 1563.260125986337 | +----+----------------+-----------+------------+--------------------+ 47 rows in set (0.00 sec) |
ユニバーサルスタジオジャパン
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
SELECT id, prefectureName, latitude, longitude, ( 6371 * acos( cos(radians(34.665442)) * cos(radians(latitude)) * cos(radians(longitude) - radians(135.432338)) + sin(radians(34.665442)) * sin(radians(latitude)) ) ) AS distance FROM prefectural_office ORDER BY distance ; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
+----+----------------+-----------+------------+--------------------+ | id | prefectureName | latitude | longitude | distance | +----+----------------+-----------+------------+--------------------+ | 27 | 大阪府 | 34.686320 | 135.520022 | 8.347566778513 | | 28 | 兵庫県 | 34.691102 | 135.182852 | 22.99128820980341 | | 29 | 奈良県 | 34.684714 | 135.832771 | 36.68053132565563 | | 26 | 京都府 | 35.021281 | 135.755636 | 49.35652934358986 | | 30 | 和歌山県 | 34.226035 | 135.167494 | 54.56255511489153 | | 25 | 滋賀県 | 35.004392 | 135.868303 | 54.80634189341269 | | 24 | 三重県 | 34.730275 | 136.508597 | 98.65552465883087 | | 36 | 徳島県 | 34.065733 | 134.559489 | 104.23598440584891 | | 37 | 香川県 | 34.340035 | 134.043279 | 132.32895828916233 | | 33 | 岡山県 | 34.661764 | 133.934900 | 136.9526926807346 | | 21 | 岐阜県 | 35.391192 | 136.722153 | 142.49426996787943 | | 31 | 鳥取県 | 35.503637 | 134.238198 | 143.15151600464213 | | 23 | 愛知県 | 35.180197 | 136.906742 | 146.10011358033697 | | 18 | 福井県 | 36.065422 | 136.221833 | 171.34080802954392 | | 39 | 高知県 | 33.559756 | 133.531117 | 213.88917489522728 | | 32 | 島根県 | 35.472217 | 133.050531 | 234.58667000229642 | | 17 | 石川県 | 36.594283 | 136.625714 | 240.06357228174784 | | 38 | 愛媛県 | 33.841644 | 132.766103 | 261.6002041122604 | | 22 | 静岡県 | 34.976911 | 138.383025 | 271.55808151699966 | | 34 | 広島県 | 34.396275 | 132.459375 | 273.96679636138555 | | 16 | 富山県 | 36.695374 | 137.211194 | 277.0482771922017 | | 19 | 山梨県 | 35.663944 | 138.568386 | 305.91143906304444 | | 20 | 長野県 | 36.651314 | 138.180997 | 332.2802193427927 | | 35 | 山口県 | 34.185802 | 131.471550 | 367.1534391112997 | | 10 | 群馬県 | 36.390601 | 139.060436 | 380.21064743798485 | | 44 | 大分県 | 33.238123 | 131.612590 | 386.38142924304543 | | 14 | 神奈川県 | 35.447711 | 139.642536 | 392.93585249737043 | | 13 | 東京都 | 35.689567 | 139.691722 | 403.48593571831134 | | 11 | 埼玉県 | 35.856928 | 139.648787 | 405.0613079334491 | | 12 | 千葉県 | 35.604589 | 140.123183 | 439.10891768057496 | | 9 | 栃木県 | 36.565485 | 139.883086 | 454.3548599849104 | | 40 | 福岡県 | 33.606261 | 130.418117 | 476.22556598796143 | | 43 | 熊本県 | 32.789765 | 130.741662 | 481.25076502077144 | | 45 | 宮崎県 | 31.911007 | 131.423882 | 482.23347578635526 | | 15 | 新潟県 | 37.902435 | 139.023825 | 482.80623579842376 | | 8 | 茨城県 | 36.341600 | 140.446619 | 490.5932563469201 | | 41 | 佐賀県 | 33.249328 | 130.298806 | 498.8947131076346 | | 42 | 長崎県 | 32.745090 | 129.873641 | 556.6640089687979 | | 7 | 福島県 | 37.749980 | 140.467582 | 567.0608788621107 | | 46 | 鹿児島県 | 31.560220 | 130.558281 | 570.2127524749369 | | 6 | 山形県 | 38.240489 | 140.363428 | 593.5724408674877 | | 4 | 宮城県 | 38.268926 | 140.872006 | 629.9975475284301 | | 5 | 秋田県 | 39.718031 | 140.103178 | 697.4878644657354 | | 3 | 岩手県 | 39.703584 | 141.152709 | 755.060116327493 | | 2 | 青森県 | 40.824354 | 140.739966 | 828.3431528753739 | | 1 | 北海道 | 43.064281 | 141.346797 | 1064.3887047685812 | | 47 | 沖縄県 | 26.212375 | 127.680981 | 1197.2651815201575 | +----+----------------+-----------+------------+--------------------+ |
ハウステンボス
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
SELECT id, prefectureName, latitude, longitude, ( 6371 * acos( cos(radians(33.089428)) * cos(radians(latitude)) * cos(radians(longitude) - radians(129.793823)) + sin(radians(33.089428)) * sin(radians(latitude)) ) ) AS distance FROM prefectural_office ORDER BY distance ; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
+----+----------------+-----------+------------+--------------------+ | id | prefectureName | latitude | longitude | distance | +----+----------------+-----------+------------+--------------------+ | 42 | 長崎県 | 32.745090 | 129.873641 | 39.006781737299406 | | 41 | 佐賀県 | 33.249328 | 130.298806 | 50.25251025637944 | | 40 | 福岡県 | 33.606261 | 130.418117 | 81.64137237972476 | | 43 | 熊本県 | 32.789765 | 130.741662 | 94.51964220169204 | | 44 | 大分県 | 33.238123 | 131.612590 | 170.09849547640988 | | 46 | 鹿児島県 | 31.560220 | 130.558281 | 184.5877329538185 | | 35 | 山口県 | 34.185802 | 131.471550 | 197.4427959258778 | | 45 | 宮崎県 | 31.911007 | 131.423882 | 201.33641358776467 | | 34 | 広島県 | 34.396275 | 132.459375 | 286.0973317466086 | | 38 | 愛媛県 | 33.841644 | 132.766103 | 288.1057552058132 | | 39 | 高知県 | 33.559756 | 133.531117 | 351.13263065584806 | | 32 | 島根県 | 35.472217 | 133.050531 | 399.62028179620415 | | 37 | 香川県 | 34.340035 | 134.043279 | 416.8775350373696 | | 33 | 岡山県 | 34.661764 | 133.934900 | 420.3347949356522 | | 36 | 徳島県 | 34.065733 | 134.559489 | 454.5958942707968 | | 31 | 鳥取県 | 35.503637 | 134.238198 | 488.52976177734905 | | 30 | 和歌山県 | 34.226035 | 135.167494 | 513.0918965144793 | | 28 | 兵庫県 | 34.691102 | 135.182852 | 528.2595175551966 | | 27 | 大阪府 | 34.686320 | 135.520022 | 557.4898311292636 | | 29 | 奈良県 | 34.684714 | 135.832771 | 584.8648213347923 | | 26 | 京都府 | 35.021281 | 135.755636 | 589.614030615892 | | 25 | 滋賀県 | 35.004392 | 135.868303 | 598.6692957893513 | | 24 | 三重県 | 34.730275 | 136.508597 | 645.8051777989417 | | 18 | 福井県 | 36.065422 | 136.221833 | 674.936294482572 | | 21 | 岐阜県 | 35.391192 | 136.722153 | 686.1698985892883 | | 23 | 愛知県 | 35.180197 | 136.906742 | 694.508354750148 | | 17 | 石川県 | 36.594283 | 136.625714 | 734.9633916802294 | | 16 | 富山県 | 36.695374 | 137.211194 | 786.0317808537424 | | 47 | 沖縄県 | 26.212375 | 127.680981 | 791.4183104194316 | | 22 | 静岡県 | 34.976911 | 138.383025 | 818.5317594981125 | | 19 | 山梨県 | 35.663944 | 138.568386 | 854.257447240117 | | 20 | 長野県 | 36.651314 | 138.180997 | 861.1205510125395 | | 10 | 群馬県 | 36.390601 | 139.060436 | 922.3328307429138 | | 14 | 神奈川県 | 35.447711 | 139.642536 | 941.7587818306522 | | 13 | 東京都 | 35.689567 | 139.691722 | 952.6166412260941 | | 11 | 埼玉県 | 35.856928 | 139.648787 | 953.8219996389495 | | 12 | 千葉県 | 35.604589 | 140.123183 | 988.1147598054422 | | 15 | 新潟県 | 37.902435 | 139.023825 | 991.507859962948 | | 9 | 栃木県 | 36.565485 | 139.883086 | 998.0663983359384 | | 8 | 茨城県 | 36.341600 | 140.446619 | 1037.9360355789986 | | 7 | 福島県 | 37.749980 | 140.467582 | 1096.2901656515048 | | 6 | 山形県 | 38.240489 | 140.363428 | 1112.3675058713052 | | 4 | 宮城県 | 38.268926 | 140.872006 | 1153.313393046397 | | 5 | 秋田県 | 39.718031 | 140.103178 | 1179.5036322380151 | | 3 | 岩手県 | 39.703584 | 141.152709 | 1253.1151896285637 | | 2 | 青森県 | 40.824354 | 140.739966 | 1296.456991543648 | | 1 | 北海道 | 43.064281 | 141.346797 | 1498.0510581340395 | +----+----------------+-----------+------------+--------------------+ 47 rows in set (0.00 sec) |
終わりに
以上のように、緯度経度さえDBに登録しておけば2点間距離を簡単に算出する事が出来ました。
近隣検索方法について悩んでいる方はぜひ参考にしてみてください♪