UMap(AS 3.0) バージョン1.1の覚え書き

UMapがバージョンアップ(現在ver1.1)しているので使用感をメモ。

参考:UMap(AS 3.0) 覚え書き(ver0.8時のエントリ)

デフォルトで Virtual Earth の地図

前いじった時(ver0.8)は Google Earth の地図だったけど、今はデフォルトで Microsoft の Virtual Earth の地図データを使っている。Virtual Earth の方が英語日本語の文字モード切り替えが不要(っぽい)なので楽なのかも。

もちろん切り替え可能で:

import com.afcomponents.umap.providers.google.GoogleProvider;

しておいて

map.setProvider(new GoogleProvider());

でOK。そうやって地図データのプロバイダー(参照元)を選んで、モードの切り替えは:

//google maps利用時
map.mapType = GoogleProvider.HYBRID; //MAP, SATELLITEもある。

//VirtualEarth利用時
map.mapType = MicrosoftProvider.AERIAL; //HYBRID, ROADもある。

でやる。

商用利用は有償

商用利用時は$750。今ならキャンペーンで$450。

UMapper

HTML 中に UMap を簡単に埋め込むためのラッパーアプリが「UMapper」。WordPress に簡単埋め込みとかしたい時に。

Flash Develop での swc の設定

まずFlash上でパブリッシュしたいだけの場合なら、エクステンションをインストールすればOK。あとはFlash IDE上のコンポーネントパネルからUMapコンポーネントをステージに置くなり、ライブラリウィンドウに置くなりして使える。

でもこのままだと、FlashDevelop側でUMapのコードヒントが出ない。これをどうにかするにはUMapをダウンロードした時に同梱されているUMap_Flex.swcをプロジェクトフォルダに置き、エクスプローラーのプロジェクトフォルダの上で右クリック、PropertiesからCompiler Optionsの中のAdvancedの中のSWC Librariesの配列設定の箇所があるのだけど、そこにべたのテキストでクラスパスを記述。相対パスOK。これでコードヒントが出る。

地図生成クラスについて

new UMap() と new UMapComponent の違いがわからん。どっちもちゃんと地図生成できてるし。

KMLの処理

初めは自作XMLに各地点のデータを格納してでテストしてたのだけれど、KMLという位置情報用のXMLフォーマットが存在するらしく、Picasa や Flickr(エクスポートでワンクッションかます)もKMLのインポート・エクスポートが使えるようなので KML フォーマットをロードする実装をしておいたほうがよさそうだ。

ただ、KMLフォーマットは緯度経度がカンマ区切りで1ノード内に格納されていて、UMap で重用する Latlng クラスのコンストラクタ:

new LatLng(lat, lng);

とすべきところを、

new LatLng(xml.Document.Placemark[0].point.coordinates); //ノード内のカンマを認識してくれるかなぁと淡い期待を込めてみたけどやはり無理w

かといってカンマで区切ってオブジェクトに格納とか面倒だなぁと思っていたら、

var latlng:LatLng = LatLng.fromXML(XML(xml.Document.Placemark[i].point.coordinates));

こんな感じでいけることが分かった。XMLでキャスト(強制型変換)してやるのがミソ。

パン&ズームアニメーション

map.animateZoom = true;//アニメーションズーム機能オン
map.animatePan = true;//アニメーション移動(パン)機能オン
map.panEasing = "Regular.easeOut";//パンアニメーション時のイージングタイプ
map.panSpeed = 9;//最大値9
map.zoomSpeed = 9;//最大値9

こんな感じで移動時間(スピード)を設定できるのだけど、最大値が9でこれが0.9秒なんだけど、もっとゆっくりアニメーションさせたいけどできない。クラスをいじろうにも swc だし改造できない。

その他

  • コピーライト表示は消せないっぽい。CopyrightControlクラスは違うっぽい。

引き続き、気付いたら追記予定。


“UMap(AS 3.0) バージョン1.1の覚え書き” への4件の返信

  1. ここで聞くことでではないんですが、UMAPこのコンポーネントでズーム取得はどうやってやるのでしょうか?
    教えていただきたいです
    おねがいします

  2. >jun様
    こんにちは。
    UMapインスタンス名.zoom で取得できると思います。

    一応流れとしましては
    ・new UMapするかコンポーネント配置してインスタンス作成。
    ・setSizeして幅と高さを指定
    ・animatePan と animageZoom をお好みで true に
    ・setCenter(new LatLng(経度,緯度),ズーム初期レベル値);
    ・クラスベースならaddChild(インスタンス名);
    ・setZoom や zoomTo,zoomIn,zoomOut などで遊ぶ
    そんな感じでしょうか。

  3. >tera様
    質問の回答ありがとうございました。

コメントは受け付けていません。