地図タイルの命名規則とGoogle Mercatorの深淵
. @kokogiko あ、Google Mercator で定義した Geohash って、役割的に地図画像タイルのパスと同じですね。誰かの地図画像タイル命名規則をパブリックドメインにして、皆で使えば、それなりに嬉しい。c.f. http://bit.ly/9ZIu1r OSM
2010-09-28 06:45:51あ…そう言われてみればそうだ RT @_hfu_ Google Mercator で定義した Geohash って、役割的に地図画像タイルのパスと同じですね。
2010-09-28 07:35:25うちのタイル名は(メルカトルでなく古地図ですが)zoom-x座標-y座標.jpgだから、前方一致もクソもなくインデクスに使えない。RT @_hfu_ 誰かの地図画像タイル命名規則をパブリックドメインにして、皆で使えば、それなりに嬉しい。
2010-09-28 07:36:51@kokogiko #{level}-#{x}-#{y} 系のタイル名(たぶん、最もよく使われているタイル名)では、確かに Geohash の前方一致整理はできないですね。ただ、位置からタイル名を算出して当てるという意味でのインデクスの機能は果たすかな?Geohash的なのは→
2010-09-29 05:21:43@kokogiko Geohash的にx,yをinterleaveしたパターンのタイル名って、Googleが使っていた気がしたけど、いまGoogleMapsをWebインスペクタで見てみたら、x,y,zを別々に明示したものになってた。
2010-09-29 05:25:29@kokogiko 前方一致性を持っているのは、Microsoft の Bing Maps Tile System かな。Quadtree に素直に数字を割り当てるもの http://bit.ly/br2QP5 (あとで読む)「開示されている=使える」ではないけど。
2010-09-29 05:31:47. @kokogiko http://bit.ly/9U2NpJ / GDAL2Tiles の人たちは TMS 準拠すなわち(zoom,x,y)独立系のタイル名をはき出すみたい。(http://bit.ly/a6lAGO )/ TileCacheのDisk上のタイル名は長い…
2010-09-29 05:42:49. @kokogiko 今朝の結論:前方一致性を求めなければ、既存モノでは権利的に安全そうなTMSタイル名が有望?前方一致性を求めるならば、Bingのやつが権利的にOKでなければ、Geohash/Sp.Mercator(←ほぼ自動的に決まる)を再発明する意義がありそう。
2010-09-29 05:46:23. @kokogiko 二つ前の私のツイートで、URL壊れていたけど http://bit.ly/aMz0gZ の地図で地名検索すると、3つのタイルシステムのタイル名が見える。GoogleとTMSってyが違うのか。googleが北から、TMSが南から。
2010-09-29 05:51:27quadtree の文字表現上の基数を苛烈化しようとすると、もとのquadtreeが4=2bit木だから、常識的には4,8ビットで切りたくなる4ビットならBASE16だが8ビットのBASE256は現実的ではないだろう。
2010-09-29 05:57:46quadtreeで4ビットまとめBASE16とすることは、Zoom0,2,4,6,...だけが許されるかわりに文字数を半減することになる。建物特定レベルでZoom22だから、建物特定レベルのquadtree+BASE16の字数は、11文字。22文字と11文字の違いは大きい。
2010-09-29 06:00:16Sp.Mercator平面をQuadtreeで分割すること自体について特許が取られていたら、アウトだけど、Sp.Mercator+Quadtree+BASE16、それなりに使えそうだ。Sp.M上でのGeohashは切れが5ビット(BASE32)のデメリットが、たぶんある気がする。
2010-09-29 06:04:40とりあえず、Spherical <M>ercator+<Q>uadtree+BASE<16> の alias として MQ16 という名前を与えておこう。
2010-09-29 06:08:22MQ8 も良いかも。十進数値しかゆるされないフィールドにも入力できる。bing quadtree と比べて符号長を 2/3 にできる。建物レベルで16文字程度か?
2010-09-29 06:15:29いや、やはり2の奇数乗のBASEはナイか。 @kokogiko の要請「メルカトルで正方性がある」を満たせない。BASE8 とか、BASE16 (MGeohash)は、文字列が表現する矩形が1:2の長方形になるときがある。それを許すなら元のGeohashがとまし考える人が多かろう
2010-09-29 06:25:48http://bit.ly/aMz0gZ を見るに、Google Mercator の秘密は、上下界緯度を、投影地域が正方形になるように選んでいることであるように見える。確かに、常識的Mercatorより広いと聞いたことがあるが。検証してみる。ロス海注目。
2010-09-30 04:10:04WGS84は世界を2:1の長方形だという。Google Mercator(Web Mercator)は世界を1:1の正方形だという。Geohashはあえて2の奇数乗の基数を使って経度側を先に分解することにより2:1世界に対応したが、Web Mercatorではそれは意味をなさない
2010-09-30 04:12:54Google Mercator で Geohash 的割をするには、経緯度の定義域を明確にする必要があるが、緯度の定義域は意外と明示されているものが少ないようだ http://bit.ly/bz3A4p 算出すればよいがTMS tileするためには必須パラメータなので見つかるはず
2010-09-30 04:16:54EPSG による Google Mercator (Web Mercator) の記述は http://www.epsg-registry.org/export.htm?gml=urn:ogc:def:crs:EPSG::3785
2010-09-30 04:20:44Google Mercator についてこれまでに気づき始めていること (1) 楕円体を使わずに球を使用したのは正逆変換が近似式とならず単純な式で済むから (2) 緯度限界を適当に引っ張ることによって値域を正方形とし、四分木を導入しやすくした(要確認)
2010-09-30 04:24:57Web Mercator の定義域が正方形になるための北限を計算すると、85.051128779807 度であった http://jsdo.it/hfu/zGOm #jsdoit #openlayers (目的に対して冗長なコードだが)
2010-09-30 04:48:56この、the number to make the earth squareを「85.051128779807」でGoogle検索すると、http://bit.ly/8X7lHP など、TileCache がらみのリソースが見つかった。この値は、それほどは周知されていないもよう。
2010-09-30 04:57:47ありがとうございます。hfuはあいかわらずtwitterの使い方間違っている感w ここから先は根性必要だろうなあ RT @niyalist「地図タイルの命名規則とGoogle Mercatorの深淵」をトゥギャりました。 http://togetter.com/li/56358
2010-10-05 06:07:32「Google Mercator に対して等分4分木して Geohash 的に interleave して BASE16 で符号化したコードがよさそう」と言うのは至極簡単だが、そこから先実際にコードを提案するのは飛躍的に大変。なんというか「かもめのジョナサン」的な。
2010-10-05 06:17:10最後の2ビットを無視する末尾文字uを導入することで、全レベルのタイルにコードを与えることはできる。(ただし、正規化が必要な問題と、前方一致検索に不利になる問題がある)とか。
2010-10-05 06:34:02