タグ : geolocation

GeoLocation (GPS)について

[この記事はベータ版(2010/09/23版)でしか確認をとれていません。正式リリース後に変更されている可能性もありますので参考程度にご覧ください。]

GPS機能を使うには

import flash.sensors.Geolocation;
import flash.events.GeolocationEvent;

の二つを利用します。加えてandoroidでは
ACCESS_FINE_LOCATIONのパーミッションを許可する必要があります。


以下サンプルを参照ください。

GPSで測位して現在地を示すだけのサンプル

googlemap APIの詳細はこちら

GeoLoacationを使うにあたり特に難しい項目はないようですが、GoogleMapAPIを使う場合、注意点として
map.urlを明示的に設定しなければInitialization failedとなってマップを表示することが出来ません。

package
{
	//コードは見やすいようにエラー処理を抜いてあります。

	import flash.display.Sprite;
	import com.google.maps.LatLng;
	import com.google.maps.Map;
	import com.google.maps.MapEvent;
	import com.google.maps.MapType;
	import flash.geom.Point;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.sensors.Geolocation;
	import flash.events.GeolocationEvent;

	public class Main extends Sprite
	{
		var map:Map;
		var geo:Geolocation;
		public function Main()
		{
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;

			//googlemapAPIの設定
			map = new Map();
			map.language = "ja";
			map.url = "APIKEYをもらうときに入力したURL(必須)";
			map.key = "APIKEY";
			map.setSize(new Point(stage.stageWidth, stage.stageHeight));
			addChild(map);

			if (Geolocation.isSupported){
				geo = new Geolocation();
				//GPSの更新間隔msを指定します
				geo.setRequestedUpdateInterval(100);
				//上記に設定した間隔でgeolocationUpdateHandlerを叩きます。
				geo.addEventListener(GeolocationEvent.UPDATE, geolocationUpdateHandler);
			}
		}
		private function geolocationUpdateHandler(e:GeolocationEvent):void
		{
			map.setCenter(
				new LatLng(e.latitude, e.longitude),
				14,
				MapType.NORMAL_MAP_TYPE
			);
		}
	}
}