FlexでYahooMaps

FlexでYahooマップを設置してみました。
アイコンもHTTPからxmlで取得表示できるようにしてます。
http://moeten.info/flex/20080401_yahooMapsSearch/bin-release/main.html

まずはヤフー開発者向けページからSWCファイルをゲットします。
http://developer.yahoo.com/flash/maps/
次に開発者用IDを取得します。
https://login.yahoo.com/config/login_verify2?.src=devnet&.done=https%3A%2F%2Fdeveloper.yahoo.com%2Fwsregapp%2F
ダウンロードしたファイルに含まれるサンプルファイルを参考にすると簡単です。
英語ですが、こちらのサイトが参考になります。
http://www.brucephillips.name/blog/index.cfm/2008/2/14/Using-The-New-Yahoo-Maps-ActionScript-3-API--Create-Your-A-SearchMarker-Using-Your-Own-Data
#言うのは簡単なんだけど、ここまで来るのにはすごい時間がかかってて・・・。
ソースはこちら

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
    xmlns:dragpanel="com.rictus.dragpanel.*"
    creationComplete="init()" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import com.yahoo.maps.api.markers.SearchMarker;
import com.yahoo.maps.webservices.local.LocalSearchItem;
import com.yahoo.maps.api.YahooMapEvent;
import com.yahoo.maps.api.core.location.LatLon;
import com.yahoo.maps.api.core.location.Address;
import com.yahoo.maps.api.YahooMap;
import mx.events.IndexChangedEvent;
private var yahooMap:YahooMap = new YahooMap();
//初期化関数
private function init():void{
    //YahooMapの作成
    // 開発者ID http://developer.yahoo.com/wsregapp/ ここからゲットしてね
    var appid:String = "XZCwU4zV34Fz7wxRxLkq9Z5fD.deSRuk1.YGFSqnBxcdnqvGiIZL7sb4Qe01f7yJSo0Z";
    yahooMap.init( appid , 533  , 502 , "jp" );
    mapContainer.addChild(yahooMap);
    yahooMap.addPanControl();
    yahooMap.addZoomWidget();
    yahooMap.addTypeWidget();
    //YahooMapが作成されたとき
    yahooMap.addEventListener(YahooMapEvent.MAP_INITIALIZE, mapInit);
}
//YahooMapが作成されたとき
private function mapInit(e:YahooMapEvent):void{
    //東京を中心に設定
    var center:LatLon = new LatLon( 35.68627 ,139.69487 );
    yahooMap.centerLatLon = center;
    yahooMap.zoomLevel = 7;
    //お店の問い合わせ
    myLocalSearch.send();
}
//アイコンの設定
private function setIcons():void{
    myLog.text += myLocalSearch.lastResult;
    var len:int = myLocalSearch.lastResult.listing.length();
    for( var i:int = 0 ; i < len ; i ++ ){
        var item:LocalSearchItem = new LocalSearchItem(myLocalSearch.lastResult.listing[i]);
        var marker:SearchMarker  = new SearchMarker(item);
        marker.width = 300;
        marker.height = 200;
        yahooMap.markerManager.addMarker(marker);
    }
}
]]>
</mx:Script>
<!--############### エフェクト ###############-->
<!--############### HTTPService ###############-->
<mx:HTTPService id="myLocalSearch" url="http://moeten.info/maidcafe/?m=flex_localsearch" useProxy="false" resultFormat="e4x" result="setIcons()" />
<!--############### コンポーネント ###############-->
<dragpanel:DragPanel id="myPanel1" title="Yahoo! Maps - Simple Flex Example" top="10" left="5" bottom="24" right="513" layout="absolute">
    <mx:UIComponent id="mapContainer" width="533" height="502" x="0" y="0"/>
</dragpanel:DragPanel>
<dragpanel:DragPanel id="myPanel2" title="log" x="586" y="10" width="401" height="562" layout="absolute">
    <mx:TextArea id="myLog" x="10" y="10" height="502" width="361"/>
</dragpanel:DragPanel>
</mx:Application>