Google Mapsで地形も表示できるようになった

2008/12/02 | Google Maps

クライアントに言われて初めて気がついた。Google Mapsで地形データも表示できるようになっているらしい。調べてみたら去年の終わりごろから使えるようになったみたいだ。使い方としては、あらかじめmapオブジェクトを生成して、以下の行を記述。

map.addMapType(G_PHYSICAL_MAP);

これで「地形」ボタンが表示され、クリックすると見事地形が表示された(素朴に感動)。デフォルトで表示される地図を地形にするには以下の行で対応。

map.setMapType(G_PHYSICAL_MAP);

どんどん機能が追加されてるっぽい。すごいと思うんだけど、ほんと、ついていけない。

var宣言が重要

2008/10/27 | JavaScriptの常識

今までJavaScriptでの開発が苦手だと思っていた。理由は期待したとおりに動いてくれないから。そして今日JavaScriptでのいろいろな挙動が他の言語(ていうかPHP)とかなり違う(っぽい)ことがわかったので、徹底的にメモしていくことにする。

PHPもJavaScriptも事前に変数を宣言しなくても、普通に使える(実はコレが落とし穴)。JavaScriptではvarで変数を宣言するわけだが、このvarをつけなかったときの挙動が問題。問題なのは関数内部のみで使用する(ローカルな)変数だ。

function testA(){var num=1;}
function testB(){num=1:}

この二つの関数は似て非なるものだ。testA関数は、これを実行しても何も起こらない。だって変数を内部で宣言しているだけだから。testBはtestAと同じように見えるが、挙動がまったく違う。「global変数numに1を代入した」と動作になる。

PHPでは「global宣言しない限り、関数内で扱う変数は基本的にローカル」であるのに対し、JavaScriptでは「関数内ではvar宣言したものに限りローカルで、宣言しなければグローバル」らしい。

そりゃ、これだけ違えば期待したとおりに動かないよ。

jQueryでドラッグアンドドロップ

ドラッグアンドドロップを前回prototype.jsとscriptaculous.jsで作ったけど、ここのところjQueryが気に入っているので、こちらではどのように実現すればよいのか調べてみた。jQueryのプラグインでいろいろな機能を追加して行くやり方がすごくスマートに見えて、大変お気に入りなわけで。

ドラッグアンドドロップのデモ

単純に順番を入れ替えるだけではなくて、追加と削除、みたいなルーチンを作ってみた。コツをつかむまでは大変だけど、少しわかってくるとすごく面白い。

しかし最近つとに思うのは、こういう動きをサーバ側プログラムとあわせて解説するサイトがほとんどないこと。ドラッグアンドドロップなんて、サーバ側と連携しなくてどういう使い方があるのかまったくわからない。自分でもしらない面白い遊び方があるのだろうか。それとも「秘密」にしてしまっているのだろうか。

角を丸くする

2008/10/15 | 角丸

ウェブで角丸なデザインを採用すると、いかにも凝ったようなデザインに見える。コーディングの手間もかかるので、そういったデザインを採用するサイトが少ないからだ。でも、コーディングしなくてもJavaScriptで実現できてしまう。JavaScriptって何のための言語なんだかわからなくなってくる。サンプルはjQueryのプラグインとして動作する。

角丸のサンプル

情報元はこちらのページ。

jQuery Corner Gallery

鏡像効果その2

2008/10/10 | 画像処理

鏡像効果といえば、もう一つ有名なのがreflection.js。何かのプラグイン形式、というわけではなく単独で動作する。jQueryのプラグインはバグっぽい印象を受けたので、こちらを試してみた。こちらは問題なさそうだ。

鏡像効果reflection.jsのサンプル

とりあえず当面はこちらを使うことにする。本来ならjQueryならjQuery、prototypeならprototypeとシリーズをそろえて使いたいところだけどバグがあっては本末転倒なので。

reflection.jsのサイトはこちら