はてなブックマークボタンの設置にかんしては
はてなブックマークボタンの作成・設置について
http://b.hatena.ne.jp/guide/bbutton
を参考にというか、そのままここで作成できる
次に、twitter ボタンの設置
twitter ボタンを作成するには
http://twitter.com/about/resources/buttons#tweet
で言語設定をしたら
スクリプトがでるので、あとはコピペ
次は、Google+の+1ボタンの設置
www.google.com/webmasters/+1/button/index.html
へアクセスしボタンを作成
ただし、今は英語サイトのようなので
解説を追加
まず、size で大きさを設定
Annotation
はバルーンを選択しました
Language
は日本語を選択
Advanced options
は詳細設定なので
ここで
HTML5 valid syntax
にチェックが入っているのを確認
(意味は、有効なHTML5の構文らしい)
URL to +1
のところへ、+1ボタンの対象になるサイトURLを指定
これで、画面の右側に
Look good? Copy the code?
の下のところへ
Google+ のボタンの画像と
それを生成するコードがでるので、このコードをコピペします

GoogleMapでマーカー表示

Google mapでマーカー表示
GoogleMapでは、複数のマーカー表示が可能
ただし、今回は、ひとつだけ
マーカー表示は
google.maps.Marker()
を使う
newでMarkerオブジェクトを作成し
google.maps.Marker()の
パラメータはJavascriptのオブジェクト形式で指定する
このパラメータのうち、最低限必要なのは
position
マーカー表示する緯度経度
map
マーカー表示をするマップオブジェクト
ソースにすると
marker = new google.maps.Marker({
position: currentPosition,
map: map
});
ただ、これだとナビとかみたいに移動すると
どんどんマーカーが増える
このため、不要なマーカーは削除する
マーカーの削除は
setMap()へnullを設定する
ただし、マーカーが表示されてないときに
nullを設定するとエラーとなるので
if(marker){
marker.setMap(null);
}
というように、条件で判定するようにしておく

Google map のパラメータ

Google mapのパラメータについて
Google mapで最低限必要なのは
zoom
ズームレベル
center
地図の中心位置
mapTypeId
マップの種類
まず、ズームレベルについて
ズームレベルは、1~18まであり
値が大きくなるほどズームインして詳細地図になる
1なら地球全部
5なら日本全体になる
次は、地図の中心位置のcenterについて
これは、緯度経度を示すオブジェクトを設定
緯度経度を示すオブジェクトは
new google.maps.LatLng(緯度,経度)
になる
現在地取得とかしたくても
最初は現在地がわからないから
あらかじめ、どこかの緯度経度を仮に入れておく
そして、mapTypeId
これは、地図の種類で、以下の種類の地図が指定できる
google.maps.MapTypeId.ROADMAP
通常の地図
google.maps.MapTypeId.SATELLITE
航空写真
google.maps.MapTypeId.HYBRID
地図+航空写真
google.maps.MapTypeId.TERRAIN
地形
地図のスクロールやズームなどは
標準で組み込まれているので
特に処理は必要なし

Google map の表示

