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
地形
地図のスクロールやズームなどは
標準で組み込まれているので
特に処理は必要なし
月別: 2012年12月
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
というように、調整したい数値にすれば設定できます
wordpress 関数メモ
add_theme_support(‘post-thumbnails’)
アイチャッチ画像の機能を利用することを
Wordpress へ通知
この記述で記事の新規追加、編集画面に
アイチャッチ画像エリアが追加される
setpostthumbnail_size(90,90,true);
デフォルトのアイチャッチ画像の縦横のサイズ
縮小時のオプションを指定
今回は90×90 の大きさ
縮小時のオプションはtrue なので切り抜き
false だと リサイズになる
ちなみに、切り抜きは
縮小した画像の中央部分を指定したサイズで切り抜く
リサイズは
指定したサイズで比率を維持したまま縮小する
add_image_size()
各シーンで利用する可能性のある画像サイズを追加
最初の引数は、追加するサイズの名前
その他の引数は
set_post_thunbnail_size()
と同じ
もし、デフォルトサイズ
サイドバー用
アーカイブ用
サブページヘッダー用
というように用途ごとにわけるなら
最初の引数の名前を変更して
あとは、サイズを指定していけばOK
wordpress 関数メモ
single_cat_title()
現在のカテゴリ名を表示するテンプレタグ
post_class()
投稿に関連するクラスを出力
the_time()
引数で指定されたフォーマットで記事が投稿
または
更新された時間を出力する
get_option()
引数で指定された WordPress のオプション情報を値として取得
get_option(“date_format”)
で管理画面 設定 > 一般 の
日付のフォーマットを取得する
<?php the_time(get_option(‘date_format()’)) ?>
で
取得したフォーマットを渡して取得
the_parmalink()
当該記事ページのパーマリンク
つまり記事ページのURLを出力
位置情報オプションの設定
オプションの設定
位置情報のオプション設定は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()を使うようにする