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>