2009年12月19日土曜日

PostGISで使う SRID

自分に必要なのはこれだけかな。

select * from spatial_ref_sys where srid in (4301, 4326)

結果を要約すると、
4301 → Tokyo (いわゆる日本測地系。日本の地図でけっこう使われている)
4326 → WGS 84 (いわゆる世界測地系。Google Maps等で使われている)


参考:Bubble://ちずろぐ/別巻/ SRIDList

PostGIS調査メモ

参考になったリンクや、後で見るかもしれないリンクの集。それに加えて気づいたことのメモ。



インストール


Shapeファイル関連


マニュアル和訳

2009年12月15日火曜日

PHPで GDを使って画像ファイルに文字列を書き込む例

とりあえずよく使いそうな機能はこんなとこか。
楕円書いたりいろいろできるみたいだけど、使うかな?
四隅を角丸にしたいかも...

<?php
$string = 'こんにちはこんにちは!';
$fontSize = 12;
$padSize = 10;
$angle = 0; //角度を指定できる
$fontPath = 'C:/WINDOWS/Fonts/MSGOTHIC.TTC'; //Windowsの場合

try {
//文字列の大きさを取得 http://jp2.php.net/imageTtfBBox
$box = imageTtfBBox($fontSize, $angle, $fontPath, $string);
if ($box === false) {
throw new Exception('imageTtfBBox()失敗');
}
$boxWidth = abs($box[2] - $box[0]);
$boxHeight = abs($box[7] - $box[1]);

//キャンバス生成 http://jp2.php.net/imageCreateTrueColor
$width = $boxWidth + $padSize * 2;
$height = $boxHeight + $padSize * 2;
$img = imageCreateTrueColor($width, $height);
if ($img === false) {
throw new Exception('imageCreateTrueColor()失敗');
}

//背景色と文字色をそれぞれ造る
// http://jp2.php.net/imageColorAllocate
// http://jp2.php.net/imageColorAllocateAlpha (透過の場合)
$red = 0xFF;
$green = 0x00;
$blue = 0x00;
$bgColor = imageColorAllocate($img, $red, $green, $blue);
if ($bgColor === false) {
throw new Exception('imageColorAllocate()失敗');
}
$red = 0xFF;
$green = 0xFF;
$blue = 0xFF;
$alpha = 20; //0~127。127は完全に透明
$textColor = imageColorAllocateAlpha($img, $red, $green, $blue, $alpha);
if ($textColor === false) {
throw new Exception('imageColorAllocate()失敗');
}

//キャンバスに色を塗る http://jp2.php.net/imageFill
$startX = 0;
$startY = 0;
if (!imageFill($img, $startX, $startY, $bgColor)) {
throw new Exception('imageFill()失敗');
}

//文字を書く http://jp2.php.net/imageTtfText
$startX = $padSize;
$startY = $boxHeight + $padSize; //左下の座標を指定する
if (!imageTtfText($img, $fontSize, $angle, $startX, $startY, $textColor, $fontPath, $string)) {
throw new Exception('imageChar()失敗');
}

//出力(第2引数にファイルパスを渡すとファイルに保存する)
$type = 'gif';
header('Content-type: image/' . $type);
switch ($type) {
case 'gif': // http://jp2.php.net/imageGif
$result = imageGif($img);
break;
case 'jpeg': // http://jp2.php.net/imageJpeg
$quality = 100; //0~100。大きいほど高品質。デフォルトは75
$result = imageJpeg($img, null, $quality);
break;
case 'png': // http://jp2.php.net/imagePng
$quality = 0; //0~9。小さいほど高品質
$result = imagePng($img, null, $quality);
break;
}
if (!$result) {
throw new Exception('出力失敗');
}
} catch (Exception $e) {
header('Content-type: text/html');
echo $e->getMessage();
}

//後始末 http://jp2.php.net/imageDestroy
if ($img && !imageDestroy($img)) {
throw new Exception('imageDestroy()失敗');
}

Google Maps API V3と V2の機能比較

列挙しようかと思ったがけっこうありそうなので、とりあえず思いついたものだけメモ。


V2になくてV3にあるもの

  • 複数の吹き出し(InfoWindow)を同時に表示できる


V2にあってV3にないもの
  • ストリートビュー
  • Overview(右下の縮小地図)
  • Polygonの面積の取得
  • Polylineの長さの取得
  • GoogleBar(検索ボックス)
  • AdsManager

Google Maps API 有償版(プレミア)調査メモ

現時点での調査メモ。
実際に使うなら、最新情報の確認および問い合わせをした方がよい。


公式紹介ページ
1. Googleの紹介ページ
Google Maps API Premier - データを視覚化
2. ゼンリンによる紹介ページ(概要)
法人向けサービス:Google Maps API Premier | ゼンリンデータコム
3. ゼンリンによる紹介サイト(詳細)
プレミアについて/Googleマップの商用サービス GoogleMapsAPIプレミア

参考になるのは3番。


プレミアを使うことの主なメリット



料金について



Google Maps API利用規約についての参考ページ
Google Maps APIの利用規約について - Google-Maps-API-Japan | Google グループ

Windowsに Git (TortoiseGit)をインストール