Google mapの表示
Google mapと
geolocation APIを組み合わせると便利
Google map APIを
Javascriptから呼び出すため
APIのルールに従い、必要なパラメータを設定していく
今回は、Google mapだけでなく、マーカーも表示する
ということで
マップと
マーカーオブジェクトを入れる変数を作成
し、nullを入れておく
これは、マーカーが表示されているか識別できるから
つまり、nullなら表示されていない
null以外なら表示されている
という処理が可能になる
では、ソース
var map=null;
var marker=null;
次に、、Google mapの表示
map = new google.maps.Map(
document.getElementById(“MyGoogleMap”),{
zoom:5,
center:new google.maps.LatLng(36,135),
mapTypeId:google.maps.MapTypeId.ROADMAP
}
Google mapの表示は
google.maps.Map()
とした、新規にGoogle mapオブジェクトを作成する
newを使って複数のマップオブジェクトを作成すれば
Google mapをページ上に複雑表示できる
google.maps.Map()
の最初のパラメータの
document.getElementById(“MyGoogleMap”)

マップを表示する領域を決めたdiv要素のID
のこと
で、
google.maps.Map()の
二番目のパラメータ、つまり
{ }で囲んであるもの
は、
Javascriptのオブジェクト形式で設定した
複数のパラメータ
これは、
,
で区切って、複数指定できる
ただし、最低限必要なものがあり
zoom
ズームレベル
center
地図の中心位置
mapTypeId
地図の種類
は絶対指定しないとダメ

Android AVDのバッテリ調整

Android エミュレータのバッテリーを調整する方法です
Android エミュレータで電源接続/切断をテストするには
を参考にさせていただきました
エミュレータを起動して、
端末を開き
adb devices
を実行すると
List of devices attached
emulator-5554device
というように、現在使用しているエミュレータがでますので
telnet localhost 5554
というように telnet でエミュレータ番号を指定して接続して
power capacity 70
とか
power capacity 20
というように、調整したい数値にすれば設定できます

位置情報オプションの設定

オプションの設定
位置情報のオプション設定は3つ
enableHighAccuracy
精度
高精度ならtrue,
低精度ならfalse
timeout
タイムアウトまでのミリ秒
maximumAge
取得した位置情報の利用期限をミリ秒で指定
enableHighAccuracyをtrueにすると
スマホ内蔵のGPSを使い、位置情報取得する
たたし電池が減りやすい
timeoutは位置情報取得までの時間
15秒なら
15*1000
トンネルや地下へいって位置情報取得できなくても
このtimeoutで指定した時間内ならエラーにならない
もし、これを越えると
エラーコード3のタイムアウトになる
このため
結構重要だったりする
maximumAgeは
位置情報の利用期限
設定できる単位はミリ秒
5秒なら
5*1000
取得した情報をどのくらい使うかということ
つまり、ナビとかだと更新時間になる
車と歩く速度では違うから
この設定は重要
リアルタイムで位置情報取得するなら
0とする
ただし、かなり電池は減る
ここまでやっても、実は正確な位置情報はできない
高度に関しては
取得した緯度経度から計算して求めている
このため、誤差も多々ある
オプションの設定のコードは
var option={
enableHighAccuracy:true,
timeout:60*1000,
maximumAge:0
}
これだと
高精度の位置情報をリアルタイムで
60秒以内に取得し、できないなら
エラーとなる

位置情報取得失敗の処理

位置情報取得失敗の処理
位置情報取得失敗すると
エラー処理の関数が呼び出される
それがerrPos()
この関数には
Errorオブジェクトが渡される
そして、とんなエラーかは
Errorオブジェクトのcodeプロパティを参照する
エラーは3種類あり
ユーザーが位置情報提供を拒否され失敗
エラー番号は、1
原因不明で位置情報取得失敗
エラー番号は2
タイムアウトで位置情報取得失敗
エラー番号は、3
となる
この番号。利用して
配列にエラーメッセージをいれれば
どのエラーかわかる
function errPos(error){
var message=[“”,
“位置情報提供を拒否されました”,
“原因不明だけど失敗”,
“タイムアウト”
];
ele.
innerHTML=error.code+”:”+message[error.code];
}
これで、エラー番号に対応したメッセージかでる
配列は0から数えるので
最初は””でメッセージなし
あとは上から順番なので、エラー番号に応じたメッセージがでる

位置情報取得に成功したときの処理

位置情報取得に成功したときの処理
位置情報取得に成功したときの処理は
getPos()を使う
この関数には、位置情報を格納したオブジェクトが渡される
このオブジェクトの
coordsオブジェクトに、位置情報が格納される
緯度はlatitude
経度はlongitude
高度はaltitude
に入る
また、誤差修正のためのAPIもある
緯度経度の誤差はaccuracy
高度の誤差はaltitudeAccuracy
で設定できる
また、方角を表すheadingプロパティだけど
実は、スマホ内蔵コンパスとは連動してない
スマホ内蔵コンパスの値と
Geolocation APIの方角とは連動していない
こは、Geolocation APIでの方角は
一定速度以上で移動しないと値が返されないため
静止状態では正しい方角が得られない
このため、実際に方角を利用したプログラムを作るときには注意

clearWatch()について

clearWatch()について
watchPosition()は、オプションで指定した取得する間隔に従って、定期的に位置情報取得する
しかし、これが原因で、スマホの電池はどんどん減る
このため、watchPosition()の監視を停止させる必要性がある
この停止をするのが
clearWatch()
clearWatch()の書式は
navigator.geolocation.clearWatch(watchID)
パラメータのwatchIDには
watchPosition()の戻り値を指定する

watchPosition()について

watchPosition()について
watchPosition()の書式は
watchID = navigator.geolocation.watchPosition(
取得時の処理,
エラー時の処理,
オプション)
取得時の処理には
取得できたときに呼び出す関数をセットする
ちなみに、自作関数でもok
この関数に、取得できた位置情報をいれたオブジェクトが渡される
このパラメータは必須なので、忘れないように注意
次に、エラー時の処理だけど
これも、エラーが発生したときに渡す関数を指定する
もちろん、自作関数でok
ただし、渡す情報は位置情報は取得してないから
何のエラーが発生したがが関数に渡される
これは、必須じゃないから、省いても問題ない
最後にオプション
これは、位置情報の精度とか、取得時間のタイミングを指定する
書式で書いたけど
そのままの意味で
watchPosition()は
navigatorオプション内にある
geolocationオブジェクトのメソッドになる
なので、もしブラウザーが
Geolocation API非対応なら
navigatorオブジェクトには
geolocationオブジェクトがないことになるので
if(!navigator.geolocation)
で判別処理ができる
これで、Geolocation APIが使えることを確認したら
定期的に位置情報取得する
watchPosition()を使うようにする