2012年8月3日金曜日

[Google Maps API V3] 情報ウインドウを出すと上が切れる

Google Maps JavaScript API V3で情報ウィンドウをマーカークリック後に表示するのではなく
マーカーと同時に表示すると情報ウィンドウが表示ウィンドウの上に上がってしまい切れてしまう。

google.maps.event.addDomListener(window, 'load', function() {
  var map = new google.maps.Map(document.getElementById('map_canvas'), {
    zoom: 12,
    center: new google.maps.LatLng(lat, lng),
    mapTypeId: google.maps.MapTypeId.ROADMAP
  });

  var infoWindow = new google.maps.InfoWindow({
    maxWidth: 300,
    content:'<p>メッセージ</p><p>メッセージ</p><p>メッセージ</p>'
  });

  var marker1 = new google.maps.Marker({
    map: map,
    position: new google.maps.LatLng(lat, lng)
  });

  google.maps.event.addListener(marker1, 'click', function(){
    infoWindow.open(map, marker1);
  });

  google.maps.event.trigger(marker1, 'click');

});

最初上記のようにしていたのだが、

このように情報ウィンドウの上が切れてしまっている。
しかし、マウスでマーカーをクリックするとちゃんと情報ウィンドウが欠けずに表示される。
ならば、ちょっとまってからクリックすればいいのかなと思って

pid = setTimeout(function(){
google.maps.event.trigger(marker1, 'click');
clearTimeout(pid);
},600);

setTimeoutを使って見たら上手く行った。

Pタグを外しても上手く行ったのだが、それはそれで困ってしまうので。

2012年8月2日木曜日

[cakephp] さくらのレンタルサーバーへcakephp 1.3のインストール

さくらのレンタルサーバーにcakephp1.3をインストールする方法

http://ユーザー名.sakura.ne.jp/cake に設置する場合。

wwwと同じ位置にcakephp1.3をcakephpという名前で展開します。

cakephp/app/webrootのhtaccessのRewriteEngine Onの次の行に

RewriteBase /cakeを追加します。

サーバーにsshでログインします。

windowsならばputty等を使い

ユーザー名とコントロールパネルのパスワードでログインできる。

ログインしたら次のコマンドを打ち込んでエンターを押して下さい。

ln -s `pwd`/cakephp/app/webroot `pwd`/www/cake

pwdを囲んでいるのは、バッククォートですのでお間違いなく
(ln -s /home/ユーザー名/cakephp/app/webroot /home/ユーザー名/www/cake)と同じ

www/cakeを独自ドメインのルートに割り当てればRewriteBase行の追加は必要ありません。