タグ

geoとmysqlに関するaratafujiのブックマーク (4)

  • Geohash で緯度経度の範囲検索のベンチマークとか - Pixel Pedals of Tomakomai

    Geohash で特定範囲内の地点を取得する時は、以下のような戦略をとるといいみたいです。 東京タワーの周りを探す場合は、「xn76gg」だけを検索するのではなく、’xn76gu’,'xn76gf’,'xn76u5′ ,’xn76ge’,'xn76gs’,'xn76uh’,'xn76u4′,’xn76gd’,'xn76gg’も同時に検索することで、おおよそ 2km*3kmの範囲で検索が可能です。 緯度経度を文字列で表すGeoHash - @masuidrive blog 実際にやってみました。以下の赤い領域に10万個の地点を設置し、緑枠内に含まれる地点(今回は127件)を検索します。緑枠は、(35.727353, 139.716654)〜(35.827353, 139.816654)の範囲です。 下準備 MySQLに以下のようなInnoDBのテーブルを作りました。 CREATE TABLE

    Geohash で緯度経度の範囲検索のベンチマークとか - Pixel Pedals of Tomakomai
  • MySQLで二点間距離を算出する | Parmy Party

    こんにちわ、中山です。いきなりですが、できました!できましたよ!「MySQLで2点間の緯度・経度から距離算出」が、前回掲載した「MySQL 位置参照データベースを作ってみる」と「PostgreSQLで位置参照データベースを作ってみる」の内容で前から気になっていたことがありました、PostgreSQLのPostGISにはあって、MySQLのジオメトリ関数にはない関数、distance_spheroid というもので、回転楕円体で計算で、点間距離を算出する関数なのですが、これが、MySQLには実装されていないため、PostGISを使うか、MySQLを使うかずっと悩んでいたのですが、MySQLのストアドファンクションを利用して、このdistance_spheroidが実現できないかな?と考えていたところ、ほぼ誤差ゼロで二点間の距離が算出できるようなものができましたので、ここに掲載したいと思います

  • MySQL TIPS 3 空間情報(geometry)を使って経度・緯度の検索を高速化する - イノベートな非日常

    以下のようなピタゴラスの定理を使った指定した経度緯度に最も近いデータを取得するSQLは結構ありがちですが、CPU負荷が高く効率も悪いのでMySQLに標準搭載となった空間情報(geometry)を使ってみることにします。 SELECT * FROM loc ORDER BY power(abs(latitude - 緯度 ), 2) + power(abs(longitude - 緯度 ), 2) LIMIT 1 MySQLの空間情報(geometry)機能はPostGIS(Postgresカスタマイズ)に比べると貧弱なので、その為の工夫を行います。例えばここのとおりのままだと逆にSQLが遅くなります。 まずは、テーブル定義から 通常のテーブル CREATE TABLE IF NOT EXISTS `loc` ( `loc_id` int(11) NOT NULL auto_incremen

    MySQL TIPS 3 空間情報(geometry)を使って経度・緯度の検索を高速化する - イノベートな非日常
  • 一日一歩 : CakePHPでGeometry型を使ってみたよ。

    2010年09月07日23:39 カテゴリ開発CakePHP CakePHPでGeometry型を使ってみたよ。 おひさしぶりです。 前回更新から、ずいぶん時間が経ってしまいました。 今回のネタはタイトルの通りです。 プログラミング関係のことなので、興味ない人はスルーしてください。 Geometry型って何?というのは以下をご覧ください。 http://dev.mysql.com/doc/refman/5.1/ja/spatial-extensions.html 私は、GoogleMapsとかに表示するコンテンツに関して、座標やポリラインを格納するために使いたいと思っています。 今回、座標データを格納したいカラム名を'latlng'とし、型にはGeometryを使用しました。 テーブルの作成方法はおまかせするとして、問題はデータの格納をどうするかです。 通常は、モデルのsaveメソッドを使

  • 1