Google Code Project Hosting で差分表示が可能になってた

  愛用している Google Code Project Hosting ですが、ソースコードの差分表示が可能になっていたので紹介。
  もしかしたら始めからあったかもしれないのですが、最近気づいたので……

  簡単に、Google Code Project Hosting ですが、Google が提供している、オープンソース向けの Subversion レポジトリのホスティングサービスです。
  具体的に何ができるかは、ヘルプを見てください。

- Google Code FAQ - What's the new project-hosting service on Google Code?
  http://code.google.com/support/bin/answer.py?answer=56507&topic=10381

  まあ、trac のようなものです。

  で、本題ですが、百聞は一見にしかずということで以下をご覧下さい。

  

- Diff of UMain.pas r7 - vimtray - Google Code
  http://code.google.com/p/vimtray/source/diff?old=5&r=7&format=unidiff&path ...

  trac のように綺麗に色分けされて差分表示ができるようになっています。結構便利です。
  また、リポジトリブラウザみたいなのもあって、こちらもなかなか便利です。

  なお、Google Code Project Hosting は Google のアカウントがあれば誰でも利用することができます。
  もちろん、オープンソースのプロジェクト限定ですが。

  Google Code Project Hosting のはじめ方は以下のページが分かりやすくまとまっています。

- Google Code でホスティング+TortoiseSVN の使い方
  http://kawa.at.webry.info/200801/article_5.html

GPolygon.fromEncoded() を利用して Google Maps のポリゴン表示を軽量化する

  Google Maps では GPolygon を利用してポリゴン (多角形) を描画することができます。
  しかし、GPolygon を使ったポリゴン描画には重大な欠点がありました。
  それは、点の数を多くすると Opera や Safari では描画ができずに、ブラウザが固まってしまう場合があるというものです。

  それを解決する手段かどうかはわかりませんが、Google Maps API v2.78 から GPolygon.fromEncoded() というメソッドが追加されて、あらかじめポリゴンのデータをエンコードしたデータを指定することができるようになりました。

- Official Google Maps API Blog: v2.78: Go ahead, Scroll your mouse wheels & encode your polygons!
http://googlemapsapi.blogspot.com/2007/04/v278-go-ahead-scroll-your-mouse- ...

  そこで、サンプルを作って実際にテストしてみました。

  以下サンプルでは、500 個の点 (座標値) を用いています。
  また、サンプルで利用したデータは、An encoding utility for polyline and polygon data から拝借しています。

1. GPolygon.fromEncoded() を利用しない場合

  http://pocari.org/demo/gpolygon/gpolygon.html

  (こちらのサンプルは、Opera、Safari の場合、ブラウザが固まってしまう場合があるのでご注意ください)

  こちらは配列に入っている座標を GPoint に追加して、最後に GPolygon で描画しています。

// 座標の配列 (実際は 500 個) を用意して
var mapPoints = [
    [ -78.57945,  33.88215 ],
    [ -78.65546,  33.94883 ],
    [ -79.07426,  34.304726 ],
       :
    [ -78.65546,  33.94883 ],
    [ -78.57945,  33.88215 ]
];

// GPoint の配列を作成して
var points = [];
for (var i = 0, len = mapPoints.length; i < len; ++i) {
    points.push(new GPoint(mapPoints[i][0], mapPoints[i][1]));
}

// 描画する (map は GMap2 のオブジェクト)
map.addOverlay(new GPolygon(
    points,    // 座標値
    '#3366cc', // 線の色
    2,         // 線の太さ
    1.0,       // 不透明度
    '#e5ecf9', // 塗りつぶす色
    0.5        // 塗りつぶす色の不透明度
));


  前述のように Opera、Safari の場合、ブラウザが固まってしまう場合があります。

2. GPolygon.fromEncoded() を利用する場合

  http://pocari.org/demo/gpolygon/gpolygon-fromencoded.html

  こちらは、あらかじめエンコードした座標値を GPolygon.fromEncoded() で描画しています。

// エンコードされた座標値 (途中で省略)
var encodedPoints = 'mrxmEppr~Mw_LbzMi...';
// エンコードされたズームレベル値 (途中で省略)
var encodedLevels = 'PFFHHMGEHCMLEGLLJ...';

// 描画する (map は GMap2 のオブジェクト)
map.addOverlay(new GPolygon.fromEncoded({
    polylines: [{
        points:     encodedPoints, // エンコードされた座標値
        levels:     encodedLevels, // エンコードされたズームレベル値
        color:      '#3366cc',     // 線の色
        opacity:    1.0,           // 線の不透明度
        weight:     2,             // 線の太さ
        numLevels:  18,            // ズームレベルの分割数
        zoomFactor: 2              // ?
    }],
    fill:    true,      // 領域を塗りつぶすかどうか
    color:   '#e5ecf9', // 塗りつぶす色
    opacity: 0.5,       // 塗りつぶす色の不透明度
    outline: true       // 線を表示するかどうか
}));


  こちらを利用することで、Opera、Safari でもブラウザが固まることはなくなります。

  さて、肝心の座標値をエンコードする方法ですが、アルゴリズムが公開されています。

