2008年7月10日

 Virtual Earth, An Evangelist's Blog より。元記事はVirtual Earth Map Controlのバージョンをアップグレードする際のTipsなのですが、これは他にも大いに使える! ので紹介。

 元記事の内容は、Virtual Earthをアップグレードする、つまりHTML内のscriptタグのアドレスを変更することでできるのですが、既に稼働しているWebサイトをいきなり変更はできないよね。簡単に新しいバージョンでの表示を確認するため、クライアントPCのWebブラウザに表示するときにプロキシを使って旧バージョンのアドレスを参照せず、新バージョンのアドレスを参照しにいくようにするってものです。わかりにくい?

 そこで登場するのがFiddlerというIE用アドインです。一応マイクロソフト製。私もHTTPの通信内容を覗くのに使ったことがありました。結構前からあります。

 手順。試しにこのページのCSSを他の人のCSSに置き換えて表示させてみます。

  1. Fiddlerをインストール。IEのツールバーボタンから起動できます。
  2. FiddlerのRulesメニューから「Customize Rules」を選択。
  3. jsファイルが開くので、「OnBeforeRequest(oSession: Session)」という記述を検索。
  4. 「{」の下に次のように書き加えます。もしこのアドレスなら次のアドレスに置き換えるってだけ。「http://」は付けません。
    if (oSession.url.toLowerCase()=="blogs.wankuma.com/katamari/customcss.aspx") {
        oSession.url = "blogs.wankuma.com/torikobito/customcss.aspx";
    }
  5. ファイルを保存してエディタを終了。
  6. 必要に応じて、IEのキャッシュ削除
  7. テストするWebページへアクセス!

 すると、こんな感じになりました。とりこびとさんありがとう。無断で使用しました。

katamari.wankuma.com

 FirefoxからもFiddlerの使用が可能です。プロキシとして動いているだけなのでFiddler起動中に次のように設定しておけば、Firefoxでも同様にIEと同じ結果が見れます。

インターネット接続

 いろいろと活用できそうですね。他にもカスタムルールを書き換えることでいろいろできると思いますが、私は知らないです。HTTPヘッダ見るのにしか使っていなかったので・・・・・・。日本語で紹介しているページはあまりなさそうですが、@ITの3年前の記事にありました。

Windowsユーザーのためのワンポイント・レッスン 第69回:ITpro

あわせて見ると良いかもー。

posted @ 23:21 | Feedback (87)

 Virtual Earth Map Controlで描かれたマップの余白部分の背景色は、Map Controlが勝手に色を変更するのでdivタグのstyleにbackground-colorを指定していてもその色が表示されません。

Virtual Earth

 このベージュっぽい色の部分を別の色に変更する方法が、Virtual Earth, An Evangelist's Blogに載っていたのでさっそく試してみました。そしたら完全でなかったので、記事を元によりうまく動くように考えてみました。

 内容はVEMapのonchangeviewイベント発生時に毎回マップを表示しているdivタグのスタイルを書き変えることをしています。これだけではマップ上でマウスホイールを動かしてズームしたとき、それ以上ズームアウトできない場合はイベントが発生しません。VEMapとしては何も変化していないので正しいのですが、Map Controlはこのときも背景色を書き変えてしまうので指定した色が戻ってしまいます。あと、マップロード時もイベントが発生しますが、書き変えた順でMap Controlに負けます。

 そんなわけで、マウスホイールのイベントは自分でハンドルして、マップロード直後もイベント時とは別に自分で背景色を指定します。これでだいたい良い感じ。

 元記事のコードも参考にしてくださいね。名前やら変えてますが処理として追加したのは「!」の部分です。ホイールイベントを関連付けているattachEventはIE用ですのでFirefoxにも対応するには修正が必要です。

var map = null;
var div = null;

function pageLoaded() {
    div = document.getElementById("myMap");
    map = new VEMap("myMap");
    map.AttachEvent("onchangeview", viewChanged);

    // !
    div.attachEvent('onmousewheel', viewChanged); // (attachEvent is for IE)

    map.LoadMap(new VELatLong(36.17463, -115.12330), 1);

    // !
    div.style.backgroundColor = color;
}

var color = "#B3C6D4";

function viewChanged(e) {
    if (!div) return;

    switch (e.mapStyle) {
        case 'r':
            color = "#B3C6D4";
            break;
        case 'h':
            color = "#020514";
            break;
        default:
            //
    }
    div.style.backgroundColor = color;
}

 これを実行するとこんな感じ。

Virtual Earth

 良い感じです。

(via Virtual Earth, An Evangelist's Blog : Change Virtual Earth Background Color

posted @ 23:20 | Feedback (0)

 「使ってみよう! Windows Live SDK/API:第11回 Live Messenger Library ―― オリジナルLive Messengerの作成(前編)」が公開されました。今回からはLive Messenger Libraryです! WebページにLive Messengerの機能を実装できちゃいます。今回の記事はまだ何もできてませんが、次回は最低限 会話ができるようになるまで紹介できたらいいな。

 記事中にも書いていますが、Visual Studioを持っている方は是非JScript IntelliSenseを利用してみてくださいね。でも書き方を工夫しないと全く恩恵が受けられないのです。そこらへんを記事にこないだ書いておきました → JScript IntelliSense Tips 

 また、リファレンスは日本語化されていません。必要な方は英語も参照しましょう。情報が少ない不親切なリファレンスですけどね。英語の説明もほとんどないです。

 あと、動作ブラウザですけど、具体的な記述がドキュメントに見当たらなかったのでよくわからないのですが、少なくとも私のFirefox3では動いていません。最低限 動くのはIE7だけと考えておいたら良いかもしれません。

posted @ 23:19 | Feedback (0)