Google I/O 2021 ã§ã® WebGL ãå©ç¨ãããããæ©è½ã®ãã¼ã¿çãªãªã¼ã¹ã®çºè¡¨ã«åã、Google Maps Platform ãã¼ã ã¯、2012 å¹´ããã® Google Cloud ãã¼ããã¼ã§ãã Ubilabs ã¨ååãã¦、3D ã¬ã³ããªã³ã°ãå°å³ã«å°å
¥ããã¨å®ç¾ã§ãããã¨ããããããã¼ã«ç´¹ä»ããããã®ãã¢ãä½æãã¾ãã。æåã®ãã¢「Google Maps Platform WebGL-powered Maps Features(Google Maps Platform WebGL ãå©ç¨ãããããæ©è½)」ã¯、å WebGL æ©è½ã¨ããããå¹æçã«ä½¿ç¨ããæ¹æ³ããããããã¼åãã«è©³ããç´¹ä»ãã¦ãã¾ã。
|
ãããããã¼åãã®ãã¢ã§ã¯、WebGL ãå©ç¨ãããããæ©è½ã®æ´»ç¨æ¹æ³ã Google Maps Platform ãããããã¼ã«ç´¹ä»ãã¦ãã¾ã。 |
2 çªç®ã®ãã¢「Travel with Next Generation Maps(次ä¸ä»£ããããæ´»ç¨ããæ
è¡)」ã§ã¯、æ¶ç©ºã®æ
è¡ã¢ããªãä¾ã«ãã¦、Google Maps Platform ã®æ°ãã 3D æ©è½ã§ãããã³ã° ã¨ã¯ã¹ããªã¨ã³ã¹ãã©ã®ããã«å¤å®¹ããããå
¨ä½åã¨ãã¦è¦ããã¨ãã§ãã¾ã。
|
Ubilabs ã¨éçºããæ
è¡ãã¢ã§ã¯、WebGL ãå©ç¨ãããããã³ã° ã¨ã¯ã¹ããªã¨ã³ã¹ã®å¹æããã¸ãã¹ ã¦ã¼ã¶ã¼ã«ç´¹ä»ãã¾ãã。
|
WebGL ãå©ç¨ããæ°ãããããæ©è½ã®ç´¹ä»
ãã®ããã¸ã§ã¯ãã«æºãã£ã Ubilabs ã®ã½ããã¦ã§ã¢ ã¨ã³ã¸ãã¢ã§ãã Martin Schuhfuss æ°ã¯、2019 å¹´ã® Google I/O 㧠Google Maps Platform ã¨ã³ã¸ãã¢ãªã³ã° ãªã¼ãã® Travis McPhail ã¨è©±ãããã¨ãè¦ãã¦ãã¾ã。ãã®å
容ã¯、Google Maps Platform ãã¼ã ãä¸é¨ã® API ã§æ¤è¨ãã¦ããå¤æ´ã¨、ãã¯ãã«å°å³ã 3D ã³ã³ãã³ãããµãã¼ãããããã®åãçµã¿ã«ã¤ãã¦ã§ãã。ãã㦠2021 å¹´。Schuhfuss æ°ã¯ Google I/O 2021 åãã« Google Maps Platform ã®æ°ãã WebGL æ©è½ãç´¹ä»ãããã¢ã®ä½æã«åãã¦、Google Maps Platform ãã¼ã ã¨ã®æã¡åããã«åå ãããã¨ã«ãªãã¾ãã。ä¿¡é ¼ã§ãã Google Cloud ãã¼ããã¼ã¨ãã¦、Ubilabs ã¯ãããæ©è½ã®åæã¦ã¼ã¶ã¼ã«ä»»å½ããã¦ãã¾ãã。åæ段éã«ããæ©è½ã®å¸¸ã¨ãã¦、éçºããã»ã¹ãé²è¡ããä¸、ãããã°ãåæããã¥ã¡ã³ãã®ä½æãå¿
è¦ã«ãªãå¯è½æ§ãããã¾ãã。
Ubilabs ã®å
±ååµæ¥è
ãã¤éçºè²¬ä»»è
ã§ãã、Google Maps Platform ã® Google Developer Expert ã§ãã Martin Kleppe æ°ã、ããã¸ã§ã¯ã ããã¼ã¸ã£ã¼ããã¶ã¤ãã¼、ãã®ä» 3 åã®ãããããã¼ã¨ã¨ãã«ããã¸ã§ã¯ãã«åãçµã¿ã¾ãã。
Schuhfuss æ°ã¯æ¬¡ã®ããã«èªã£ã¦ãã¾ã。「ç§ãã¡ã¯ã¤ã³ã¿ã¼ãããã§ã®å°å³ã®ã¦ã¼ã¹ã±ã¼ã¹、ç¹ã« 3D ã®ã·ã¼ã³ã§èå³æ·±ããã®ãæ¢ãã¾ãã。å°è¦æ¨¡ãªãã¹ãçãä½æã、èªåãã¡ã«ä½ãã§ãããã試ãã¦ãã¾ãã。ããã、å½æã¯ããã¥ã¡ã³ãããåå¨ãã¾ããã§ãã。」
Ubilabs ã¯ãã¢ã®ãã¡ 1 ã¤ããããããã¼åãã¨ã、æ°ããæ©è½ã«ã¤ãã¦é ã追ã£ã¦èª¬æããã¨ã¨ãã«、ã³ã¼ããµã³ãã«ãçãè¾¼ãã§ä½¿ç¨æ¹æ³ãç´¹ä»ãããã¨ã«ãã¾ãã。2 çªç®ã®ãã¢ã§ããæ
è¡ã¢ããªã¯、èªç©ºä¾¿ã§ã®ç§»å、ã¿ã¯ã·ã¼ä¹è»、ããã«ã®æ¤ç´¢、æ
å
ã§ã®é£äºã¨ããå ´é¢ã«å½ã¦ã¯ãã¦æ°ããæ©è½ãç´¹ä»ãã¦ãã¾ã。Schuhfuss æ°ã¯、WebGL ãã¼ã¿çæ©è½ã®åæã¦ã¼ã¶ã¼ã¨ãã¦å¦ãã ãã¹ã¦ãå¹æçã«è¦ç´ãã、ã¦ã¼ã¶ã¼åãã®ãã¢æ¡å
æãä½æãã¾ãã。ãã®ããã¹ãã®å¤§åã¯、æ©è½ãåãã¦è©¦ãä»ã®ã¦ã¼ã¶ã¼åãã«ããã¥ã¡ã³ãã«ã¾ã¨ãããã¾ãã。
Schuhfuss æ°ã¯æ¬¡ã®ããã«èªã£ã¦ãã¾ã。「åæ©è½ã«ã¤ãã¦、ã§ããããã«ãªã£ããã¨、ããã¦ãããã©ã®ããã«è¡¨ç¤ºãããã®ãã示ãã®ã«æé©ãª Google Maps Platform ã®ä½¿ãæ¹ã¯ä½ã。ãã¼ã å
ã§èªåãç¹°ãè¿ãã¾ãã。ããã¦、ããé½å¸ã訪ããæ
ã®éç¨ã、åãããçµããã¾ã§è¡¨ç¾ããæ
è¡ãã¢ãä½æãããã¨ã«ãã¾ãã。」
ãããããã¼ã¯çä¸ããè¦ä¸ããã、åãä¸ã«ãªã£ã 2D ã®å°å³è¡¨ç¤ºã«æ
£ãã¦ãã¾ã。ãã®ãã、Schuhfuss æ°ã¯、ã©ããªå ´é¢ã§ã 3 次å
æ©è½ãå©ç¨ãã¦ã«ã¡ã©ãåãã、å°å³ã«æ
å ±ã追å ã§ããä»çµã¿ã®ç´¹ä»ã«åãå
¥ãã¾ãã。ãã¨ãã°、以ä¸ã®ã¹ã¯ãªã¼ã³ã·ã§ããã§ã¯、å°å³ã«ã·ã³ãã«ãªå¾æã¨å転ã追å ããã ãã§、ã¨ã¯ã¹ããªã¨ã³ã¹å
¨ä½ãããã«å¤åãããããããã¾ã。
|
ãã®ä¾ã§ã¯、ãããããã¼ã«æ°ããå¾æã¨å転ã®æ©è½ã示ããã¦ãã¾ã。 |
Kleppe æ°ã¯æ¬¡ã®ããã«èª¬æãã¾ã。「WebGL æ©è½ã®åºç¤ããªããã¯ããã¸ã¼ã¯、GPU ã«ããé«éã¬ã³ããªã³ã° ãµã¼ãã¹ã使ç¨ãã¾ã。ã¦ã¼ã¶ã¼ã¯ãã·ã³ã®ã°ã©ãã£ã㯠ã«ã¼ãã使ã£ã¦å»ºç©ã 3D ã¬ã³ããªã³ã°ã、3D ãªãã¸ã§ã¯ãã空éã«é
ç½®ã§ãã¾ã。以åã¯è¿½å ã®ã¬ã¤ã¤ã¨ãã¦å°å³ä¸ã«ãã¼ã¿ã表示ã§ããã ãã§ããã、ç¾å¨ã§ã¯æ°ããªã¬ãã«ã®å¶å¾¡ãå¯è½ã«ãªãã¾ãã。ããã«ãã、è¡ã®æ¯è²ãè¦ããããªæ²¡å
¥åã¨ã¯ã¹ããªã¨ã³ã¹ãå®ç¾ã§ãã¾ã。」
ã¾ã、ãã¼ã ã¯å°è¦æ¨¡ãªãã¢ãä½æã、次ã«ããããã¯ãªãã¯ãã¦è©³ç´°ãè¦ããã大è¦æ¨¡ãªãã¢ã«çµã¿è¾¼ã¿ã¾ãã。æå³ããã¨ããã«æ©è½ããªããã®ãããã¨、Ubilabs ã¯ãã©ãã«ã·ã¥ã¼ãã£ã³ã°ã試ã¿、Google Maps Platform ã¨ã³ã¸ã㢠ãã¼ã ã¨ååãã¦åé¡ãä¿®æ£ãã¾ãã。ããã±ã¼ã¹ã§ã¯、Schuhfuss æ°ã 3 ã¤ã®ç°ãªããªãã¸ã§ã¯ããããã·ã¼ã³ã«è¿½å ããã¨、3 çªç®ã®ãªãã¸ã§ã¯ãã¯å¸¸ã«æ°ç§å¾ã«æ¶ã、2 çªç®ã®ãªãã¸ã§ã¯ãã¯ããã«æ°ç§å¾ã«æ¶ãã¾ãã。Ubilabs ã¯、ãã®åé¡ã«é¢ãããã£ã¼ãããã¯ã Google Maps Platform ã¨ã³ã¸ã㢠ãã¼ã ã¨å
±æãã¾ãã。åãã¼ã ã¯æ¬¡ã®ãªãªã¼ã¹ã§åé¡ã解決ã、ãã®ãµã¼ãã¹ãã¦ã¼ã¶ã¼åãã«æ¹åã§ãã¾ãã。
Schuhfuss æ°ã¯æ¬¡ã®ããã«è¿°ã¹ã¦ãã¾ã。「ç§ã¯ãããã°ã«æéããã、èµ·ãã¦ããç¾è±¡ãææ¡ãããã¨ãã¾ãã。建ç©ã®èå¾ã«é ããããã«ã¬ã³ããªã³ã°ãããã®ããªã¯ã«ã¼ã¸ã§ã³(æåã«ããç©ä½ãèå¾ã«ããç©ä½ãé ãç¶æ
)ã§ããããã«ããã«ã¯、WebGL ã³ã³ããã¹ããå
±æããå¿
è¦ãããã¾ã。WebGL ã¯ã°ã©ãã£ã㯠ã«ã¼ãã¨éä¿¡ã§ã、å°ããªç¶æ
ã®å¤åã®å½±é¿ãåããããã¤ã³ã¿ã¼ãã§ã¼ã¹ã§ã。」
Schuhfuss æ°ã¯、緯度ã¨çµåº¦ã«ãã座æ¨ã®ææ¡ã¨ç®åºã¨ã¯å¥ã«、ããªãã·ã³ãã«ãª Three.js æ©è½ãæ®ãã®éçºã«å¿
è¦ã§ãããã¨ããããã¾ãã。åãã¼ã 㯠Google Maps Platform ãã¼ã ã¨å®æçã«é£çµ¡ãåã、é²æç¶æ³ã確èªãåãã、æè¡çãªåé¡ãæ´æ°ã«å¯¾å¦ãã¾ãã。
Google I/O ã®ã¤ã³ã¿ã©ã¯ãã£ããªãã¢
Ubilabs ã¯åãã¢ã®ç· ããããã«、ãããããã¼ã WebGL æ©è½ã§ä½æã§ãããã®ã¨ãã¦、ç®ãå¼ãæ©è½ãç´¹ä»ãã¾ãã。
「æ
è¡ãã¢ã®æå¾ã®ãã¼ã¸ã¯ä¸çªã®ãæ°ã«å
¥ãã§ã」㨠Schuhfuss æ°ã¯è¨ãã¾ã。æ°ã¯ Google I/O ã®æ°æ¥åã«ãã®ãã¼ã¸ãå®å
¨ã«åæ§ç¯ãã¾ãã。「ç§ãæ°ã«å
¥ã£ã¦ããã®ã¯、ã«ã¡ã©ãå転ãããã¨ãã®ããã¹ãã©ãã«ã®åä½ã¨、建ç©ãé ããã¨ããã¹ãã®ä¸ã«å°ããªã¹ãã ã表示ããããã¨ã§ã。」
|
ãã³ãã³ã®è¦³å
ã¹ãããã®ããã¹ãã©ãã«ãåå ´æã®ä¸ã«è¡¨ç¤ºãã、å°å³ãå転ãããã¨、å°ããªã¹ãã ãå建ç©ãã¯ã£ããã¨æã示ãããã«è¡¨ç¤ºããã¾ã。 |
ãããããã¼åãã®ãã¢ã®æå¾ã®ãã¼ã¸ã§ã¯、ã¦ã¼ã¶ã¼ã«「å°å³ãåå®ç¾©ãã」ãã¨ãæ¨å¥¨ãã¦ãã、åãè¾¼ã¿ã®åç»ãè±ç«ã表示ããã¾ã。
Schuhfuss æ°ã¯æ¬¡ã®ããã«èªãã¾ã。「次ã«æ°ã«å
¥ã£ã¦ããã®ã¯è±ç«ã§ã。åç»ãåãè¾¼ããã¨ãã§ã、ã©ããã«è¡¨ç¤ºãããã¦æ¸¯ã«ãããªã¦ã©ã¼ã«ãæ§ç¯ãã¾ãã。éçºã®éä¸ã§ã¯、ãªãã¯・ã¢ã¹ããªã¼ã®æ²ãåçããã¦ããããã§ã。」
|
WebGL æ©è½ã使ç¨ããã¨、åç»ãå°å³ã«åãè¾¼ãã ã、è±ç«ãªã©ã®æ©è½ãå°å³ã«è¿½å ãããã§ãã¾ã。 |
「éãã表示ãããåºæ¬å°å³ã¨、ãã¸ãã¹æ
å ±ãæç»ããã¬ã¤ã¤、ã«ã¼ããè¨ç®ããããã®è¿½å API ãªã©、ãã¾ãã¾ãªãã¼ã¿ã½ã¼ã¹ãçµã¿åããããã¨ãã§ãã¾ã。ããã«、ãã®ä¸ã«ç¬èªã®æ
å ±ãé
ç½®ã§ãã¾ã。API ã®ãã¼ã¿ã»ããã ãã§ã¯ããã¾ãã。èªåã®ãã¼ã¿ãä¸çã®æ½è±¡çãªãã¥ã¼ã«ãã¤ã§ãèªç±ã«çµ±åã§ãã¾ã。」
ããã«、Schuhfuss æ°ã¯、slack ã¯ã¼ã¯ã¹ãã¼ã¹ã® Three.js ã³ãã¥ããã£ãéå¶ãã¦ãã、ãªã³ã©ã¤ã³ã§é©ãã®å£°ãå¤æ°å¯ãããããã¨ã«å ãã¦、「ã¦ã¼ã¶ã¼ã«ããããããæ©è½ã®ã¦ã¼ã¹ã±ã¼ã¹ãè¦ãã®ãæ¬å½ã«æ¥½ãã¿ã«ãã¦ãã¾ã。」ã¨ãè¿°ã¹ã¦ãã¾ã。
Google Maps Platform ã«é¢ãã詳ããæ
å ±ã¯ãã¡ããã覧ãã ãã。ã質åããæè¦ã¯ãã¼ã¸å³ä¸ã®「ãåãåãã」ããæ¿ã£ã¦ããã¾ã。
Posted by
丸山 æºåº· (Tomoyasu Maruyama) - Developer Relations Engineer