GeoHex V3公開しました。

GeoHex(ジオヘックス)V3を公開しました。

V3のデコードロジックに一部不具合が報告され、改修に時間がかかっております。
そのため、改修完了までV3の公開を一旦中止します。
各移植版ライブラリのご利用もお控えください。

V3デコードロジックの不具合改修を完了しました。
デモサイトも再公開しています。

コード体系を見直し、前方一致も可能な仕様を再定義しました。
<新コード体系>
Hexコードの各1文字にXY両軸の情報を内包しており、
Hexサイズ(Level)が1段階小さくなる度にHexコードが1文字増加します。
geohexv3_03

<新Hexマッピング体系>
Level間の分割比率を4分割(2*2)から9分割(3*3)に変更しました。
V3では、中心のHexを取り囲む6つのHexが上位Hexに内包されます。
geohexv3_02

以下、V3エンコードロジックの解説です。

  1. 緯度経度をHex座標系に変換(旧仕様と共通)
  2. Hex座標のX軸Y軸それぞれ3等分し、各領域を[0,1,2]と定義geohexv3_04
  3. X[0,1,2]+Y[0,1,2]の1セットを3進数→10進数(9進数)変換geohexv3_05
  4. 該当するLevelまで領域判定を繰り返し、コードを連結geohexv3_06
  5. コード先頭3文字を30進数変換し2文字に圧縮、Level0に定義geohexv3_08

コード体系と座標系が3進数に基づいているため、空間インデックスとして組み合わせる隣接Hexや上位Hexの算出を3進数演算で容易に求めることができます。

指定Hexから*ステップ以内のHex一覧を取得する、といったケースにおいても上位Hexの組み合わせによる前処理を行うことで検索コストを下げることも可能になると考えられます。

HexLevelの範囲が2Levelに限定される場合は、4箇所のHexで上位Hexを補間することも可能です。
geohexv3_07
今回のコード体系の変更に伴いエンコード/デコードロジックに修正が入りますが、基本的な内部処理構造に変更はありません。

エンコード・デコード以外の拡張関数についても順次対応予定です。

▼@niyalistさんTogetterまとめ
http://togetter.com/li/81426

GeoHexの仕様ならびに関連するプログラム、サービスは以下の条件を満たすものに限り、クリエイティブ・コモンズのライセンス形式に則り、ライセンスバッジ画像およびライセンス文言・URL等のクレジットを再配布するソースコード・公開するサイト内・アプリのクレジット欄等に掲載していただくことにより自由に「改変」「再配布」「商用利用」が可能です。

・インターネット上のオープンなWebサービスである
・GoogleMaps等の地図上で動作しGeoHexによるビジュアル表現を行う
・地図もしくは同一画面上にクレジットバッジを表示する(要リンク)

クローズド用途のサービスや、バックエンド処理のみに利用される場合は別途ライセンスを発行いたしますのでお問い合わせください(→こちら)。
※クリエイティブ・コモンズ(CC BY-SA)ライセンスは、
原著作者名とリンク、クリエイティブコモンズサイトへリンクが必要です。
また、同一ライセンスによる公開/二次配布のみ可能です。
(ソースコードを含む二次制作物は全てCC BY-SAライセンスが継承されます。)
別ライセンスによる上書きは許諾されませんのでご注意ください。

ただし、原著作者および原著作者から別途ライセンスを取得している場合はその適用対象範囲外とします。

ライセンス : MITライセンスに移行しました。
MIT License
Copyright (c) 2009 @sa2da (http://twitter.com/sa2da)

http://www.geohex.org

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

<操作方法>

地図上のクリックすると、クリックした座標を含むヘックスが描画されます。
画面右上の[+][−]でヘックスレベル(サイズ)を変更可能です。

<表示項目>
[ZONE] ヘックスコード。
[LEVEL] 0〜15。数字が大きいほど、ヘックスサイズが小さくなります。
[X,Y] 各レベルにおける斜形座標系の座標値

※GeoHexのライセンスおよび規約は予告なく変更する可能性があります。
GeoHexを利用している全てのプログラムやそのライブラリを利用しているサービスは、
いずれもGeoHex.netの最新の規約に準拠していただくようお願いします。

コメント 停止中