Google Map で検索窓を表示

Google Maps API v3 で地図にローカルサーチ用の検索ボックスを表示する方法を調べたのでメモ。

  • gmaps-api-v3-googlebarから入手したファイルを解凍。
  • その中のjGoogleBarV3.jsdefault.cssを適当な位置に配置。
  • scriptとlinkを追加。
  • 
    
    
  • マップに検索ボックスを追加
mapOptions = {mapTypeId: google.maps.MapTypeId.ROADMAP};
gbarOptions={};
myMap = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
myMap.controls[google.maps.ControlPosition.BOTTOM_LEFT].push((window.gbar=new window.jeremy.jGoogleBar(myMap,gbarOptions)).container);

(オプションの詳細はまた今度。)

  • ヒントテキストとボタンの表記を変えたい場合はjGoogleBarV3.jsを直接編集(文字コードに注意)。
  • 蛇足ながら&language=jamaps.google.com/maps/api/js?sensor=falseの後につけておくといいことがあるようです。

本番環境がEUC設定のサーバな時のCakePHPでの対処

php.iniでEUC設定してあるレンタルサーバにCakePHP1.3を導入した時のメモ
1.MySQL→UTF-8、CakePHP→UTF-8。
2.CakePHPから→MySQLへのデータ書込みで日本語文字が文字化け、MySQLに日本語データだけ登録されない状態が発生。
3.php.iniは変更不能
4..htaccessでphp_valueの指定も不能(Internal Error になる)

app_controllerに以下の記述
「beforeFilter」で$this->dataの内容をutf-8に強制的にエンコードする

function esc2utf8(&$val,$key) {
	$val = mb_convert_encoding($val,"UTF-8","auto");
}

function beforeFilter() {
	if($this->data){
		array_walk_recursive($this->data, array($this, 'esc2utf8'));
	}
}