ããããã絶察ã«ãã¹ãŠã®èªè
ãAPIã䜿çšãããã¬ãŒã ã¯ãŒã¯ãã©ã€ãã©ãªããŠã£ãžã§ãããããšã³ãã£ãã£ãšã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³éã®äžçš®ã®éä¿¡èšèªãšããŠäœ¿çšããŸãã ãããŠããããããããã€ãã®APIã®æ¹ã䜿ããããããšãšãæãããªåé¡ãããããšã«ãæ°ã¥ãã§ãããã
Vsevolod Shmyrov ïŒ@
vsesh ïŒã¯ã
Frontend Confã«ã€ããŠã®åœŒã®ã¬ããŒãã§ããã®ãã³ãŒãã¯ã«ããã®äžã«ããã
ã©ã®APIãè¯ãã®ããšãã質åã«çããããšããŸããã
ãã®ã¹ããŒãªãŒã¯ãYandex.Maps APIã®éçºçµéšã«åºã¥ããŠãããJavaScriptã©ã€ãã©ãªã§ããããã®éçºã®ååãšæ©èœã®å€ãã¯ããµãŒããŒAPIãã¹ã¿ã³ãã¢ãã³ã©ã€ãã©ãªãªã©ã®ä»ã®ã¿ã€ãã®APIã«ãé©çšãããŸãã è°è«ããããã¹ãŠã¯ã
ãããªãã¯A PIã«é¢é£ããŠããŸãã ååã ããã©ã€ãã©ãªã®APIã«ç®ãåããã°ãã©ããã§äœãã倿Žããå¿
èŠãããããšãç°¡åã«äŒããããšãã§ããã®ã§ããããªãã¯APIã®éçºè
ãçŽé¢ããåé¡ã¯ã»ãšãã©çºçããŸããã