手順をメモしたがメモする程でもなかった。

  1. tortoisegit - Project Hosting on Google Codeの右側の「Blogs:」にあるリンク「Latest Version(32bit)」からMSIをダウンロードして実行(インストール)
  2. msysgit - Project Hosting on Google Codeの右側の「Featured downloads:」にあるリンク「Git-[バージョン番号等].exe」からexeをダウンロードして実行(インストール)
    • TortoiseGitを使うなら、「Git GUI Here」「Git Bash Here」やデスクトップ等へのショートカットは作らない方が煩わしくなくて良いと思う

2009年12月4日金曜日

PHPでの配列の並び替え(ソート)の比較

PHP5.3で実験。
何気なくsort()を使うと、意外と意外な結果になるので注意。

$before = array('Google', 'apple', '+11112', 1112, '112', 12, '0', -1);

$array = $before;
sort($array);
foreach ($array as $val) echo $val . ', ';
//sort()の第2引数のデフォルトはSORT_REGULAR
//文字列は大文字優先
//今回のように数値と文字列が混在するとおかしくなる?
// => -1, 0, 112, Google, apple, 12, 1112, +11112,
echo '<hr />';

$array = $before;
sort($array, SORT_NUMERIC);
foreach ($array as $val) echo $val . ', ';
//数値としてソート
//文字列は大文字・小文字を無視したソートで、ゼロの前になるようだ
// => -1, apple, Google, 0, 12, 112, 1112, +11112,
echo '<hr />';

$array = $before;
sort($array, SORT_STRING);
foreach ($array as $val) echo $val . ', ';
//文字列としてソート
//記号、数字、文字列(大文字優先)の順
//数は数ではなく文字列としてソートされる
// => +11112, -1, 0, 1112, 112, 12, Google, apple,
echo '<hr />';

$array = $before;
sort($array, SORT_LOCALE_STRING);
foreach ($array as $val) echo $val . ', ';
//localeごとのソート(今回の環境ではSORT_STRINGと同じだった)
// => +11112, -1, 0, 1112, 112, 12, Google, apple,
echo '<hr />';

$array = $before;
natsort($array);
foreach ($array as $val) echo $val . ', ';
//「自然順アルゴリズム」
//人間がやったらまあこうするだろうという感じか
//記号、数、文字列の順
//数値は文字列ではなく数値としてソートされるのがSORT_STRINGとの違い
// => +11112, -1, 0, 12, 112, 1112, Google, apple,
echo '<hr />';

$array = $before;
natcasesort($array);
foreach ($array as $val) echo $val . ', ';
//「自然順アルゴリズム」、かつ大文字小文字を区別しない
// => +11112, -1, 0, 12, 112, 1112, apple, Google,

natcasesort()が一番しっくりくる。
大文字・小文字の違いは無視して欲しいし。

2009年12月2日水曜日

もう一歩踏み込んでGoogle Maps APIを使いこなすための12の参考サイト

(2010/09/02:情報が古くなっていたので全面的に改定)


Google Codeにあるもの(全て英語)

Google Maps JavaScript API V2 Reference - Google Maps JavaScript API V2 - Google Code

  • Google Maps API V2(Version 2)のリファレンス
  • V2は既にDeprecatedだが、V3にはまだ無い機能もあるので場合によってはV2が必要になる
  • 日本語のリファレンスはどこにいった?(以前からUpdateが追いついていなかったが...)

Google Maps Javascript API V3 Reference - Google Maps JavaScript API V3 - Google Code
  • Google Maps API V3 (Version 3)のリファレンス
  • V2には無かった円を描く機能がある

gmaps-utility-library-dev - Project Hosting on Google Code

google-maps-utility-library-v3 - Project Hosting on Google Code
  • Google Maps API V3のための準公式プラグイン集
  • だいぶ増えてきた
  • Google Maps API V3にはまだ無いOverview Controlを追加するプラグインもある

gmaps-api-v3-googlebar - Project Hosting on Google Code
  • Google Maps API V3にはまだ無いGoogleBar(Local Search Control、検索窓)を追加するプラグイン

google-maps-icons - Project Hosting on Google Code

Dynamic Icons - Google Chart Tools / Image Charts (aka Chart API) - Google Code
  • Google Chart APIの、動的にアイコンを生成する機能
  • 生成したアイコンはGoogle Mapsのマーカー画像として使える

gmaps-api-issues - Project Hosting on Google Code
  • Google Maps APIへの要望やバグ報告など

(おまけ)
Google Mapsの中心人物だったPameraさんのGoogle Code上のプロジェクト一覧
pamela.fox - Project Hosting on Google Code



その他


Google Maps 活用講座 - GoogleマップAPIの使い方を分かりやすく解説!
  • 初心者から上級者まで参考になりそう

Google Mapsをほどよくカスタマイズしてお手軽に表示 - Google Mapper [ゼロと無限の間に]
  • Google Maps API V2をサクッと使うためのプラグイン

Google Maps API V3を使って地図をお手軽に表示 - Google Mapper V3 [ゼロと無限の間に]
  • Google Maps API V3をサクッと使うためのプラグイン

ブログ アーカイブ

tags