LoginSignup
4
4

More than 5 years have passed since last update.

細かすぎて伝わらない、mroongaでメルカトル座標が挿入できなくてムカついた話

Last updated at Posted at 2014-01-27

mysqlの全文検索拡張mroongaは、POINT要素しか含めないながら、GEOMETRY型が使えるらしい。
全文検索+位置検索系の要件があるので、ちょっと使ってみた。

位置情報えきすぱあとであれば、関数インデックスの使えるPostGIS等ならばともかく、mysqlならGEOMETRY型には経緯度ではなくメルカトル座標を入れるのが常道
メルカトル座標と緯度毎の距離倍率を計算するphp関数を用意してやって、メルカトル座標をGEOMETRY型に蓄積してやりました。

mysql> INSERT INTO `spot` (`geom`) VALUES (GeomFromText('POINT(15028131.257091932 4163881.144064294)'));
Query OK, 1 row affected, 2 warnings (0.00 sec)

表示してやる。

mysql> SELECT AsText(`geom`) FROM `spot` WHERE `id` = 30;
+----------------------------------------------+
| AsText(`geom`)                               |
+----------------------------------------------+
| POINT(-596.5232355555555 -596.5232355555555) |
+----------------------------------------------+
1 row in set (0.00 sec)

はあああああ?

なんかmroongaのGEOMETRY型には経緯度で取り得る値の周辺の値しか突っ込めないみたい。
それやったらメルカトル座標値使えんやんけーーー!距離ベースの周辺検索どないすんねんあほー。

と思ったけど、どうも独自で円検索するインタフェースがmroonga_commandとかいう独自SQL拡張で用意されてるようなので許す。

…と思ったけど、独自拡張の書式が特殊すぎて他のSQLと混ぜるの面倒そうやな…。
メルカトル座標値を10万分の1とかにして、突っ込むかな…。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4