ãã ããã¬ããŒã
ã¯ãç¬èªã®APIãå¿
èŠãã©ããã®è³ªåã«ã¯çããŸãã ã èªãã åŸã«é·æãšçæãæ¯èŒæ€èšãããããå¿
èŠãã©ãããçè§£ããŠãã ããã Vsevolodã¯ãAPIéçºè
ãçŽé¢ããå°é£ã解決ãã¹ãåé¡ãä»ã«äœããã¹ãããã€ãŸãããããã®4ã€ã®éèŠãªãã€ã³ãã«ã€ããŠç°¡åã«èª¬æããŸãã
ã¹ããŒã«ãŒã«ã€ããŠïŒ Yandexã®ã·ãã¢ã€ã³ã¿ãŒãã§ã€ã¹éçºè
ã§ããVsevolod Shmyrovã¯ãYandex.Maps APIãšYandexããããã¶ã€ããŒã®éçºã«çŽæ¥é¢äžããŠããŸããã
以äžã¯ã2017幎ã®
Frontend Confã®ã¬ããŒãã«é¢ããè³æã§ããããšãã°ããµããŒããããŠãããã©ãŠã¶ãŒã®ããŒãžã§ã³ã®ãªã¹ããªã©ãããã€ãã®ç¹ã¯å€æŽãããå¯èœæ§ããããŸãããåªããAPIã®åºæºã¯äŸç¶ãšããŠé¢é£ããŠããŸãã ããã«ãç©èªã¯æ¥œããèªæžã§ããVsevolodã代衚ããŠè¡ãããŸãã
ç°¡åã«ãã
APIã¯ã·ã³ãã«ã§ãããã§ããã°è«ççã§
ãªããã°ãªããŸãã ã ããã¯éåžžã«åçŽã§ããããã«æãããã®ã§ãããŸããããªããããããŸããã ããã«ããããããã人ã
ã¯ãã®èšèã«ãŸã£ããç°ãªãæå³ãå
¥ããŠããŸã-åçŽãã®çšåºŠã¯èª°ã«ãšã£ãŠãå®å
šã«ç°ãªã£ãŠããŸãã ç§ã話ããŠããããšãçè§£ã§ããããã«ãåŠå®çãªäŸã«ãŸã£ããè¡ããŸãããã
æ°å¹ŽåããããœãŒã·ã£ã«ãããã¯ãŒã¯ã®APIã«åºäŒããŸããã getFriendsã¡ãœããããããŸããã
getFriends( ) => [ ]
å®éãã¹ã©ã€ãäžã«JSæ¬äŒŒã³ãŒãããããšããäºå®ã«ããããããããã©ã¡ãŒã¿ãŒä»ãã®getFriendsãªã¯ãšã¹ããéä¿¡ããåéã®ãªã¹ããåä¿¡ãããµãŒããŒãšã³ããã€ã³ãã§ããã ãã¹ãŠãè«ççã§ããããã§ãå人ã«å°ããå人ãåŸãã ãã®APIã§åäœããç§ã®ã³ãŒãã¯æ¬¡ã®ããã«ãªããŸãã
var friends = getFriends( );
ããããäœããã®çç±ã§éçºè
ã¯ããã§ã¯ååã§ã¯ãªããšå€æããŸããã åéãããªãå Žåã圌ãã¯æ¬¡ã®ããšãããããšã決ããŸããã空ã®ãªã¹ãã®ä»£ããã«
NullãååŸããŸãã
ããŠãç§ã®ã³ãŒãã¯é©åã«èŠãå§ããŸããïŒ
var friends = getFriends ( ); If (friends) {
倧äžå€«ã§ããåºæ¬çã«ã¯ãŸã 䜿ããããã§ãã ããããéçºè
ã¯ããã§åæ¢ããªãããšã決å®ããæ¬¡ã®ããžãã¯ãäœæããŸããã1人ã®å人ãããå Žåããªã¹ãã¯è¿ãããŸãããããã®å人ã¯1人ã ãã§ãã
APIã¯ç°¡åã§ã¯ãªããéè«ççã§ããããšãæããã«ãªããŸãã ç§ã®ã³ãŒãã¯æ¬¡ã®ããã«ãªãå§ããŸããïŒ
var friends = getFriends( ); If (isUser(friends)) { } elseif (friends) { } else { }
ååãšããŠã2ã€ã®æ¡ä»¶ã§åé¡ãããŸããã ããã§ã®åé¡ã¯å¥ã®å Žæã«ãããŸãã ãã®ãœãŒã·ã£ã«ãããã¯ãŒã¯ã®APIã䜿çšãããã¹ãŠã®éçºè
ã¯ãAPIã䜿çšããããã«è¿œå ã®ãã§ãã¯ãäœæããŸãã ãããããã®ãããã®ã©ããã«ç·ãåŒããŠãæªãAPIãšè¯ãAPIãèšãããšãã§ããŸãã
è¯ãAPIãšã¯ãããŸãæžãéããªãAPIã§ã ã APIã§äœããã®ã¡ãœããã䜿çšããåŒãç¶ãããŒã¿ãåŠçããŸããæãããæ¡ä»¶ãèšè¿°ããå¿
èŠã¯ãããŸããã
èŠçŽãããšã
ã€ã³ã¿ãŒãã§ãŒã¹ã¯æ¬¡ã®ããã«ãªããŸãã- ã·ã³ãã«ã§è«çç
- äžè²«ãã
- ããããæ©äŒãæãªãããšã§ã¯ãããŸãã
äžè²«æ§ããããšããããšã¯ãAPIã«åãããŒã¿åã§æ©èœããã¡ãœãããããå Žåããããã®ããŒã¿åã¯åãæ¹æ³ã§èšè¿°ãããå¿
èŠãããããšãæå³ããŸãã
iCanShowYou({x: 1, y: 1}); NoUCant([1, 2]); ButIMust(Point);
ããšãã°ãMaps APIã§ã¯ã座æšããŒã¿ã¿ã€ãããã䜿çšãããŸãããããã®ããŒã¿ã¿ã€ãã¯ã緯床ãšçµåºŠã®é
åãšããŠãã©ãŒã ã«è¡šç€ºãããŸãã ãããŠããããã¯ã©ãã§ã説æãããŠããŸããã€ãŸããXYãªããžã§ã¯ããLong Latãªããžã§ã¯ãããŸãã¯äžè¬ã«2ã€ã®ãªããžã§ã¯ããåãå
¥ããã¡ãœããã¯ãããŸããã 座æšã¯ã©ãã§ãé
åã§è¡šãããŸãã
ãããããã¡ããäžèšã®ãã¹ãŠãæ©äŒãç ç²ã«ããŠã¯ãªããŸããã åçŽã«èª¬æã§ããªãè€éãªã¿ã¹ã¯ãããã€ããããå
¥åæã«å€ãã®ãã©ã¡ãŒã¿ãŒãå¿
èŠã«ãªãããšããããŸãã ãŸãã¯ãAPIã§ã®ã¡ãœããã®çµæã¯ãµãŒãããŒãã£ã«äŸåããŸãã æ¬¡ã«ãåç¶æ³ãåå¥ã«æ€èšããå¿
èŠããããŸããæ¬¡ã«ããã®ãããªåé¡ãã©ã®ããã«è§£æ±ºããããå°ã説æããŸãã
someAwesomeMethod( elem, index, startValue, endValue );
äžèšã®äŸã§ã¯ãä»»æã®4ã€ã®åŒæ°ãåãã¡ãœããã æãå¯èœæ§ã®é«ãã±ãŒã¹ãæšæž¬ããæšæºãã©ã¡ãŒã¿ãŒå€ãæžãçããŠããããã®ã±ãŒã¹ã解決ãããããã«ããŸãã
倧éšåã®ãŠãŒã¶ãŒïŒãã®å ŽåããŠãŒã¶ãŒã¯APIã䜿çšããéçºè
ïŒãã¡ãœããã«å¿
èŠãªæå°éã®åŒæ°ãæž¡ãã远å ã®åé¡ã解決ããããã«ã远å ã®åŒæ°ãæ¢ã«èšè¿°ããŠããå¿
èŠããããŸãã
new ymaps.GeoObject( geometry, properties, options, );
ãã®äŸã§ã¯ããªããžã§ã¯ãããšã«ãã©ã¡ãŒã¿ãŒãã°ã«ãŒãåããŸãã ä»ã®èšèªã§ã¯ãç¹å®ã®ã¯ã©ã¹ãŸãã¯ã€ã³ã¿ãŒãã§ãŒã¹ã®ã¯ã©ã¹ãŸãã¯ã€ã³ã¹ã¿ã³ã¹ã«ããããšãã§ããŸãã ã€ãŸããGeoObjectã¯ç¹å®ã®ãžãªã¡ããªãæã€ããšãã§ãããã€ã³ããã©ã€ã³ãããªãŽã³ã«ããããšãã§ããååãªã©ã®ç¹å®ã®ããããã£ãæã¡ãè²ãªã©ã®ãªãã·ã§ã³ãæã¡ãŸãã ããããã¹ãŠã®åŒæ°ã«å€§ããªéãã¯ãããŸãããã
ãã䟿å©ã«ããããã«ãããã
æ°åŠçã«åå²ã
ãŸãã ã ãããŠççŽã«èšã£ãŠããžãªã¡ããªã®å€æŽã¯ããããã£ãããã¯ããã«å°ãªãã§ãã
new ymaps.GeoObject(geometry),
ãŸããç¹å¥ãªãœãããŠã§ã¢ãã«ããŒãäœæããŸãã å
ã»ã©èšã£ãããã«ããªããžã§ã¯ãã¯ãã€ã³ããã©ã€ã³ãããªãŽã³ã«ãªããŸãã ããšãã°ããã€ã³ããããé »ç¹ã«äœ¿çšããç¹å¥ãªPlacemarkã¯ã©ã¹ãäœæããŸãããããã¯ãå
¥åãšããŠæœè±¡çãªãžãªã¡ããªã§ã¯ãªãã座æšã®ãã¢ã®ã¿ãåã蟌ã¿ãŸãã
äžç¢ºããªçµæã®å Žåãããã¯ãŸã£ããå¥ã®ã¿ã¹ã¯ã§ãã
æŸèæããã§ã³ã¹ã§
å²ãå¿
èŠãããå ŽåããããŸããããããªãã¯APIã§ã®ã¿èª°ã§ãèŠãããšãã§ããåé¡ãè€éã«ããŸãã
geolocation.get() .then(function (result) {
geolocation.getã¡ãœããã¯ããŠãŒã¶ãŒã®çŸåšã®äœçœ®ãŸãã¯ãšã©ãŒã®ãããããååšãããããã¹ãè¿ããŸãã ééããçºçããå¯èœæ§ãããããããã®ã¡ãœããã§promiseã䜿çšããå¿
èŠããããŸãããããã«ããã®ã¡ãœããã¯éåæã§ãã Geolocation.getã¯ããã©ã«ãã§ãã©ãŠã¶ã®äœçœ®æ
å ±ã䜿çšããŸãããããã¯ãã¹ãŠã®ãã©ãŠã¶ããµããŒãããŠããããã§ã¯ãããŸããã
次ã®ããã«æ©èœããéçºè
ã¯geolocation.getã³ãŒãã«æžã蟌ã¿ããã®ã³ãŒããå®è¡ããããã®ãããªãŠã£ã³ããŠããã©ãŠã¶ãŒã«ãããã¢ãã衚瀺ãããŸãã

ãµã€ãã®ãŠãŒã¶ãŒã¯ããµã€ãããã®å ŽæãååŸããããšãèš±å¯ãŸãã¯æåŠããããšãã§ããŸãã ããããäžéšã®ãã©ãŠã¶ã«ã¯ãã°ããããŸãã-ã¯ãã¹ãã¯ãªãã¯ããããããŒãžã®ã©ãããã¯ãªãã¯ãããšããã®ãŠã£ã³ããŠã¯æ¶ããgeolocation.getã¯å€ãè¿ããŸããã§ãããå€ãªãã§ãã³ã°ããŸããã ãããã£ãŠã30ç§ä»¥å
ã«äººãäœãæŒããªãã£ãå ŽåããŸãã¯ãã®ãŠã£ã³ããŠãæ¶ããå Žåãã¿ã€ã ã¢ãŠãããªãã€ã¬ã¯ãããå¿
èŠããããŸããã ããã¯ããŸãçŸãããããŸããããããã§ãã³ãŒãã®å®å®æ§ãé«ããã®ã«åœ¹ç«ã¡ãŸãã
åçš¿ãçããªã
ãã®ã»ã¯ã·ã§ã³ã¯
åŸæ¹äºææ§ã«ã€ããŠã§ãã ãããããã®ãããªå ŽåããããŸããã
ããªãã¯äŒãã§ããŠãå€åããã¯äŒã¿ãããããå€ããªã©ãã¯ã¹ããŠããŠãçªç¶èª°ããããªãã«é»è©±ãããŠãçç£ã§äœãæ©èœããã補åãå£ããŠãããšèšããŸãã ãããŠãæåŸã®ãªãªãŒã¹ã¯3é±éåã§ããããã¹ãŠãæ£åžžã§ãããç Žæãããã®ã¯äœããªãã£ãããšãäœããã®åœ¢ã§æãåºããŸãã 圌ããèšãããã«ããã©ãã«ã®åå
ã¯ãããŸããã
ããªãã¯ç·æ¥ã«äœæ¥ãããã¯ãŒã¯ã«æ¥ç¶ãããããã¬ãéããäœãèµ·ããŠããã®ããçè§£ãå§ããçªç¶ããã¹ãŠãããªãã®åŽã§è¯ãããšãçè§£ããŸãã 䜿çšããAPIãå£ããŸããã ããæ£ç¢ºã«ã¯ãããã¯å£ãããããŸããã§ãããããã¯åã«ããªããæåŸ
ããæ¹æ³ã§ã¯ãªããç°ãªãæ¹æ³ã§åãå§ããŸããã ããã¯ãäžäœäºææ§ãå£ããŠããããšãæå³ããŸãã
äžäœäºææ§
äžäœäºææ§ã¯ãäžåºŠå
¬éãããã€ã³ã¿ãŒãã§ãŒã¹ãå°æ¥ãµããŒãããããšããä¿èšŒã§ã ã ååãšããŠãããã¯
ç¡éã«è¯ãã§ãããããå®éã«ã¯ãçŸåšã®ã¡ãžã£ãŒããŒãžã§ã³ã®ãã¬ãŒã ã¯ãŒã¯å
ã§ãã
äžè¬ã«ããã¹ãŠãè«ççã§ãããå®è¡ãããŸã
ããåäœããŸã-è§Šããªãã§ãã ãã ïŒ
äœãæ°ããããšãããããã«ãå芳è
ã®ã©ããã§ãããããŠãã ãããå€ããã®ã«è§Šããªãã§ãã ããã ããããããã»ã©åçŽã§ã¯ãããŸããã äžäœäºææ§
ã«ãããæ°ããã³ã³ããŒãã³ã ãæ°ããã€ã³ã¿ãŒãã§ã€ã¹
ã®éçºã«éåžžã«
匷ãå¶éã課ããããŸããããã«ã€ããŠè©³ãã説æããŸãã
æåã«ãæ°ããã€ã³ã¿ãŒãã§ã€ã¹ãå
¬éããããšã«ããå Žå
ãéçºè
ã®èªç±åºŠãèæ
®ããå¿
èŠããããŸãã

éçºè
ã®èªç±åºŠãé«ãã»ã©ããµããŒãã«å¿
èŠãªãªãœãŒã¹ãå€ããªããŸãã 1ã€ã®æ¹æ³ã§ãã䜿çšã§ããªãã¢ãžã¥ãŒã«ã1ã€ãããšããŸãã æ¬¡ã«ã2çªç®ã®ã¢ãžã¥ãŒã«ãååŸããŸããã1çªç®ã®ã¢ãžã¥ãŒã«ã䜿çšã§ããããã«ãªãã2çªç®ã®ã¢ãžã¥ãŒã«ã䜿çšã§ããããã«ãªããäž¡æ¹ã®ã¢ãžã¥ãŒã«ãäžç·ã«äœ¿çšã§ããããã«ãªããŸããã ãã®åŸã100åã®ã¢ãžã¥ãŒã«ãååŸãããããã䜿çšãããšãæ³åãã§ããªããããªèšå€§ãªæ°ã®çµã¿åãããäºæããªãç¶æ³ãçºçããŸãã ãã
ã«ãããäºæããªããšã©ãŒã®ãªã¹ã¯ãé«ãŸããŸã ã
ããã«ãããããã¹ãŠç¶æããã®ã¯éåžžã«è²»çšãããããŸãã远å ã®åäœãã¹ããçµ±åãã¹ãã远å ããåãã€ããŒããŒãžã§ã³ã®åã«ãã¹ãŠã確èªããå¿
èŠããããŸãã
ããã§ããšã³ãã£ãã£ãå
¬éããããšã«ããå Žåã¯ãã€ã³ã¿ãŒãã§ã€ã¹ã
æ¡åŒµå¯èœã§ããããšãèæ
®ããå¿
èŠããããŸãã
äŸãèŠãŠã¿ãŸãããã ãã€ãŠã¯ååãšããŠååšããã¡ãœããballoon.setPositionããããŸããã ããã§ãxãšyã®äžã«ç€ºãããŠãã2ã€ã®åº§æšã緯床ãçµåºŠãéä¿¡ããããšãã§ããŸããã
balloon.setPosition( x, y
å
ã»ã©èšã£ãããã«ããã¹ãŠã®åº§æšã¯2ã€ã®åŒæ°ã§ã¯ãªã1ã€ã§èšè¿°ãããŸããã©ã¡ããå¿
é ã®åŒæ°ã§ããããã§ãã ãããã£ãŠããããã1ã€ã®åŒæ°[xãy]ã«ãŸãšããŠãå¿
é ãšããŠããŒã¯ããããšããå§ãããŸãã æ¬¡ã«ã緯床ãšçµåºŠã«å ããŠæåœ±ãèš±å¯ãããšãããšæããŸãããããã©ã«ãã®æåœ±ããããŸãããäœããã®ç¬èªã®æåœ±ãèšå®ã§ããŸãã æåœ±ãªãã·ã§ã³ã远å ããããšãã§ããŸããããã®åŸãããããä»ã®ãªãã·ã§ã³ã远å ããå¿
èŠããããŸãã ãã®åŸãããã«ãªãã·ã§ã³ãäœæããå
éšã«æåœ±ãæå®ããå°æ¥çã«ä»ã®ããŒã远å ã§ããããã«ããããšã«ããŸããã ã€ãŸããã€ã³ã¿ãŒãã§ã€ã¹ãæ¡åŒµå¯èœã«ããå°æ¥ã®éçºã劚ããŸããã
æ°ããã€ã³ã¿ãŒãã§ã€ã¹ãå°æ¥ããããã«ãŒãã«ãªããã©ãããçè§£ããããã«ãå
ã»ã©ã話ãããããšã¯ãã¹ãŠå¿
èŠ
ã§ããïŒããäžåºŠäŸã«æ»ããŸãããã ããããããããªãŒããŒã¬ã€ãšã³ãã£ãã£ã§getLayoutã¡ãœãããå
¬éããããšã«ããŸããã åœæãHTMLLayoutã·ã³ãã«ã¯ã©ã¹ã®å®è£
ã§ããåäžã®ã¬ã€ã¢ãŠãããããŸããã æ¬¡ã®ãããªã€ã³ã¿ãŒãã§ãŒã¹ãå
¬éã§ããŸãã
overlay.getLayout()
å°æ¥çã«ã¯ãhtml以å€ã®ã¬ã€ã¢ãŠããäœæã§ããªããªããŸãã ãããã£ãŠãHTMLLayoutãè¿ãILayoutã€ã³ã¿ãŒãã§ã€ã¹ãè¿ãã¡ãœãããäœæããŸããã
overlay.getLayout()
ãŸããAPIã䜿çšããéçºè
ã¯ãããŒãºã«å¿ããŠãCanvasLayoutãªã©ã«åãæ¿ããããã«èšå®ã§ããŸãã
APIãã³ã³ããŒãã³ãããšã«å®è¡ããå¿
èŠãããããšãèªèããã¡ãœãããéåæã«ãªã£ãå Žåããã®å Žæã«ã¢ãžã¥ãŒã«ã®èªã¿èŸŒã¿ã远å ããæ©äŒããããããPromiseãäžè¬çã«èããŠè¿œå ããŸããã
ãã°ä¿®æ£
ããããå®ç§ãªãã®ã¯äœããªãã
é
ããæ©ãã ãšã©ãŒã¯ ã©ã® API ã«ã æŒããŸã ã 誀ã£ãã¢ãŒããã¯ãã£äžã®æ±ºå®ãè¡ãããããšãèµ·ãããŸãã ç§ãã¡ã®å Žåããã©ãŠã¶APIã«çŠç¹ãåãããŠéããŸããã äžéšã®ã€ã³ã¿ãŒãã§ã€ã¹ã¯å€±æããããçŽãå¿
èŠããããšããçµè«ã«éããŸããã ãã®å Žåãäžéšã®éçºè
ã¯ã¡ãœããã
éæšå¥šãšããŠããŒã¯ãå§ããŸãã
ç§ãã¡ã¯ãã®æ
£è¡ãæ¬åœã«æè¿ããŸããã ããããã6幎以å
ã«40ã®ã¡ãžã£ãŒãªãªãŒã¹ãããã11çªç®ã®ããŒãžã§ã³ã§äœããã®ã¡ãœãããç»å Žãã15çªç®ã§éæšå¥šã«ãªãã20çªç®ã§å®å
šã«åé€ãããAPIããããšãã«åºããããŸããã ããã¥ã¡ã³ãã®ä»çµã¿ãçè§£ããã«ã¯ãããã¥ã¡ã³ããçè§£ããå¿
èŠããããŸãã éæšå¥šã®ã¡ãœããã䜿çšãããšãAPIãèªç¶ã«å€§ãããªããããã¥ã¡ã³ãã䜿çšããã®ã䟿å©ã§ã¯ãªããªããŸãã
ãšã€ãªã¢ã¹ããã
䜿çšããŸããããããååãšããŠã¯è¯ã解決çã§ã¯ãããŸããã ããšãã°ãã¢ã€ã³ã³ã®ã¢ãã¯ã¢ãããããããã®å Žåããã°ã¬ãŒããšããåèªã®äž¡æ¹ã®ã¹ãã«ã䜿çšããŸããäžéšã®ãŠãŒã¶ãŒã¯ã¢ã¡ãªã«èªã§æžããäžéšã¯è±èªã§æžããŸãã
presets.get('islands#greyicon'); presets.get('islands#grayicon');
ã¿ã€ããã¹ãçºèŠãããšããç§ãã¡ã¯ã¡ãœããã§åãããšãããŸããã
ããããäžäœäºææ§ã§æãéèŠãªããšã¯ã
ãã¹ãŠãä¿®æ£ã§ããããã§ã¯
ãªããšããããšã§ãã ç§ã®ãæ°ã«å
¥ãã®æŒ«ç»ã§æãããŠããããã«ãæã
ããªãã¯ææŸããŠå¿ããå¿
èŠããããŸãã
çŽ2幎åãAPIããã¯ãšã³ãããããµãŒããŒãã¯ãããžãŒããå¥ã®ãµãŒããŒãã¯ãããžãŒã«æžãæããŸããã æ¬¡ã®ããã«äœ¿çšãããAPIã䜿çšããéçºè
ïŒåç
§ã«ãã
https://api-maps.yandex.ru/2.1/?lang=ru_RU&mode=debug
ã¹ã¯ãªãããããŒãžã«æ¥ç¶ãããã¹ãŠãå®å
šã«æ©èœããŸããã
Node.jsã«ç§»è¡ããçªç¶ãŠãŒã¶ãŒããèŠæ
ãå¯ããããŸããã ããã¯ã¢ã³ããµã³ãã§ãã-äžéšã®ãŠãŒã¶ãŒã¯ãç¹å¥ãªèšå·ãïŒamp;ããä»ãããªã³ã¯ãã³ããŒããŸãããããã¯ãhtmlã§ã¯ã¢ã³ããµã³ããšããŠæ±ãããé©åã«æ©èœããŸãã ããããäžéšã®ãŠãŒã¶ãŒã¯ãã®ãªã³ã¯ããã®ãŸãŸã³ããŒããŸãããã€ãŸãããµãŒããŒã§ã¯ãªããã®ãããªãªã¯ãšã¹ããéä¿¡ãããŸããã ãããçºçãããšããã©ã¡ãŒã¿ãŒãmodeãã®ä»£ããã«ãamp; modeããçºçããæ¬¡ã®ãšã©ãŒãçºçããŸããã å€ãããã¯ãšã³ãã¯ãã;ãèšå·ãã¢ã³ããµã³ãèšå·ãšãšãã«ãã©ã¡ãŒã¿ãŒã®ååŸã»ãã¬ãŒã¿ãŒãšèŠãªããããããããåŠçããŸããã ã€ãŸããã©ã³ã°ãã¢ãŒãããããŠç©ºã®ã¢ã³ãããããããããŸããã
äœäººã®ãŠãŒã¶ãŒããã®ãããªãªã¯ãšã¹ããè¡ã£ãããèŠãŠããããæ£ãããªãããšãå
šå¡ã«èª¬æã§ããªãããšã«æ°ä»ããŸããã ãã®ãããåã«ããã«ãŠã§ã¢ã远å ããŸãããããã«ãŠã§ã¢ã¯getãã©ã¡ãŒã¿ãŒããã¢ã³ããåé€ãããã®ãã©ã¡ãŒã¿ãŒãåŠçããåŸã«ã®ã¿åé€ããŸãã ã¯ããããã¯æãã§ãããããªãã¯ãããšå
±ã«çããªããã°ãªããŸããã
ã¡ãžã£ãŒãªãªãŒã¹
ãããããã¹ãŠãããã»ã©çµ¶æçãšãã
ããã§ã¯ãããŸãããåŸæ¹äºææ§ã®ééãã¯ãããªãã®äººçãçµãããŸã§æ©ãŸãããããšã¯ãããŸãã ã æåŸãŸã§ã次ã®ã¡ãžã£ãŒããŒãžã§ã³ãŸã§ã

çŽ3幎åãAPI 2.1ã®ã¡ãžã£ãŒããŒãžã§ã³ããªãªãŒã¹ããŠããµããŒããã
ãã©ãŠã¶ãŒã®ãªã¹ãã
æŽæ°ããããšã«ããŸããã APIããŒãžã§ã³2.0ã¯ãéåžžã«å€ããIE 6ããµããŒãããŠããŸããã ããããæ®å¿µãªããã2.1ã§ã¯IE 8ãåŒãç¶ããµããŒãããŠããŸãã3幎åã¯ããªãææ°ã®ãã©ãŠã¶ãŒã ã£ãããã§ãïŒçŸåšIE 8ã¯ãã§ã«åŒ±ããµããŒãã«ãªã£ãŠããŸãïŒã
æ£çŽã«èšããšãç§ãã¡ã®éã ãã§ãå¹³æ¥ã¯IE 8ã®ã·ã§ã¢ã4ïŒ
ååŸã§ããã鱿«ã«ã¯1ïŒ
æªæºããäœäžããŸããã äŒç€Ÿã§IEã䜿çšããŠããå Žåã¯ãååã«æŽæ°ããŠãã ããã
ãã®ããããã©ãŠã¶ãŒã®ãªã¹ããæŽæ°ããããšãåŸæ¹äºææ§ã®åé¡ã§ãããAPIã¯å€ããã©ãŠã¶ãŒã§ã¯æ©èœããªãããããã®ããŒãžã§ã³2.1ãšåŒã°ããŠããŸãã åæã«ã圌ãã¯ããããå¿
èŠã§ã¯ãªãå Žåã§ãããã¹ãŠå€ã«åºãŠãäžäœäºææ§ãç Žãããšã«æ±ºããŸããã ãããã®ãã¹ãŠã®ãšã€ãªã¢ã¹ãšãäžäœäºææ§ã®ããã«ç¶æããå¿
èŠã®ããæŸèæãã
ã³ãŒãã
ã¯ãªãŒã³ã¢ããããIE 6ã®å€ã芪åãåé€ããŸããã
ã¡ãžã£ãŒããŒãžã§ã³ãäžèœè¬ã§
ã¯ãªãããšã¯æããã§ããæ°ããã¡ãžã£ãŒããŒãžã§ã³ã®ãªãªãŒã¹ã¯ãAPIã䜿çšãã
éçºè
ã«ãšã£ãŠã
ã¹ãã¬ã¹ã®å€ããã®ã§ã ã ããã¥ã¡ã³ããå床ã¯ãªãŒã³ã¢ããããå¿
èŠããããããã¡ãžã£ãŒããŒãžã§ã³ã«inããªãæ¹ãããã§ãããã ã¡ãžã£ãŒããŒãžã§ã³ã®ãªãªãŒã¹ã§ã¯ãåŒãç¶ãã³ãŒãã®æžãæãã匷å¶ãããŸããã€ãŸãããŠãŒã¶ãŒã«åŒ·å¶ããªãéããAPIã¯ããŸãè¯ããããŸããã éšåçãªè§£æ±ºçã¯ãç¹å¥ãªæäœã¢ãŒãã§ãã
ä»äºã®ãç¹å¥ã¢ãŒãã
JavaScriptã«ã¯å³å¯ãª
ãå³å¯ãª
䜿çšãã¢ãŒãããããŸããåãã³ãŒããèšè¿°ãããšãèŠèŠçã«ã¯åãããã«èŠããŸãããåŠçæ¹æ³ãå°ãç°ãªããŸãã åæ§ã®åäœã¢ãŒãããããŸãããç®çã¯ãŸã£ããç°ãªããŸãã
https://api-maps.yandex.ru/2.1/?lang=en_RU&coordorder=longlat
getãã©ã¡ãŒã¿coordorderããããŸããããã¯ãåè¿°ã®é
åå
ã®åº§æšé åºãå¶åŸ¡ããããã«äœ¿çšã§ããŸãã ããã©ã«ãã§ã¯ã緯床ã¯longlatã§ãã çµåºŠã緯床ïŒç·¯åºŠçµåºŠïŒãæž¡ãããšãã§ããŸãã ç°ãªããžãªã·ã¹ãã ã¯ç°ãªã座æšé åºã䜿çšããŸãã ãããã£ãŠãgetãã©ã¡ãŒã¿ãŒãæå®ãããšãç°ãªãæäœã¢ãŒããååŸãããŸãã
APIå
šäœã®åäœã¯å°ãç°ãªããããèšç®ã§ã¯ãããèæ
®ããå¿
èŠããããŸãã
åŸæ¹äºææ§ã«ã€ããŠä»ã«èšããããšã¯ãããŸããïŒ ããªããæããããããªãããã«ãåŸæ¹äºææ§ã¯ã³ãŒãã ãã§ãªã圱é¿ããŸãã

ããžã¥ã¢ã«APIãã€ãŸãäœãã衚瀺ããAPIãéçºããŠããå Žå
ãããžã¥ã¢ã«ã³ã³ããŒãã³ããšã®åŸæ¹äºææ§ããããŸã ã å°ãåã«ããããã³ã³ãããŒã«ãæŽæ°ããAPIã®æ°ãããã€ããŒããŒãžã§ã³ããªãªãŒã¹ããŸããã ä»ã§ã¯ãã¡ãã·ã§ããã«ã§ããããã«ããããã¯ãã軜ããããå¹³ãã«ãªããŸããããå®éã«ã¯ãµã€ãºã¯å€ãããŸããã§ããã ãªããããããã®ã§ããïŒ çè«äžã巚倧ãªãã¿ã³ãäœæããããåå圢ã«ããããã¢ã€ã³ã³ã倿Žããããã¢ã€ã³ã³ãå®å
šã«åé€ãããã§ããŸãããããã¯åŸæ¹äºææ§ã«éåããŸãã
APIã§ã³ã³ãããŒã«ãäœæãããšããéçºè
ãç¬èªã®ã³ã³ãããŒã«ã远å ããæ©äŒãéçºè
ã«æäŸããããšã¯çŽ æŽãããããšã ãšèããŸããã ã€ãŸããäžããã§ã¯ãªããçãäžã§ãã ãããã£ãŠããã¿ã³ã®æšæºã¬ã€ã¢ãŠãã倧ããããå Žåããµã€ãã®éçºè
ã¯ã¬ã€ã¢ãŠãã«è¡ããŸãã ãã®ãããæ°ãããã€ããŒããŒãžã§ã³ãäœæããå Žåã¯ããããèæ
®ããŠèæ
®ããå¿
èŠããããŸãã

ãŸããã«ã¹ã±ãŒãã§ã¯éåžžã«é »ç¹ã«äžäœäºææ§ãæãªãããããšã«æ³šæããŠãã ããã ç§ãã¡ã®å Žåããã©ãŠã¶ã®äœããå£ããŠããŸã-APIã®äœããå£ããŠããŸãã

ãŠãŒã¶ãŒã®å
±æã®çŽ80ïŒ
ãæ¢ã«æã£ãŠãã1ã€ã®ãã©ãŠã¶ãŒã§ãMouseEventã€ãã³ãã®ãµã€ã³ãçªç¶ãµã€ã³ã倿Žãããšãã«ããã®ãããªå°ãæ²ããé¢çœãã±ãŒã¹ããããŸããã ããŠã¹ãã€ãŒã«ãã¹ã¯ããŒã«ãããšããã©ã¹ã§ã¯ãªããã€ãã¹ã«ãªãå§ããŸããã åœç¶ã人ãããŠã¹ãã€ãŒã«ã§å°å³ããºãŒã ããããšãããšãå°å³ããé¢ãå§ããŸããã ãã©ãŠã¶ãä¿®æ£ãããŸã§ã®2æ¥éã¯ã1æ¥ã«çŽ3000éã®æçŽãåãåããŸããã ããªããçè§£ããããã«ãéåžžãæãã¹ãã¬ã¹ã®å€ãæ¥ã§ãããçŽ10éã®æçŽãå°çããŸããã€ãŸãã
人ã
ã¯ã«ãŒããçªç¶ãã®è¡åãå€ããããšã
æ¬åœã«äžå¿«ã«æããŸããã
èŠç¥ãã¬äººã®éã§
ãã®ã»ã¯ã·ã§ã³ã¯JavaScript APIã«å°å¿µããŠããŸãããããã§ãéåžžã«è峿·±ããã®ã§ãã APIã¯å€éšã®ã³ã³ããã¹ãã§åäœããŸãããã©ãããæå³ã§ããïŒ map APIã䜿çšããæåã®ãµã€ããããããã¹ãŠãæ£åžžã«æ©èœãããšããŸãã APIã䜿çšãã2çªç®ã®ãµã€ãããããŸãããjQueryã©ã€ãã©ãªã䜿çšããŸã-ãã¹ãŠæ£åžžã«åäœããŸãã ãŸãããããAPIãšäžéšã®evil.jsã䜿çšãã3çªç®ã®ãµã€ãããã
ãäœããã®çç±ã§åºæ¬çãªã¡ãœãããåå®çŸ©ããŠããŸã ã

以äžã®äŸã§ã¯ãindexOfããã€ãã¹1ãè¿ããªããšãããšã©ãŒããããŸãã ã©ããããã®ã¡ãœããã®éçºè
ã¯IE 6ããµããŒãããããšã«æ±ºããå®éã®indexOfã®ååšã確èªãããæ¬¡ã®ããã«æžããŸããã
Array.prototype.indexOf = function (item) { for (var i = 0; i < this.length; i++) if (item ==this [i]) return i; };
ãã®å ŽåãAPIã¯èªç¶ã«å£ããŸãã ãŸãã¯ãããšãã°ã次ã®ã³ãŒãã«åºããããŸããïŒ
* { transition: 2s all ease; }
äœããã®çç±ã§ã誰ããããŒãžäžã®ãã¹ãŠãã¢ãã¡ãŒã·ã§ã³åãããããªCSSã»ã¬ã¯ã¿ãŒãäœæããŸããã
ãã®èšäºã®ãã¬ãŒã ã¯ãŒã¯ã§ã¯ãããã«å¯ŸåŠããæ¹æ³ã«ã€ããŠã¯è©³ãã説æããŸãããååãšããŠãããã¯åžžã«å¯èœã§ãããšã¯éããŸããã詳现ã«ã€ããŠã¯ããã¡ããåç
§ããŠãã ããã
ãããããªãœãŒã¹ã䜿ãå¿
èŠãããããšã匷調ããããšæããŸãã éåžžãããã¯æ¬¡ã®ããã«çºçããŸãããŠãŒã¶ãŒã®èŠæ
ã¯ããªã³ã¯ãæ¥ç¶ãããç¶æ
ã§ãäœããæ©èœããŠããªããšãããµããŒããåããŸãã éããŠãAPIã§äœããå£ããŠããããã«èŠããŸãã CSSãJSãæ€èšãå§ããŸããããããã¯å¿
ããã䟿å©ã§ã¯ãããŸããã ãŸããå€éšã³ã³ããã¹ãã§å®è£
ãããŠããJSã©ã€ãã©ãªãŸãã¯APIãéçºããŠããå Žåãããã«æéãè²»ããå¿
èŠããããŸãã
補åãããããªã
åè¿°ã®ããã«ãAPIã¯è£œåã§ããã補åã®äœ¿ç𿹿³ã¯ããããŸããã - 2.0 , , .

, - 150*150 , . , 2.0 , . , 2.1 , .
â , , .

, , , . API.
ææš
API,
API. , , - , , , . , API.
. , , , â 5000*4000. , - , , .
, ,
, , . , , , .
âŠ
, API, API. , , , , API. , â , , .

, : , ( ). , , , . , , API , ,
.
, , -.
API Iframe , , . html Iframe, , Iframe , , , , , .
API, , , . API .
API â API.
â , , .

JSDoc. , , , , API .

, . , , API, « », « » - . , , .
, .

API: , . - , JSFiddle. , .
.

, , , - ( , ). , , , . , : «, , ». . ,
. , , , .
Call me maybe
,
API . , API. , API , API. , , , , , . ,
.

, - , , , - API, - . .
, , , . API , , , ,
, API.

.
« »,
. - . , - . .

, , , .

, , .
,
API , ,
«» . . .
<script src=" .../constructor/?um={id}&width=514&height=326 "></script>
, , API. , , API , , . , , . , , , .
,
. , , , . , 2.0 2.1 . - , , - .
, API, , - API. , , . , - â API.
ãŸãšã
:
, :
Frontend Conf , 28 29 , , , , :
- Chris Lilley (W3C). WebFonts in 2018: Everything Changes.
- (GP Solutions). Elm, ?
- (KeepSolid). , .
, â 4 5 Frontend Conf Moscow , . 3 , ++, .