- Google Maps API Documentation - Encoded Polyline Algorithm
  http://www.google.com/apis/maps/documentation/polylinealgorithm.html

  さらには、エンコードユーティリティもあります。

- Google Maps API Documentation - Polyline Encoding Utility
  http://www.google.com/apis/maps/documentation/polylineutility.html

  しかし、このユーティリティは使いづらいので、以下のサイトがお勧めです。

- An encoding utility for polyline and polygon data
  http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/encodeForm.htm ...

  とても便利な GPolygon.fromEncoded() ですが、zoomFactor といういまいちよくわからないパラメータが出てきます。
  とりあえず、適当に 2 とかしていますが、これが妥当かどうかはわかりません (期待通りに描画はされてはいます)。

  このあたりの参考になる 2 つのエントリを紹介しておきます (GPolygon ではなくて GPolyline ですが参考になります)。

- GPolyline.fromEncoded (hPod)
  http://hwat.sakura.ne.jp/hpod/200609/14-200000/

- Encoded Polyline (hPod)
  http://hwat.sakura.ne.jp/hpod/200610/17-200000/

  なにはともあれ、GPolygon.fromEncoded() で Opera や Safari でも問題なくポリゴンが描画できるようになりますので、同様の問題を抱えている方は試してみてはいかがでしょうか。

Google Maps APIv2 活用リファレンス

  4774130257
  amazon.co.jp 詳細ページへ
  アイティティ (著)
  技術評論社
  ISBN: 4774130257
  2007/2/9
  2,289 円

Web 2.0 ツールのつかいかた - まだ、Google だけですか?

  4774129089
  amazon.co.jp 詳細ページへ
  野本 幹彦(著), 梅田 望夫(著), 小飼 弾(著)
  技術評論社
  ISBN: 4774129089
  2006/10/6
  1,344 円

グーグル・アマゾン化する社会

  4334033695
  amazon.co.jp 詳細ページへ
  森 健
  光文社
  ISBN: 4334033695
  2006/9/15
  735 円

- via: 404 Blog Not Found
  http://blog.livedoor.jp/dankogai/archives/50633023.html

Google Maps Hacks の翻訳者によるサポートページ

  http://www.musha.com/gmh/

  プログラム例および参考ページへのリンクがあります.
  2 章の後半とか 6 章あたりにたくさんプログラム例があります.これだけいじっていてもなかなか楽しいです.

- Google Maps Hacks 地図検索サービス徹底活用テクニック
  4873112931
  amazon.co.jp 詳細ページへ
  Rich Gibson (著), Schuyler Erle (著), 武舎 広幸 (翻訳), 福地 太郎 (翻訳), 武舎 るみ (翻訳)
  オライリー・ジャパン
  ISBN: 4873112931
  2006/07/22
  3,045 円

Google Notebook の Firefox 拡張を使用時に,文字列を選択すると表示される `Note this +' を消す方法

  相変わらず Google Notebook を簡易メモ帳として重宝しているんだけど,文字列を選択すると `Note this +' が表示されます.

  Google Notebook

  これが表示されるたびに,ページがリロードされて「いらっ」となっていたのですが,これを表示させなくする方法.

  実はいたって簡単で,ステータスバーにある Google Notebook のアイコンをクリックすると,
  Enable 'Note This' button というメニューが出てきて,これのチェックを外せば OK.

  Google Notebook

  スクリプトを眺めたりしていろいろ探した割には,あっさり解決.

- ref.: [2006-05-19-1]: Google Notebook を Web ページのスナップショット置き場として使ってみる

Google Maps Hacks 地図検索サービス徹底活用テクニック

  4873112931
  amazon.co.jp 詳細ページへ
  Rich Gibson (著), Schuyler Erle (著), 武舎 広幸 (翻訳), 福地 太郎 (翻訳), 武舎 るみ (翻訳)
  オライリー・ジャパン
  ISBN: 4873112931
  2006/07/22
  3,045 円

Google が提供する地図検索サービスの活用事例が満載!

Google アドワーズ & アナリティクス活用テクニック

  4798111473
  amazon.co.jp 詳細ページへ
  永松 貴光 (著)
  翔泳社
  ISBN: 4798111473
  2006/07/22
  1,890 円

効果的なネット広告活用方法を、サンプル事例をもとにやさしく解説

Google Analytics 入門 簡単・無料ソフトで始める Web マーケティング

  4844322761
  amazon.co.jp 詳細ページへ
  かわち れい子 (著)
  インプレス R & D
  ISBN: 4844322761
  2006/07/01
  1,554 円

高度な分析が無料で簡単にできるログ解析ソフト「グーグル・アナリティクス」初の解説書