Network Solutions - Original domain name registration and reservation services with variety of internet-related business offerings. Quick, dependable and reliable.
なんか世間的に位置情報アプリが流行ってるらしいし、Google App Engine(GAE)も楽しそう。どうせだから、GAEでなんか位置情報アプリでも作ってみよう!と思ってTwitterに書き込んだところ、Geohashという、位置情報のプロトコル?を教えてもらいました。 これは、その名の通り、位置情報をハッシュで表す規格なのですが、いろいろおもしろい特徴があり、調べているうちに楽しくなってきたので、勢い余ってPure Rubyのライブラリまで書いちゃいました。 そのあと、結局ライブラリを作ったところで満足して、アプリは何も作らなかったので、せめてGeohashの解説でも書いておこうと思います。 位置情報は通常、緯度経度で表します。たとえば東京タワーの緯度経度は35.65861, 139.745447です。 北を上にした地図でいうと、緯度がY座標で経度がX座標です。英語では緯度をlati
wtnabe, yet another yak shaver @wtnabe geohash で検索する場合、特定の hash で表現できるグリッドだけでなくその周辺を含めて検索するのが正解らしいけど、そうすっと目的の範囲よりも一回り小さいグリッドを作ってそれを含む周辺グリッドに対して検索掛ける、って感じになるのかな。 2010-08-19 19:51:16 wtnabe, yet another yak shaver @wtnabe geohash で検索する場合、特定の hash で表現できるグリッドだけでなくその周辺を含めて検索するのが正解らしいけど、そうすっと目的の範囲よりも一回り小さいグリッドを作ってそれを含む周辺グリッドに対して検索掛ける、って感じになるのかな。 2010-08-19 19:51:16
先日のベンチマークが失敗だったので、改めて自前のスクリプトでベンチとりました。 後、id:kokogiko さんにGeometry型 × SPATIAL インデックスはどーよってツッコミをもらったので、そちらも一緒にベンチをとります。 Geometry型のテーブル定義 前回のGeohashのテーブルを一つ。SPATIALインデックスはMyISAM専用なので、そのテーブルを一つ。後、InnoDBでインデックス貼っていない物を用意しました。InnoDBでno-SPATIALなインデックス張った物も試したかったんですが、手元の環境だとMySQLが落ちてしまうっぽいので今回は省略しました。 CREATE TABLE location ( id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, geohash VARCHAR(10) NOT NULL
まず知っておかなければならないことが、 経度、緯度の表し方がいろいろとあるということです。 まず大きな違いが、日本測地系と世界測地系です。 同じ地点でも、この違いにより世界測地系の方が 南東におよそ450mずれた地点を表すことになります。 【参考】東京都庁の経度、緯度 日本測地系・・経度:139.69487、緯度:35.68627 世界測地系・・経度:139.69167、緯度:35.68949 それでは、それぞれの値を変換するにはどうすればいいでしょうか。 次のような式があります。変数の定義は次の通りです。 (ln:入力経度、la:入力緯度、lng:変換後経度、lat:変換後緯度) 日本→世界 lng = ln - la * 0.000046038 - ln * 0.000083043 + 0.010040; lat = la - la * 0.00010695 + ln
Next Diary Extended 文献関係はアマゾンアサマシエイトへのリンクになっています。あさましいのが嫌いな人はご注意ください。 更新情報: LIRS | RSS1.0 割と最近のつっこみ: 2008-04-01 momoko (04-01) guchi (04-01) Max (04-01) → 緯度、経度から距離を計算する ってどうやるんだろう、というのを半日調べたり作ったりしていた。 ヒュベニの式というものがあるらしい。 http://www.kashmir3d.com/kash/manual/std_siki.htm perl で書いてみた。角度はラジアン。 sub distance { #2地点間の距離を計算する my ($lat1, $lon1, $lat2, $lon2) = @_; my ($m, $n, $d, $dp, $dr, $p); $dp = ab
一昔前に、GoogleMapsから郵便番号に経度緯度情報に変換するプログラムを書きました。そのデータを使おうと思ったのですが、見当たりません。確かブログにコード書いていたなぁと思って、過去の記事「郵便番号から緯度経度情報を取得する」を見たのですが、我ながらこれはひどいw 緯度経度を取るには、住所から検索する必要があります。郵便番号直では出来ないので注意してください。一連のデータを作る方法は次回書きます。 続きを書いていませんね。と言う訳で、その当時どんなソースを書いたか謎ですが、さくっともう一度作りました。以下手順とプログラムです。 まずは郵便番号データをダウンロードしてきて、必要な形に整形します。 utf8に変換して、必要な項目のみピックアップします。ついでに、少しだけ項目の補正をします。補正処理はもっともっと色々しないといけないことがあるのですが、ここでは割愛します。 nkf -w K
Web2.0 ワークショップ資料 1 一歩進んだ位置情報一歩進んだ位置情報 ~~位置情報デバイスとデータストア∼位置情報デバイスとデータストア∼ ここギコ! 大塚恒平 Web2.0 ワークショップ資料 2 自己紹介自己紹介 2001年10月、au by KDDI端末へのGPS搭 載で位置情報に目覚める 2002年∼2005年、ケータイ3キャリア+PHS1 キャリア対応の位置情報マッシュアップ(悪く 言えば不法利用)サイトを趣味で運営 地図等を不法利用しなくてもよい方法を求め、 オープンソースGISツールに興味を抱く Web2.0 ワークショップ資料 3 アウトラインアウトライン 背景 携帯電話位置情報利用入門 空間データベース利用入門 まとめ Web2.0 ワークショップ資料 4 背景背景 Google Mapsの登場 – 誰でも簡単に位置情報Webサイトの構築が可能に でも、どんな位置
ソフトウェア開発のお仕事メモや、フェイキックIOLの手術体験談をマイペースに残していました。 もうあの頃へは戻れない・・・ MySQLの4.1以降で、GeoMetry型という空間情報を扱うデータ型が 導入されています。 GeoMetryデータをAscii文字列によりやり取りするための記述として、 Well-Known Text(WKT)形式というフォーマットがあります。 (中には、バイナリ(WKB)派の人もいると思います。が、もしコンポーネントのI/Oとして 使う場合、ユーザインタフェースとしては直感的にわかるWKTが良い気がします) 以下は、WKT形式で空間情報を表現した例です。 [ジオメトリオブジェクトの WKT の例より] Point: POINT(15 20) 注意: Point 座標はカンマなしで指定される。 Point が 4 つある LineString。 LINESTRIN
Posted by nene2001 at 01:25 / Tag(Edit): mysql spatial / 2 Comments: Post / View / 1 TrackBack / Google Maps Web2.0ワークショップで講演するのに、ただでさえ一人だけ素人でまともな講演できるか不安なのに、勉強せずに今の知識だけではいかんだろうということで、今までほったらかしてきたMySQL4.1以降の空間情報利用法を勉強。 といっても、こちらに4.1の日本語マニュアルあるので全然苦労なしだが。 ただ動作確認は5.1でやっているので、英語版5.1マニュアルとの照らし合わせはやってますけど。一応。 PostGISとの比較で書くと、PostGISの場合、PostgreSQL本体とは別のプラグインであるせいか、位置情報カラムのついたテーブルはいっぺんにはできない。 例え
MySQL4.1以降で空間情報を扱う機能が使えるけど、指定した緯度経度から半径nメートル以内の検索が出来ないのが難点です。 かなり大雑把なやり方で半径nメートル検索のやり方を考えてみました。 まず最初に緯度経度の情報を持ったテーブルを作成。 CREATE TABLE `geotable` ( `id` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY , `name` VARCHAR(255) NOT NULL, `geom` POINT NOT NULL, SPATIAL INDEX(geom) ) ENGINE = MYISAM ; 続いてデータを挿入。 INSERT INTO `geotable` (`name`, `geom`) VALUES ('上野駅', GeomFromText('POINT(139.777254 35.713768)')
こんにちは、アシアルの中川です。 Google Mapsに表示する情報をMySQLのgeometry型で扱う方法を試してみました。 Google Mapsのある地点にマーカーを表示したりすることがある場合、 緯度・経度の情報で地点に表示させることができますが、 データベースにこの情報を保存する場合、lat(float), lng(float)とそれぞれカラムに保存する方法もあるのですが、この方法では各データの位置の関係が非常に扱いにくくなります。 Google Mapsで表示されている範囲内のデータのみ取得したい場合や、 ある地点から近い順に取得する場合などに面倒なことになります。 そこで、MySQL4.1以降で用意されている空間情報を扱う機能の「geometry」型を使用します。 「MySQL 4.1 リファレンスマニュアル :: 10 MySQL における空間情報の機能(日本語)」 「
IDEA*IDEAに「Google Maps上でクリックした地点の住所を知る方法 | IDEA*IDEA」という記事があったので調べてみると、数日前から Google Maps API に逆ジオコーディング(緯度・経度から住所を求める)機能が追加されていたみたいです。 » Google Geo Developers Blog: Geocoding… in Reverse! 早速、むかし作った「飲食店検索 – この辺で」の中に組み込みました。(元々別の逆ジオコーディングサービスを使わせてもらっていたのですが、しばらく前に使えなくなっていて機能を外していたんです。) var $ = function(id) { return document.getElementById(id); } var map = new GMap2($("map")), var geocoder = new GCli
こんちは。松田です。 トレイン・トレインで使用しているGoogleMapをいじっている時に座標(緯度・経度)から地名を取得する必要が出てきたので、その際に調べた逆Geocoding機能を実装したAPIをまとめてみました。 GoogleMapsAPIなど地図を使ったシステムを使用していると、住所から緯度経度などの情報を取得する方法が必要になります。これはGeocodingと呼ばれる技術で、GoogleMapsAPIではすでに公式なAPIが存在しています。 これとは逆に、ユーザーに登録させたスポットの地名を自動入力させたりする場合など、座標から地名情報を取得したい場合があります。これらは「逆Geocoding」や、「Reverse Geocoding」などと呼ばれていますが、現在のところGoogleMapsのAPIは提供されていません。 この逆Geocoding機能が使えるサービスをいくつか紹
正式なアナウンスやGoogleGroupsにも記述が見当たらないので一時的な可能性もなきにしもあらず。 情報源はこちら。 GoogleMapsAPIで日本語Geocodingが可能に? - cles::blog 今年の6月にGoogleMapsでジオコーディングが使えるようになったがすぐに日本の地名には対応しなくなってしまった。 Google Maps API Official Blog: Geocoding at last! Removed Japan from the list of countries for which we offer street-level geocoding, as it is not available there. たいへん申し訳ございません。 m(_ _)m 非常に残念だったが、現在、以下の公式なサンプルで再び動いている。 Google Maps
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く