ä½ã£ããã®
ã«ã¡ã©ã§æ®å½±ããé»è©±çªå·ç»åãèªèãã¦é»è©±ããããããã¹ããç¨Webã¢ããªã§ãã

ä½¿ãæ¹
ãã¡ã¤ã«é¸æãã¿ã³ãæ¼ãã¦é»è©±çªå·ã®æ°åãåã£ã¦ããåçãæå®ãã¾ãããã®ã¨ããåçãæ®ãããé¸ã¶ã¨ã«ã¡ã©ã§æ®å½±ããç»åãä¿åããã«ãã®ã¾ã¾ä½¿ããã¨ãã§ãã¾ãã
ã
ç»åã鏿ãããããã«ãµã¼ãã«éä¿¡ããæ°ç§ã§çµæãè¿ãã¾ããç»åã®ä¸ã«é»è©±çªå·ã¨è§£éã§ããæååãããã°ç»é¢ä¸ã«ãªã³ã¯ã¨ãã¦è¡¨ç¤ºããã¾ãããã¾ãã¾ãªãã©ã³ããææ¸ãæåãããã¨ããæãã«èªèãã¾ãã
ã
ãªã³ã¯ãã¿ããããã¨çºä¿¡ãã¤ã¢ãã°ãåºã¦é»è©±ãããããã¾ã*1ãã¾ãã¯ç¡æã試ãã»ããããã
ã
ã
ã
ç»é¢ä¸ã®å
±æãã¿ã³ãã¿ãããã¦ããã¼ã ç»é¢ã«è¿½å ãã§ã¢ã¤ã³ã³ãä½ã£ã¦ããã¨ãã¤ãã£ãã¢ããªã®ããã«ããèµ·åã§ãã¦ä¾¿å©ã
Â
ãã¨ãã°ããªãã®æ´æ¿¯æ©ãå¤ä¸ã«æ°´æ¼ãããã¨ãããããããµãã¼ãæ¥è
ã®é»è©±åä»ã¯10æ-17æãªã®ã ãããã§ããªãã¯ã¨ããããé£çµ¡å
ã®é»è©±çªå·ãã¡ã¢ä»£ããã«åçã«æ®ã£ã¦ããã
ç¿æ¥ãå¤åå
ã§ç©ºãæéã«æ¥è
ã¸é»è©±ãããããã¨ãã¦ãããªãã¯ã¯ãã¨å°ãããªãã¨é©ãã¹ããã¨ã«ãiPhoneã¯åçã©ã¤ãã©ãªãè¦ãªããé»è©±ãããããã¨ãã§ããªãã®ã ãæè¿ã®iPadã®ããã«2ç»é¢åå²ãããã¨ãã§ãããã©ããªãã¨ããããã¨é»è©±ã®ãã¼ãããã表示ããã¨åçãé ãã¦ãã¾ãããããåé«ããã¥ã¼ãã³ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ãã©ã¤ã³ãããããä¸çã®é¸æãã人çã«ç²ããããªãã¯å¤©ãä»°ããæãã¤ãéãåªè©ã®è¨èãå«ã³ç¶ãããã¨ã ããã
ã
ï¼ãï¼ãï¼
ã
åçã«æ®ã£ãé»è©±çªå·ã«ããããå ´é¢ã¯ããã¨ããããã«æãã¾ããä¸è¨ã®ãããªå¤§åå®¶é»ã®ãµãã¼ããèªè²©æ©ã§ååãåºã¦ããªããã©ãã«ãç§»åä¸ã«æ°ã«ãªãçæ¿åºåãè¦ãããã¨ãããã¬ãCMã®é»è©±çªå·ãªã©ãããããä½ãã®äºæ
ã§ãã®å ´ã§ã¯é»è©±ã§ãããã«ã¡ã©ã§ã¡ã¢ãã¦ããã¦å¾ã§é£çµ¡ãããããªç¶æ³ã§ããããã¦ãããã¯1åãããããã¶ããã使ããªããé»è©±å¸³ã«ç»é²ããã«ã¯ã¡ãã£ã¨èºèºãããããªçªå·ã§ãã
以åãå°ãæã¦ã¦ãã¤ãã¿ã¼ã§ä½ãè¯ãæ¹æ³ããªããåã£ã¦ã¿ã¾ããã
ãã®ã¨ãçµå浩ããããããã ããã¢ã¤ãã¢ã¯ãå
¬å¼ã¡ã¢ã¢ããªã«é»è©±çªå·ãæ¸ãã¨èªåã§ãªã³ã¯ã«ãªããã¨ãå©ç¨ãã¦ãã¡ã¢ã«è²¼ãä»ããåçãè¦ãªããçªå·ãã¿ã¤ããããã¨ãããã®ã§ããã
ãã®æ¹æ³ã§ããã°10æ¡ç¨åº¦ã®æ°åãçæè¨æ¶ããå¿
è¦ããªãã®ã§ããªã楽ã«ãªãã¾ããã¨ã¯ãããå
¨æ¡æã¡ç´ãã®ã¯ããå°ããªãã¨ããªããªããã®ãã
ã
ã
æè¿è©±é¡ã®Googleã¬ã³ãºã¯ãã«ã¡ã©æ åãåçããããã¹ããã¯ããããªãé«åº¦ãªå種æ
å ±ã®ç»åèªèãããããã§ããiPhoneã§ãGoogleãã©ãã¢ããªã®ä¸æ©è½ã¨ãã¦ä½¿ããã¿ããã§ãããã ããã®ããã«iOSæ¨æºã¨ã¯ç°ãªãåçã©ã¤ãã©ãªç®¡çã¢ããªãå
¥ããã®ãå¤§ä»°ãªæ°ããã¾ãã*2
ã
ã
ã¤ã¾ããã¼ãããã»ããã®ã¯é»è©±çªå·ã ãèªèããGoogleã¬ã³ãºã®åæ©è½çãªã®ã§ãããããªããã§ãé»è©±çªå·å°ç¨Googleã¬ã³ãºãã©ãï¼æãããããªã®ã§ä»®ç§°ï¼ããç¥ãã¦ãé»è©±ã¬ã³ãºï¼ä»®ï¼ããä½ãã¾ããã
ã
ã
ã
使ã£ãæè¡
Reactã¯ãã¾ããªãã¨ãããåå¼·ä¸ãªã®ã§ã¨ãããã使ã£ã¦ã¿ãæããæ©è½ã追å ãããã³ã«è¤éã«ãªã£ã¦ããã¢ããªããDOMã£ã½ãåä½ã§ã³ã³ãã¼ãã³ãåãããã¨ã§èãããã¨ãã·ã³ãã«ã«ä¿ã¤ãã¨ãã§ããã®ã¯æ
£ããã¨å¿«é©ã§ãããæ
£ããã¾ã§ã«3å¹´ãããã¾ãããã
Cloud Vision APIã¯ãGoogleã®æ©æ¢°å¦ç¿æè¡ã§ç»åã«ä½ãåã£ã¦ããããèªèãã¦ããããã¡ããã¡ããããAPIãä»åã®ã¢ããªã¯Cloud Vision APIã«ã¬ã¯ãã¤ããã ãã®200è¡ãããã®ã·ã³ãã«ãªããã°ã©ã ã§ãã
APIã«éãå¦çã¯ãã®è¾ºã®è¨äºãåèã«ã³ãããã¼ãã®äººçã ãããã³ããã
Â
let body = {
requests: [
{image: {content: base64string}, features: [{type: 'TEXT_DETECTION'}]}
]
};
let xhr = new XMLHttpRequest();
const url = 'https://vision.googleapis.com/v1/images:annotate?key='+key;
xhr.open('POST', url, true);
xhr.setRequestHeader('Content-Type', 'application/json');
const p = new Promise((resolve, reject) => {
xhr.onreadystatechange = () => {
if (xhr.readyState !== XMLHttpRequest.DONE) return;
if (xhr.status >= 400)
return reject({message: `Failed with ${xhr.status}:${xhr.statusText}`});
resolve(JSON.parse(xhr.responseText));
};
})
xhr.send(JSON.stringify(body));
ã
èªèçµæã¯JSONã§è¿ã£ã¦ãã¾ããæççãªè¨èã®åã端ãå¤ãã®ã§ãããããæå³ã®ããåèªãè¦ã¤ãåºãã®ãè
ã®è¦ãã©ããã§ããããã§ã¯ãæåã«æ£è¦è¡¨ç¾ã使ã£ã¦ãæ°åããã¤ãã³ãã«ãã³ãã¹ãã¼ã¹ã並ãã§ãããé»è©±çªå·ã£ã½ãæååã¨å¤æãã¦æ½åºãã¦ãæ¬¡ã«æ½åºããæååããããã«æ°åã ãæãåºãã¦10ã11æ¡ãªãé»è©±çªå·ã¨æçµå¤æãã¦ãã¾ãã
const arr_annotations = json.responses[0].textAnnotations;
const tel_numbers = [];
arr_annotations.forEach((item) => {
if (item.description.length >= 10) {
const str = item.description;
const match_str = str.match(/[\d\-() ]+/g);
if (match_str !== null) {
match_str.forEach((item) => {
const num = item.replace(/[-() ]/g, '');
if ((num.length >= 10) && (num.length <= 11)) {
tel_numbers.push({str:item, num:num});
}
});
}
}
});
ã
æ°åã®é ã«âtel:"ã¨ããæååããã£ã¤ãã¦ãªã³ã¯ã«ããã¨é»è©±ãããããªã³ã¯ã«ãªãã¾ãã
const hash = {};
tel_numbers.forEach(item => {
if (!hash[item.num]) {
hash[item.num] = true;
const parent = document.querySelector('#resultarea');
const li = document.createElement('li');
const a = document.createElement('a');
a.innerText = item.str;
a.href = 'tel:' + item.num;
li.appendChild(a);
parent.appendChild(li);
}
});
ããã¾ãã
ã Â
é»è©±ã¬ã³ãºãGithub
ã
ã¯ã½ã¢ã㪠Advent Calendar 2018
ã
ã
ã
ã