ç®æ¬¡ãžæ»ã
Flashã§åããå°å³ãµãŒãã¹ †
- Flashã§åããå°å³ãµãŒãã¹
- æ åœ
- â1å·çã«ããã£ãŠ
- â2 ãµã³ãã«ç޹ä»
- â3 å°å³ãµãŒãã¹ãå©çšãã
- â3-1 䜿çšãããµãŒãã¹ã«ã€ããŠ
- â3-2 ã³ã³ããŒãã³ããã€ã³ã¹ããŒã«ãã
- â3-3 å°å³ã衚瀺ããã
- â3-3 æå®ãã緯床çµåºŠã«å°å³ãç§»åããã
- â3-4 ç§»åãããšãã®ã€ãã³ãããããšã
- â3-5 å°å³äžã«Flashã®èŠçŽ ã衚瀺ããã
- â3-6 XãYã®åº§æšã緯床çµåºŠã«å€æãã
- â4 å°åãã緯床çµåºŠãååŸãã
- â5 人å£å¯åºŠãååŸãã
- â6 å°å³äžã®éè·¯ã«äººãæ©ããã
- â7 ãã®ä»ã®å°å³è¡šç€ºãããµãŒãã¹
- â6 ãŸãšã
æ åœ †
æŸæ
â1å·çã«ããã£ãŠ †
â1-1 ã¯ããã« †
ActionScript? 3.0ãåºãŠãããããããã®äººãããããªã©ã€ãã©ãªãéçºããå ¬éããŠããŸãã ä»ãŸã§ã ãšãèªåã§ãã¹ãŠéçºããŠããã®ã§ãããActionScript? 3.0ããã¯ããã©ã®ããã«èªåã§éçºããŠããããããããããã«äººã®ã©ã€ãã©ãªã䜿ã£ãŠéçºã容æã«ã§ããããã«éç¹ã眮ãããŠããã®ã§ã¯ãªãããšæã£ãŠããŸãã
ãã®æ¬ã§ããããã£ãä»ã®äººã®æè¡ã䜿ã£ãŠæ°ãããã®ãäœããããããããã·ã¥ã¢ããã³ã³ãã³ããšãããã®ã®ãµã³ãã«ããããã玹ä»ãããŠããŸãããåã®ç« ã§ãä»ã®æè¡ãçµã¿åãããã³ã³ãã³ããäœã£ãŠã¿ãããšã«ããŸããã
ãã®ç« ã§åãæ±ãããŒãã¯å°å³ãµãŒãã¹ãšã®é£åã§ããçŸåšGoogleããããYahooããããªã©ãããããªãšããã§å°å³ãæäŸããŠãããµãŒãã¹ããããŸãããã ããããHTMLãJavascriptã䜿çšããAPIãå ¬éããŠããŸãã Flashã䜿ã人ã«ãšã£ãŠã¯ããããå°å³æ å ±ãFlashã«èªã¿èŸŒãã§ãã®å°å³äžã§ãããããšã¢ãã¡ãŒã·ã§ã³ãåãã°ããæ¥œãããã®ãã§ããã®ã§ã¯ãšæã£ãŠãã人ãå€ãã®ã§ã¯ãªãã§ããããïŒ ããã§åã¯Flashã§äœ¿ããå°å³ãµãŒãã¹ã«ã€ããŠæžãããšã«ããŸãããå°å³ãµãŒãã¹ã¯ããã€ãããã®ã§ããããã®ãã¡ã®1ã€ã䜿ããµã³ãã«ãäœæããŠãããŸãããã®ä»ã®ãµãŒãã¹ã«ã€ããŠã¯ãæåŸã«ç°¡åã«äœ¿ãæ¹ããŸãšããŠããŸãã
â1-2 ãµã³ãã«ã®ã³ã³ã»ãã †
å°å³ã䜿ãã³ã³ãã³ããäœæããã«ããã£ãŠãçŸç¶ã®ããããµãŒãã¹ã§ã¯ãªããã®ãèããŠã¿ãŸããã çŸç¶ã®googleããããyahooãããã§ã¯ãå°å³äžã«ã¢ã€ã³ã³ãã®ããããã«ãŒããæ€çŽ¢ãããµãŒãã¹ãªã©ããããŸãããããã«ãããã¯ãµãŒãã¹ãšããŠã¯ãšãŠã圹ç«ã€ãã®ã§ãããå°å³ã䜿ãäžã§ã¯ããããªããã®ã§ãã ãã ãä»åã®ãµã³ãã«ãäœæããã«ããã£ãŠããã£ãšFlashã§ããã§ããªããã®ã¯ãªãããšèããŸãããFlashã§ç¹åŸŽçãªãã®ãšããã°ããã¯ãã¢ãã¡ãŒã·ã§ã³ã§ããå°å³äžã§ã¢ãã¡ãŒã·ã§ã³ãã¬ãªã¬ãªãšåããŠãããã§ããŠæ¥œãããã®ããããã£ããã®ãäœãã°ãä»ãŸã§ã«ãªãã¢ãããŒããã§ããã®ã§ã¯ãšæããŸããã
ããã§æãæµ®ããã ã®ããå°å³äžã§ã®äººå£å¯åºŠã®è¡šç€ºã§ãã åã¯ç¥æžã§è²ã¡ãçŸåšã¯æ±äº¬ã«äœãã§ããŸããç¥æžããæ±äº¬ã«æ¥ããšãã«æããã®ãã人ã®å€ãã§ããç¥æžã§ã¯é»è»ãæ··ãã§ããŠããäœãæããããªçª®å±ãªç¶æ ã«ãªã£ãããšã¯ãªãã§ãããè¡äžãæ©ããŠããŠãã人ãã¿ã®å€ãã§åã«ããããªãã»ã©ã®æ··éãã¯çµéšããããšããããŸããã ãŸãã以åå¯å±±ã®å»å°ã«æ è¡ã«ãã£ãã®ã§ããããã®ãšãã«ãŸãæããã®ããããããã®è¡æ¬åœã«äººããã®ïŒãã§ããïŒå¯å±±çæ°ã®äººããããªããïŒããããã£ãè¡ã®æ··ã¿å ·åãã«ããããã¯å°å³äžã§ã¯ãªããªãåãããªããã®ã§ãã å°å³äžã§ã¯ãã€ã人ã¯éæ¢ããŠããããã ãã人ããã€ã£ãŠããŸããããã®äººãã¿ã®ãªã¢ã«ããå°å³äžã§è¡šçŸã§ããã°ããããªå Žæã«ãã£ãŠããã®å Žæã®äººã®æ··ã¿å ·åã調ã¹ãŠã¿ãããªãã®ã§ã¯ãªãããšèããŸããã
ããã§ä»åã¯å°å³äžã«äººãã¿å ·åãã¢ãã¡ãŒã·ã§ã³ã§è¡šç€ºããã³ã³ãã³ããèããŸããã
â2 ãµã³ãã«çŽ¹ä» †
â2-1 ãµã³ãã«ã®åã †
ãµã³ãã«ã®äœ¿ãæ¹ã¯æ®éã®å°å³ãµãŒãã¹ãšåãã§ãã奜ããªå Žæãå°åãéžãã§ããããŸããããã«ç§»åããã°å°å³ã衚瀺ãããã®ã§ããããã®äžã«Flashäžã§äººãæ©ãããŸããäººã®æ°ã¯ããã®åå°ã®äººå£å¯åºŠãå®éã«åæ ãããŸãã æ±äº¬ã®è¡äžã«ããã°ã人ãããããããæ©ããŠããŠãå¯å±±ã®å»å°ã«ããã°äººãã¡ãã£ãšããæ©ããŠããªãããã«èŠããŸãã
ãŸãã¯ã¢ããªã±ãŒã·ã§ã³ãç«ã¡äžããŸããFlashäžã§Google Mapã®å°å³ã衚瀺ãããŸã
調ã¹ããå°åãã¯ãªãã¯ãããšããã®å°å³ãçŸããéè·¯ã«äººå£ãçŸããŸãã
æ¡å€§ãçž®å°ãã¿ã³ãæŒããšãå°å³ã®çž®å°ºãå€ããããšãã§ããŸãããŸãå°å³ããã©ãã°ããããšãã§ããŸãã
ããã¹ããã£ãŒã«ãã«å°åãå ¥åãããšããã®å Žæã«ç§»åããŸãã
â2-2 ãµã³ãã«ã®ä»çµã¿ †
ãµã³ãã«ã®ä»çµã¿ã§ãããæçµçã«ã¯å°å³äžã«äººå£åã®ã ãŒããŒã¯ãªãããã®ããŠäººãåããã ããªã®ã§ãããããã«è¡ãçããŸã§ã«ããã€ãã®ã¹ãããããããŸãã ãŸãã¯äººå£å¯åºŠååŸãŸã§ã®é åºã以äžã«æžããŠãããŸãã
1.æå®ãããå°åãã緯床çµåºŠãååŸãã 2.ååŸãã緯床çµåºŠãã人å£å¯åºŠãååŸãã 3.æå®ããå Žæã®å°å³ã衚瀺ãã 4.å°å³ã®äžã«äººå£å¯åºŠåã®äººã衚瀺ãã
â2-3 仿§ãããµãŒãã¹ †
ä»åã®ãµã³ãã«ã«ã¯1ã€ã®ã³ã³ããŒãã³ããš2ã€ã®ãŠã§ããµãŒãã¹ã䜿çšããŠããŸãã
ã»UMapïŒAdvanced Flash ComponentsïŒ ä»åã®ã¡ã€ã³æ©èœã§ãããµãŒãã¹ã§ããã®ã¡ã»ã©è©³ããèšè¿°ããŸããããã¡ãã¯ãŠã§ããµãŒãã¹ã§ã¯ãªãFlashã®ã³ã³ããŒãã³ãã«ãªã£ãŠããŸãã
ã»Google Maps API ã¡ã€ã³ã¯å°å³ã衚瀺ããããµãŒãã¹ãªã®ã§ãããä»åã¯å°å³è¡šç€ºã«ã¯äœ¿çšãããå°åãã緯床çµåºŠãå²ãåºããŠããããµãŒãã¹ã®ã¿ã䜿çšããŸãã
ã»mySociety 人å£å¯åºŠãè¿ããŠããããŠã§ããµãŒãã¹ã§ãã緯床çµåºŠãæž¡ããšããã®äººå£å¯åºŠãè¿ããŠãããŸãããã®äººå£å¯åºŠãããšã«å°å³äžã§ã ãŒããŒã¯ãªãããäœæããŠããŸãã
â3 å°å³ãµãŒãã¹ãå©çšãã †
â3-1 䜿çšãããµãŒãã¹ã«ã€ã㊠†
ãŸãã¯ãµã³ãã«ãäœæããŠããåã«ä»å䜿çšãããµãŒãã¹ãé çªã«ç޹ä»ããŠãããŸãã æåã¯äžçªå€§ããªèŠçŽ ã§ããå°å³ãµãŒãã¹ã§ãã ä»å仿§ããå°å³ã®ãµãŒãã¹ã¯Advanced Flash ComponentsïŒä»¥äžAFComponentsïŒãšãããã®ã䜿ããŸãã AFComponentsã¯Flashã®äŸ¿å©ãªæ©èœãã¡ãã¥ãŒãªã©ãã³ã³ããŒãã³ããšããåœ¢ã§æäŸããŠãããµãŒãã¹ã§ãã ã©ã€ãã©ãªã®æäŸãšéã£ãŠäžèº«ã®ã³ãŒããèŠããªãã§ãããã³ã³ããŒãã³ããã¹ããŒãžã«çœ®ããŠããã«äœ¿ãããšããç¹ã䟿å©ã§ãããã¥ãŒããªã¢ã«ãããã¥ã¡ã³ããå å®ããŠããã®ã§ãäœ¿ãæ¹ãåãããªããšãã§ãçµæ§ãããªããšçè§£ã§ããŸãã ãã ããã®ã³ã³ããŒãã³ãã¯AFComponentsãæäŸããŠãããµãŒãã¹ãªã®ã§ãæåã®ãã®ããããŸããç¡åã®ãã®ã§ãåçšã«äœ¿ããšãã¯æåã«ãªãå¯èœæ§ãé«ãã®ã§æ³šæããŠãã ããã
Advanced Flash Components http://www.afcomponents.com/
ä»åã¯ãã®äžã®UMapãšããã³ã³ããŒãã³ãã䜿ããŸããUMapã¯ActionScript? 3.0ã§äœãããã³ã³ããŒãã³ãã§ãGoogle MapãFlashäžã«èªã¿èŸŒãã§è¡šç€ºãããããšãã§ããŸããåºæ¬çã«Google Mapãšæ©èœã¯ã»ãšãã©åããªã®ã§ãããFlashã䜿ãã¡ãªãããšããŠã¯ãFlashã®ã€ã³ã¿ãŒãã§ã€ã¹ã«çµã¿èŸŒããããšãšãFlashã®ã¢ãã¡ãŒã·ã§ã³ãå°å³äžã§åãããããšã§ãããã Flashäžã§è¡šç€ºã§ããã®ã§ãå°å³ã«ãã¹ã¯ããããŠå圢ã«è¡šç€ºããããšããFlashã®ãµã€ãå ã®äžã³ã³ãã³ããšããŠå°å³ã䜿ãããšãå¯èœã§ãããŸããå°å³ã®äžã«ã¢ãã¡ãŒã·ã§ã³ãèŒããããã®ã§ãå°å³äžã®éè·¯ã䜿ã£ãŠã¬ãŒã¹ãããããã倩æ°ã«ããããŠãéè·¯ã«éªãéšãéããããšãå¯èœã§ãã UMapã«ã¯FlashçšãšFlexçšã®ãã®ãæäŸãããŠããŸãã
以äžäž»ãªæ©èœããã£ãšãããŠãããŸãã
1.ãºãŒã ãç§»åãªã©ãFlashã§äœã£ããã¿ã³ããã³ã³ãããŒã«ã§ãã 2.å°å³äžã«ãã¯ã¿ãŒåœ¢åŒã®å³ãçµµã衚瀺ã§ãã 3.æ å ±ã衚瀺ããããŠã£ã³ããŠãã«ã¹ã¿ãã€ãºã§ãã 4.èªåã§äœã£ããªãªãžãã«ã®å°å³ã衚瀺ã§ãã
UMap http://www.afcomponents.com/components/umap_as3/ ïŒãªãããã®èšäºãæžããŠããæç¹ã§ã¯ããŒã¿ã®0.5ããŒãžã§ã³ãªã®ã§ãä»åŸä»æ§ã倿Žã«ãªãå¯èœæ§ããããŸããïŒ
UMap APIã®ããã¥ã¡ã³ã http://www.afcomponents.com/content/documentation/umap_as3/
â3-2 ã³ã³ããŒãã³ããã€ã³ã¹ããŒã«ãã †
ã³ã³ããŒãã³ãã¯MXPãšãã圢åŒã§ããŠã³ããŒãã§ããŸããMXPãã¡ã€ã«ãšã¯Flashã®æ©èœãæ¡åŒµããããã®ãã¡ã€ã«ã§ãã³ã³ããŒãã³ããèªåçã«Flashã®ã³ã³ããŒãã³ãããã«ã«ã€ã³ã¹ããŒã«ã§ããããFlashã®éçºç°å¢ã«æ°ããé ç®ã远å ã§ããããããã®ã§ãã ãã ããã®ãã¡ã€ã«ã䜿çšããã«ã¯Adobe Extension Managerãå¿ èŠã§ããAdobe Extension Managerã¯ã¢ãããµã€ãã®ä»¥äžã®ãšããããã€ã³ã¹ããŒã«ã§ããã®ã§ãæã£ãŠããªãæ¹ã¯ãŸãã¯ãããã€ã³ã¹ããŒã«ããŠãã ããã ã¡ãªã¿ã«Adobe Extension Managerã¯Flashã«éããDreamWeaver?ãFireWorks?ã§ã®MXPãã¡ã€ã«ã®ã€ã³ã¹ããŒã«ãã§ããŸãã
Adobe Extension Managerã®ããŠã³ããŒã http://www.adobe.com/jp/exchange/em_download/
次ã«AFComponentsã®ãµã€ãããMXPãã¡ã€ã«ãã€ã³ã¹ããŒã«ããŸãã ããŠã³ããŒãã¯UMapã®ããŒãžããã§ããŸãã 以äžã«ã€ã³ã¹ããŒã«ã®æé ãæžããŠãããŸãã
1.ããŒãžã®å³äžã«ãDownload Componentããšãããšãªã¢ããããŸããããã®ãEnd User License Agreementãã®æšªã«ãã§ãã¯ããã¯ã¹ããããŸãããã©ã€ã»ã³ã¹ã«åæããŠãã ããããšããããšãªã®ã§ããã§ãã¯ãããšããŠã³ããŒãã®ãªã³ã¯ã衚瀺ãããŸãã
2.ããŠã³ããŒããããã¡ã€ã«ãè§£åããŠããFlash_Componentããã©ã«ãå ã«ãããUMap_AS3.mxpããããã«ã¯ãªãã¯ãããšèªåçã«Adobe Extension Managerãç«ã¡äžãããŸããããšã¯ãæ¿è«Ÿããããã¿ã³ãæŒãã ãã§ãã
3.æ£åžžã«ã€ã³ã¹ããŒã«ããããšAdobe Extension Managerã«UMapã®ååã衚瀺ãããŸããããã§ã€ã³ã¹ããŒã«å®äºã§ãã
4.ã€ã³ã¹ããŒã«ãããã³ã³ããŒãã³ãã¯ã³ã³ããŒãã³ãããã«ã䜿ããããã«ãªããŸãã[ãŠã£ã³ããŠ]â[ã³ã³ããŒãã³ã]ãéžæããŠã³ã³ããŒãã³ãããã«ãéããŠã¿ãŠãã ãããAFComponents UMapãšããã«ããŽãªãŒã®äžã«UMapãšããã³ã³ããŒãã³ãã衚瀺ãããŠããŸãã
â3-3 å°å³ã衚瀺ããã †
ã§ã¯ãŸãã¯å°å³ã衚瀺ããããšããããå§ããŸããããå°å³ã衚瀺ãããã«ã¯ããŒã«ã䜿ã£ãŠè¡šç€ºãããæ¹æ³ãšActionScript?ã§åçã«é 眮ãããæ¹æ³ãš2ã€ãããŸãã ããŒã«ãäœ¿ãæ¹æ³ã¯ããã£ãŠç°¡åã§ãã³ã³ããŒãã³ããã¹ããŒãžã«ãã©ãã°ããã ãã§ããActionScript?ã§è¡šç€ºãããã®ã¯ã ãŒããŒã¯ãªãããåçã«é 眮ãããã®ãšåãããæ¹ã§ãã詳ãã説æã¯ç¬¬2ç« ???ã«èª¬æããŠããŸãã®ã§ããã¡ããåç §ãã ããã ã§ã¯ä»¥äžã«2ã€ã®æ¹æ³ã玹ä»ããŠãããŸãã
ã»ããŒã«ã䜿ã£ãŠè¡šç€ºããã
1.[ãŠã£ã³ããŠ]â[ã³ã³ããŒãã³ã]ã§ã³ã³ããŒãã³ãããã«ãéããŠãã ããã
2.ã³ã³ããŒãã³ãããã«ãããUMapããã¹ããŒãžã«ãã©ãã°ããŸãã
3.ããšã¯[å¶åŸ¡]â[ã ãŒããŒãã¬ãã¥ãŒ]ãéžæããŠå®è¡ãããšå°å³ãèªåçã«çŸããŸããããã©ã«ãã§ã¯äžçå°å³ã衚瀺ãããŸãããã©ãã°ãããšå°å³ãç§»åããããŠã¹ãã€ãŒã«ã§å°å³ãæ¡å€§ãçž®å°ããŸãã
4.èªç±å€åœ¢ããŒã«ã§å°å³ãæ¡å€§ããããšãã®åã ã衚瀺ãšãªã¢ãåºãããŸãã
ã»ActionScript?ã§è¡šç€ºããã
1.ããŒã«ã®å Žåãšåãããã«ã¹ããŒãžã«ã³ã³ããŒãã³ãããã©ãã°ãããŸãã
2.ãã®åŸã³ã³ããŒãã³ããåé€ããŸããã¹ããŒãžã«ã¯äœããããŸããããã©ã€ãã©ãªã«ã³ã³ããŒãã³ãã®ã·ã³ãã«ãæ ŒçŽãããŠããŸãã
3.以äžã®ActionScript?ãã¿ã€ã ã©ã€ã³ã«æžããŸããæåã«coreããã±ãŒãžå ã®UMapã¯ã©ã¹ãã€ã³ããŒãããŠãã ããã
[3-11.as]
import com.afcomponents.umap.core.UMap; var map:UMap = new UMap(); map.setSize(300, 300); addChild(map);
4.å°å³ã®ãµã€ãºã倿Žããã«ã¯ãsetSizeãããããã£ã倿ŽããŸãã
[3-12.as]
import com.afcomponents.umap.core.UMap; var map:UMap = new UMap(); map.setSize(500, 300); addChild(map);
[memo] ãµã€ãºã倿Žããªãå Žåã§ããsetSizeãããããã£ãèšè¿°ããŠãããªããšãæåã«å°å³ã衚瀺ãããŸããã
â3-3 æå®ãã緯床çµåºŠã«å°å³ãç§»åããã †
å°å³ãæå®ããäœçœ®ã«ç§»åãããã«ã¯ãsetCenterãã¡ãœããã䜿ããŸããäœçœ®ã¯ç·¯åºŠçµåºŠã§æå®ããŸãã 緯床çµåºŠã®æå®ã¯åŒæ°ã«çŽæ¥å€ãæž¡ãã®ã§ã¯ãªãããLatLng?ãã¯ã©ã¹ã䜿ãããã®ã€ã³ã¹ã¿ã³ã¹ãåŒæ°ã«æž¡ããŸãã
[3-13.as]
import com.afcomponents.umap.core.UMap; import com.afcomponents.umap.types.LatLng; var map:UMap = new UMap(); map.setSize(300, 300); // LatLngã¯ã©ã¹ãã€ã³ã¹ã¿ã³ã¹åãã緯床ãçµåºŠã®é ã«å€ãæž¡ããŸãã var pos = new LatLng(35.690659,139.714508); // setCenterã¡ãœããã«LatLngã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãæž¡ããŸãã map.setCenter(pos); addChild(map);
ãsetCenterãã¡ãœããã«ã¯ãºãŒã ã¬ãã«ãæå®ããããšãã§ããŸããåŒæ°ã®2çªç®ã«ãºãŒã ã¬ãã«ãæž¡ããŸãããºãŒã ã¬ãã«ã®å€ã¯Google Mapãšåãã§ã0ãã19ãŸã§ã§ãã
[3-14.as]
map.setCenter(pos, 19);
â3-4 ç§»åãããšãã®ã€ãã³ãããããšã †
å°å³ãç§»åããããšã¯ãç§»åããŸããããšããã€ãã³ããåãåãããå ŽåããããŸããä»å玹ä»ãããµã³ãã«ãå°å³ãåããããšã«ããã®å°å³äžã«Flashã®èŠçŽ ã眮ãããã®ã§ããã€ç§»åããããšããã¿ã€ãã³ã°ãç¥ãå¿ èŠããããŸãã ãã®ã€ãã³ãã¯ãaddEventListener?ãã䜿ã£ãŠåãåãããšãã§ããŸããåºæ¬çã«Flashã®ãã¿ã³ãæŒããããšãã«èšè¿°ãããaddEventListener?ããšåãäœ¿ãæ¹ã§ãããaddEventListener?ãã®è©³ãã説æã¯ç¬¬2ç« ???ãåç §ãã ããã
[3-15.as]
import com.afcomponents.umap.core.UMap;
// ã€ãã³ããåãåãã«ã¯eventsããã±ãŒãžå
ã®DisplayEventã¯ã©ã¹ãã€ã³ããŒãããŸã
import com.afcomponents.umap.events.DisplayEvent;
var map:UMap = new UMap();
map.setSize(300, 300);
// ç§»åã®ã€ãã³ããåãåããããã«ããŸã
map.addEventListener(DisplayEvent.UPDATE_POSITION, posUpdate);
addChild(map);
// å°å³ã®äœçœ®ãå€ãããšãã®ã¡ãœãããåŒã³åºãããŸã
function posUpdate(e:DisplayEvent) {
trace("å°å³ãç§»åããŸãã");
}
[caution] ãã®ã€ãã³ãã¯ãããŸã§å°å³ã®ç·¯åºŠçµåºŠãç§»åãããšãã«åŒã³åºãããã®ã§ãå®éã®å°å³ããŒã¿ã®è¡šç€ºã¯ãã®åŸè¡ãããŸããéä¿¡åç·ãé ããšããã ãå°å³ããŒã¿ã®ããŠã³ããŒãã«æéãããããŸãã®ã§ãã€ãã³ããåŒã³åºãããããšã«å°å³ã衚瀺ãããããšããããŸãã
â3-5 å°å³äžã«Flashã®èŠçŽ ã衚瀺ããã †
Flashå ã§å°å³ã衚瀺ãããã¡ãªããã§ããã£ãšãéèŠãªãã®ã®ã²ãšã€ã®ããã®æ©èœã§ããéåžžã®Google Mapã®APIã§ãå°å³äžã«ã¢ã€ã³ã³ãªã©ãã®ããããšãã§ããŸãããFlashã§äœããšã¢ãã¡ãŒã·ã§ã³ãã®ããããã¢ã€ã³ã³ãActionScript?ã§æäœã§ãããããŸããéåžžå°å³ã¯éæ¢ç»ãšããèªèããããŸãããããã䜿ãããšã§çµ¶ããå€åããå°å³ã®ã³ã³ãã³ããäœããŸãã
å°å³äžã«Flashã衚瀺ãããã«ã¯Overlayã¯ã©ã¹ã䜿ããŸããèªåã§äœã£ãã¯ã©ã¹ã䜿ãå Žåã¯ãã®ãOverlayãã¯ã©ã¹ãç¶æ¿ããå¿ èŠããããŸãã
ãŸãã¯ã ãŒããŒã¯ãªãããäœããŸãããã®ã ãŒããŒã¯ãªããã®ãªã³ã±ãŒãžå ã«ããåºæ¬ã¯ã©ã¹ããflash.display.Spriteãã«ããŸããããã¯Overlayã¯ã©ã¹ãSpriteã¯ã©ã¹ãç¶æ¿ããŠããããã§ãã
ã ãŒããŒã¯ãªãããšçµã³ã€ããŠããã¯ã©ã¹ã¯ä»¥äžã®ããã«æžããŸããããã§ã¯UMapã®abstractããã±ãŒãžå ã«ããOverlayã¯ã©ã¹ãã€ã³ããŒãããOverlayã¯ã©ã¹ãç¶æ¿ããŸãã
[3-18.as]
package {
import com.afcomponents.umap.abstract.Overlay;
public class Zen extends Overlay {
}
}
Flashãã¡ã€ã«ã§ã¯mapãšããã€ã³ã¹ã¿ã³ã¹ã§å°å³ãçæããmapã®ã¡ãœããã§ããaddOverlayã䜿ãã ãŒããŒã¯ãªããã衚瀺ãããŸãã
[3-19.as]]
import com.afcomponents.umap.core.UMap; import com.afcomponents.umap.types.LatLng; var map:UMap = new UMap(); map.setSize(300, 300); var pos = new LatLng(35.690500,139.714508); map.setCenter(pos, 19); // zenãšããã€ã³ã¹ã¿ã³ã¹ã§ã ãŒããŒã¯ãªãããã€ã³ã¹ã¿ã³ã¹åããŸã var zen:Zen = new Zen(); // overlayã¯ã©ã¹ã«ã¯positionãšããããããã£ããããããã§äœçœ®ã調æŽããŸãã // äœçœ®ã¯ç·¯åºŠãçµåºŠã§æå®ããŸã zen.position = pos; map.addOverlay(zen); addChild(map);
[caution] Overlayã¯ã©ã¹ã¯Spriteãç¶æ¿ããŠãããããOverlayã¯ã©ã¹ãç¶æ¿ããã ãŒããŒã¯ãªããã¯SpriteãšããŠæ±ãããŸãããªã®ã§ã ãŒããŒã¯ãªããã®äžã«ã¢ãŒã·ã§ã³ãã¥ã€ãŒã³ã®ã¢ãã¡ãŒã·ã§ã³ãäœæããŠãåããŸãããã¢ãã¡ãŒã·ã§ã³ãåããããå Žåã¯ActionScript?ã§æäœããããã ãŒããŒã¯ãªããå ã«ããã«å ¥ãåã®ã ãŒããŒã¯ãªãããäœã£ãŠããã®äžã§åãããŸãã
â3-6 XãYã®åº§æšã緯床çµåºŠã«å€æãã †
ä»åã®ãµã³ãã«ã§ã¯å°å³äžã®éè·¯éšåã§ããçœãäœçœ®ãååŸããŠãããã«äººãé 眮ããŸãããã®ãšãã«çœãäœçœ®ãšããã®ã¯X,Y座æšã§èšç®ããã®ã§ãããå®éã®å°å³ã§è¡šç€ºããéã¯ç·¯åºŠçµåºŠãæå®ããŠãããªããšãããŸããããããã£ãå Žåã¯UMapã¯ã©ã¹ã®getLatLngFromComponentXYã¡ãœããã䜿ããŸããéã«ç·¯åºŠçµåºŠããXãYäœçœ®ã«å€æããã«ã¯getComponentXYFromLatLng?ã¡ãœããã䜿ããŸãã
import flash.geom.Point; import com.afcomponents.umap.types.LatLng; // Pointã¯ã©ã¹ãšäœ¿ã£ãŠXãY座æšãæ ŒçŽããŸãã var posXY = new Point(100, 250); // XãY座æšã緯床çµåºŠã«å€æããŸããå€ã¯LatLngã¯ã©ã¹ã®åœ¢åŒã§è¿ãããŸã var latLng:LatLng = map.getLatLngFromComponentXY(posXY);
â4 å°åãã緯床çµåºŠãååŸãã †
â4-1 䜿çšãããµãŒãã¹ã«ã€ã㊠†
å°åãã緯床çµåºŠãååŸããã«ã¯Google Maps APIã䜿ããŸããGoogle Maps APIã¯ããããšç¥ããGoogleãããã䜿ãããŠã§ããµãŒãã¹ã§ãããã®æ©èœã®äžã§ãå°åãæž¡ããšãã®ç·¯åºŠãçµåºŠãè¿ããŠãããã¡ãœããããããŸããçµæã¯XML圢åŒã§è¿ã£ãŠããŸãã®ã§ãFlashå ã§çµæãè§£æããŸãã
Google Maps API http://code.google.com/apis/maps/
â4-2 緯床çµåºŠã®ååŸæ¹æ³ †
緯床çµåºŠãååŸããã«ã¯ãŸãå°åãAPIã«æž¡ãå¿ èŠããããŸããæ¥æ¬ã®å°åã§èª¿ã¹ãããšãã¯å°åãäžåºŠURLãšã³ã³ãŒãããå¿ èŠããããŸããURLãšã³ã³ãŒãã«ã¯escapeMultiByte?ã¯ã©ã¹ã䜿ããŸãã
[4-1.as]
import flash.utils.escapeMultiByte; var place = "æ°å®¿åŸ¡è"; var placeURLEncode = escapeMultiByte(place); trace(placeURLEncode); // åºå %E6%96%B0%E5%AE%BF%E5%BE%A1%E8%8B%91
APIãåŒã³åºãã«ã¯URLLoaderã䜿ããŸãããã®ãšãã«APIããŒãæž¡ãå¿ èŠããããŸããAPIããŒã¯Google Mapsã®ããŒãžããååŸããããšãã§ããŸãã®ã§ãäºåã«ååŸããŠãããŠãã ããã
Google Maps APIããŒã®ååŸURL http://code.google.com/apis/maps/signup.html
[4-2.as]
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
var url = "http://maps.google.com/maps/geo?q=å°å&output=xml&key=APIããŒã代å
¥";
var loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, readXML);
loader.load(new URLRequest(url));
// XMLãè¿ã£ãŠããŸã
function readXML(e:Event) {
var myXML:XML = new XML(loader.data);
trace(myXML);
}
çµæã¯ä»¥äžã®ãããªXML圢åŒã§è¿ã£ãŠããŸãããã®XMLã®äžã®coordinatesã¿ã°å ã«çµåºŠã緯床ã®é çªã§å€ãè¿ã£ãŠããŸãã
[4-3.as]
<kml xmlns="http://earth.google.com/kml/2.0">
<Response>
<name>æ°å®¿åŸ¡è</name>
<Status>
<code>200</code>
<request>geocode</request>
</Status>
<Placemark id="p1">
<address>ïŒæ¥æ¬ïŒæ°å®¿åŸ¡è</address>
<AddressDetails Accuracy="1" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0">
<Country>
<CountryNameCode>JP</CountryNameCode>
<AddressLine>æ°å®¿åŸ¡è</AddressLine>
</Country>
</AddressDetails>
<Point>
<coordinates>139.710682,35.687041,0</coordinates>
</Point>
</Placemark>
</Response>
</kml>
XMLã¯ActionScript? 3.0ããæ°ããå ãã£ãæ©èœã®E4Xã䜿ããšäŸ¿å©ã§ãããã ããGoogle MapsããéãããŠããXMLã¯ããŒã ã¹ããŒã¹ãæå®ãããŠããŸãããã®å ŽåFlashã«ãã®ããŒã ã¹ããŒã¹ãæå®ããªããšE4Xã§ã¢ã¯ã»ã¹ã§ããªãã®ã§ãããŒã ã¹ããŒã¹ãæå®ããŸããæçµçã«latLngãšãã倿°åã«ã«ã³ãåºåãã§çµåºŠãšç·¯åºŠãè¿ã£ãŠããŸãã
[4-4.as]
var myXML:XML = new XML(loader.data);
// XMLã«ã¯ããŒã ã¹ããŒã¹ã䜿ãããŠããã®ã§ãããŒã ã¹ããŒã¹ãæå®ããŸã
var ns:Namespace = new Namespace("http://earth.google.com/kml/2.0");
default xml namespace = ns;
// 緯床çµåºŠã¯ã«ã³ãåºåãã§è¿ã£ãŠããŸã
var latLng = myXML.Response.Placemark.Point.coordinates
trace(latLng); // åºå 139.710682,35.687041,0
â5 人å£å¯åºŠãååŸãã †
â5-1 䜿çšãããµãŒãã¹ã«ã€ã㊠†
人å£å¯åºŠãååŸããã«ã¯mySocietyãéå¶ããŠãããŠã§ããµãŒãã¹ã䜿ããŸãããã®mysociety.orgãšããã®ã¯ã€ã®ãªã¹ã®å£äœã§ã人å£å¯åºŠãååŸãã以å€ã«ãIPã¢ãã¬ã¹ããåœãååŸããããšãªã©ãã§ããŸãã ãã®äººå£å¯åºŠãååŸãããµãŒãã¹ã¯ç¡åã§æäŸãããŠããŸãã
mySociety http://www.mysociety.org/
mySocietyãæäŸããŠãããŠã§ããµãŒãã¹ http://gaze.mysociety.org/
â5-2 人å£å¯åºŠã®ååŸæ¹æ³ †
人å£å¯åºŠãååŸããã«ã¯get_population_densityãšããã¡ãœããã䜿çšããŠã緯床ãšçµåºŠã®2ã€ã®å€ãAPIã«æž¡ããŠãããŸãã
[5-1.as]
http://gaze.mysociety.org/gaze-rest?f=get_population_density;lat=緯床;lon=çµåºŠ
çµæã¯äººå£å¯åºŠã®æ°åã®ã¿ãè¿ã£ãŠããŸãã人å£å¯åºŠã¯1å¹³æ¹ããã¡ãŒãã«ãããã®äººæ°ã§ãã
[5-2.as]
6577.567
Flashã§ååŸããã«ã¯URLLoaderã䜿ããŸãã人å£å¯åºŠã¯dataããããã£å ã«æ ŒçŽãããŠããŸãã
[5-3.as]
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
// URLLoaderã§APIã«ã¢ã¯ã»ã¹ããŸã
var myLoader:URLLoader = new URLLoader();
var myRequest:URLRequest = new URLRequest("http://gaze.mysociety.org/gaze-rest?f=get_population_density;lat=35.690659;lon=139.714508");
myLoader.addEventListener(Event.COMPLETE, onLoadDensity);
myLoader.load(myRequest);
// 人å£å¯åºŠã¯dataããããã£ã«æ ŒçŽãããŸã
function onLoadDensity(e:Event) {
var density = e.target.data;
trace("人å£å¯åºŠã¯"+density+"ã§ã");
}
â6 å°å³äžã®éè·¯ã«äººãæ©ããã †
â6-1 䜿çšããæ©èœã«ã€ã㊠†
å°å³äžã«äººãæ©ãããã®ã¯Flashå ã®æ©èœã䜿ããŸããFlash MX 2004ãŸã§ã¯ç»åã¯ãããŸã§ã²ãšã€ã®ç»åãšããŠããæ±ãããäžã«ã©ããªçµµãããã®ããèªèããããšã¯ã§ããŸããã§ãããFlash 8ããã¯ç»åèªèº«ãããŒã¿ãšããŠè§£æããããç»åãæžãæãããããããšãã§ããBitmapData?ã¯ã©ã¹ãšããã®ãã§ããŸãããä»åã¯ããã䜿ã£ãŠãå°å³äžã®çœãéšåã«äººãæ©ãããŠãããŸãã
â6-2 ç»åããŒã¿ãååŸãã †
ãŸãã¯BitmapData?ã䜿ã£ãŠãèªã¿èŸŒãã ç»åãããŒã¿ã«çœ®ãæããŸããããã¯UMapã³ã³ããŒãã³ãããç»åãããŒããããåŸã«è¡ãããŸãã
[6-1.as]
// BitmapDataã®ã€ã³ã¹ã¿ã³ã¹ãmapã®å€§ããåäœããŸã // ïŒmapã¯UMapã³ã³ããŒãã³ãã®ã€ã³ã¹ã¿ã³ã¹åïŒ mapData = new BitmapData(map.width, map.height); // mapã®ç»åããŒã¿ãmapDataã«æžã蟌ã¿ãŸã var myMatrix:Matrix = new Matrix; mapData.draw(map, myMatrix);
â6-3 ç»åã®çœè²ãå€å¥ãã †
ããã»ã©å°å³ã®ç»åãBitmapData?ã«çœ®ãæããŸãããããã®ããŒã¿ã®äžããã©ã³ãã ãªäœçœ®ãéžã³ããã®è²ãååŸããŸãã ãã®è²ãçœè²ã§ããã°ãããã¯éè·¯ãšã¿ãªããŸããããçœè²ã§ã¯ãªããã°ãããäžåºŠåãã¡ãœãããåŒã³åºãçœè²ã®å Žæãæ€åºããããŸã§ç¶ããŸãã ããçœè²ãæ€åºãããã°ãããã®XãYäœçœ®ã緯床çµåºŠã«å€æããUMapã«è¡šç€ºãããŸãã
[6-2.as]
ãfunction getRandomWhiteSpace?():LatLng? {
var x = Math.floor(Math.random() * mapData.width);
var y = Math.floor(Math.random() * mapData.height);
// ããŒã¿ã®è²ã16鲿°ã«çœ®ãæããŸã
var col = mapData.getPixel(x, y).toString(16);
// ååŸããè²ãçœè²ã®å Žåã¯ãã®äœçœ®ã確å®ããããã§ãªãå Žåã¯å床åãã¡ãœãããåŒã³ãŸã
if (col == "ffffff") {
// XãYã®äœçœ®ã緯床çµåºŠã«ãããããŸã
var latLng:LatLng = map.getLatLngFromComponentXY(new Point(x, y));
return latLng;
} else {
return getRandomWhiteSpace();
}
ã}
â6-4 ç»åã®çœè²éšåã«äººãé 眮ãã †
çœè²éšåãæ€åºãããã°å°å³äžã®ãã®äœçœ®ã«äººãé 眮ããŸãã人ã«ã¯ã ãŒããŒã¯ãªããã䜿ããŸãããã®ã ãŒããŒã¯ãªããå ã«ç»åãäžæãããŠããŸãããã®ã ãŒããŒã¯ãªãããšPersonã¯ã©ã¹ãçµã³ã€ããŠaddOverlayã¡ãœããã§UMapäžã«é 眮ããŸããaddOverlayã®è©³ããäœ¿ãæ¹ã¯ãå°å³ãµãŒãã¹ãå©çšãããã®ãšããã§è©³ãã説æããŠããŸãã
[6-3.as]
var person:Person = new Person(); var overlay = map.addOverlay(person); overlay.position = pos;
â6-5 çœè²éšåã«äººãæ©ããã †
人ãé 眮ãããšããšã¯ãã®äººãæ©ãããã ãã§ããåºæ¬çã«äººã¯å°å³äžã®çœè²éšåãæ©ãã®ã§ãä»ããäœçœ®ã®äžäžå·Šå³ãçœè²ãã調ã¹ãŸãããã®ã©ããã®æ¹åãçœè²ã§ããã°ããã¡ãã®æ¹åãžãšããããåãç¶ããŸããããåãç¶ããããšã«çœè²ã§ã¯ãªãéšåã«çªãåœãããšãŸãã©ã³ãã ã«çœè²éšåã®æ¹åã調ã¹ãŸãã
ãŸãã¯ã©ã³ãã ã«çœè²ã®æ¹åãžé²ã¿ãŸã
çœè²ã§ãªããšããã«æ¥ããšæ°ããªæ¹åãæ¢ããŸã
çœè²ãèŠã€ãããšãã¡ãã®æ¹åã«é²ã¿ãŸã
â7 ãã®ä»ã®å°å³è¡šç€ºãããµãŒãã¹ †
â7-1 å°å³ãµãŒãã¹ã䜿ãã«ããã£ãŠ †
Flashäžã«å°å³ã衚瀺ããããµãŒãã¹ã¯ããã€ããããŸããããã§ã¯ãã®ããã€ãã玹ä»ããŠãããŸãã ã»ãšãã©ã®ãã®ãæµ·å€ã®ãã®ã§ãæ¥æ¬ã§ã®ãã®ã¯ãŸã ããŸããããŸããããŸããã¥ãŒããªã¢ã«ããªãã¡ã¬ã³ã¹ãªã©ã®ããã¥ã¡ã³ããå°ãªãã£ãããåçšã§äœ¿ã£ãŠãããã®ãšäœ¿ãã«ã¯ãéãããããã®ãªã©ããããªçš®é¡ããããŸãã®ã§ãããžãã¹ã§äœ¿ãã«ã¯ãŸããã®ããããå ã«èª¿ã¹ãã»ãããããããããŸããã
â7-2 Yahoo! Maps AS3 Component †
YahooããActionScript? 3.0çšã®APIãå ¬éãããŸããïŒ2008幎2æçŸåšïŒãYahooã¯ä»¥åããå°å³ãFlashã§è¡šç€ºããã®ããµããŒãããŠããŠãä»åããã®æµãã ãšæããŸãããã æ®å¿µãªã®ã¯Flashã«åããããŠããã®ã¯ã¢ã¡ãªã«ã®ã€ããŒã§ãæ¥æ¬ã®ã€ããŒã¯Flashã®å°å³ãæ¡çšããŠããŸããããã¡ããã¢ã¡ãªã«ã®ãµãŒãã¹ã䜿ãã°ããã®ã§ãããæ¥æ¬ã®å°å³ã¯è©³çްãŸã§è¡šç€ºãããªããããä»åã®ãµã³ãã«äœæã«ã¯äžåãã§ããã
Yahoo! Maps AS3 Component http://developer.yahoo.com/flash/maps/
â7-3 Modest Maps †
Modest Mapsã¯BSDã©ã€ã»ã³ã¹ã®å°å³ãµãŒãã¹ã§ãããªã®ã§ã»ãã®å°å³ãµãŒãã¹ããã¯æ¯èŒçèªç±ã«äœ¿ãããšæããŸãã ãã®ä»ãGoogleããã以å€ã«ãYahooãããããã®ä»ã®ããããµãŒãã¹ãå©çšã§ããããã«ãªã£ãŠããŸãã ãŸã æ¥æ¬èªã§ã®è§£èª¬ãå°ãªãã§ãããèªç±åºŠãããªãé«ãããªã®ã§ãå®éã®ãµãŒãã¹ãšããŠäœ¿ãã«ãããã®ã§ã¯ãšæããŸãã
Modest Maps http://modestmaps.com/
â7-4 swfGMap †
æ¥æ¬äººãéçºãããµãŒãã¹ã§ããCodeRepos?ãšããã ãã§ããœãŒã¹ãå ¬éããŠå ±æã§ãããµã€ãã§çºè¡šãããŠãããã®ã§ããå°å³ãå転ãããæ©èœãã€ããŠãããšãããç¹åŸŽã§ãããã¥ãŒããªã¢ã«ãªã©ã®ããã¥ã¡ã³ãã¯çŸåšã®ãšãããªãããã§ãããœãŒã¹ã³ãŒãã¯SVNã§ããŠã³ããŒãã§ããŸãã
SwfGMap http://coderepos.org/share/wiki/SwfGMap
â7-5 The Google Maps Flash Interface †
Google CodeãšãããªãŒãã³ãœãŒã¹ã®ã³ãŒããå ¬éãããšããã§çºè¡šãããŠããŸããBSDã©ã€ã»ã³ã¹ã®ãµãŒãã¹ãªã®ã§ããã¡ããèªç±ã«äœ¿ãããã§ãããã ããœãŒã¹ã¯ActionScript? 2.0ã§æžãããŠããŠãActionScript? 3.0ã§ã®ãœãŒã¹ã¯2008幎ã«ã¯ã§ããšã®ããšã§ãããä»ã®æç¹ã§ã¯ãŸã çºè¡šãããŠããŸããã
The Google Maps Flash Interface http://code.google.com/p/google-maps-flash-interface/
â6 ãŸãšã †
ä»åå°å³ãµãŒãã¹ããããããšèª¿ã¹ãŠã¿ãŸããããæ¥æ¬èªã§ã®è³æãå°ãªãã£ãããäºäŸãããã»ã©å€ããªã£ãããšãéçºããç°å¢ã¯ãŸã ãããªã«æŽã£ãŠããªãæãã¯ããŸããã ãã ãä»åãµã³ãã«ãäœã£ãŠã¿ãŠãå°å³äžã§Flashã®ã³ã³ãã³ããã¬ãªã¬ãªåããã®ã¯ãã¯ã楜ãããªããšæããŸãããå°å³ãµãŒãã¹ã¯Googleãããã代衚ã«Ajaxãªã©ã§åããã®ãå€ãã§ãããä»åŸFlashã䜿ã£ãã¡ãã£ãšåãå£ã®éãå°å³ã®è¡šçŸãçŸãããŠããããšãæåŸ ãããã§ãã
æ·»ä»ãã¡ã€ã«:

















