- 2010-08-21 (土) 14:07
- Flash
技術的に難しい話等では全くなく、ただGoogle Mapsを全画面表示してヌルヌル動かせたら気持ちいいじゃない、ということで作ってみました。Google Maps API for Flashを使用してFlashオブジェクト上にGoogle Mapsを表示し、Flash Player標準機能のフルスクリーンモードを使用するという魂胆です。
個人的には19インチ以上のディスプレイで全画面表示して、地図を動かしまくるととても幸せになれます。それにしてもGoogle Mapsは地図のタイルごとにリクエストが走ってるようですが、これだけのリクエスト数をさばけるGoogleのサーバってつくづく次元が違うなと思います。
以下、サンプルコードです。
package
{
import com.google.maps.InfoWindowOptions;
import com.google.maps.LatLng;
import com.google.maps.Map;
import com.google.maps.MapEvent;
import com.google.maps.MapType;
import com.google.maps.overlays.Marker;
import com.google.maps.overlays.MarkerOptions;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageDisplayState;
import flash.display.StageScaleMode;
import flash.events.MouseEvent;
import flash.geom.Point;
public class GoogleMapSample extends Sprite
{
// 緯度経度 : 東京タワー
private static var LATLNG:LatLng = new LatLng( 35.658682,139.745407 );
// 倍率
private static const ZOOM:int = 16;
// マップオブジェクト
private var map:Map;
public function GoogleMapSample() {
// ステージ初期化
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
map = this.createMap();
this.addChild(map);
stage.addEventListener(MouseEvent.CLICK, onClickHandler);
}
// マップオブジェクトの生成
private function createMap():Map {
var map:Map = new Map();
map.setSize(new Point( stage.stageWidth, stage.stageHeight));
map.addEventListener(MapEvent.MAP_READY, mapReadyHandler);
map.key = "ABQIAAAAiccmmCNILO3xd09xRuUlRBQTIuW28Ed72BnpVhdf4jwqbtfYRBRsXdvrvtm17NUylBfmCtX91DbTVQ"
return map;
}
private function mapReadyHandler( event:MapEvent ):void {
// マップオブジェクトのサイズの初期設定
map.setCenter(LATLNG, ZOOM, MapType.NORMAL_MAP_TYPE); // ノーマルモード
//map.setCenter(LATLNG, ZOOM, MapType.SATELLITE_MAP_TYPE); // 航空写真モード
// マウスホイール有効
map.enableScrollWheelZoom();
// 滑らかなズームを有効
map.enableContinuousZoom();
// マーカーの追加
var marker:Marker = new Marker(
LATLNG,
new MarkerOptions( {
radius: 12,
hasShadow: true
})
);
map.addOverlay(marker);
}
private function onClickHandler( event:Mouse
Event ):void {
// フルスクリーン化
if (stage.displayState != StageDisplayState.FULL_SCREEN) {
stage.displayState = StageDisplayState.FULL_SCREEN;
map.setSize(new Point( stage.stageWidth, stage.stageHeight));
}
}
}
}
- Newer: [勉強会]DevLOVE HangarFlightのメモ
- Older: [FxUG]Flex勉強会#89に行ってきましたメモ
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://blog.toshipon.com/2010/08/21/flashgoogle_maps_api_for_flash/trackback/
- Listed below are links to weblogs that reference
- [Flash]Google Maps API for Flashで全画面地図表示 from toshipon@sketch.book/blog
