Geolocation APIãæ¢æ±ãããã±ãŒã·ã§ã³ã¢ãŠã§ã¢Webã¢ããªã±ãŒã·ã§ã³ã®äœææ¹æ³ãåŠã³ãŸãããã®æ©èœããã©ã€ãã·ãŒã«é¢ããèæ ®äºé ãã°ããŒãã«ã³ã³ããã¹ãã§ã®å®è·µçãªå¿çšãçè§£ããŸãã
Geolocation API: ã°ããŒãã«ãªãŒãã£ãšã³ã¹åãã®ãã±ãŒã·ã§ã³ã¢ãŠã§ã¢Webã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯
Geolocation APIã¯ãWebã¢ããªã±ãŒã·ã§ã³ããŠãŒã¶ãŒã®å°ççãªäœçœ®æ å ±ã«ã¢ã¯ã»ã¹ã§ããããã«ãã匷åãªããŒã«ã§ããããã«ããããã€ãããã¯ã§ããŒãœãã©ã€ãºãããWebãšã¯ã¹ããªãšã³ã¹ãäœæããããã®å¹ åºãå¯èœæ§ãéãããŸãããããã³ã°ã¢ããªã±ãŒã·ã§ã³ãããã±ãŒã·ã§ã³ããŒã¹ã®ãµãŒãã¹ãŸã§ãGeolocation APIã¯ãŠãŒã¶ãŒãšã³ã²ãŒãžã¡ã³ããå€§å¹ ã«åäžããã貎éãªæ©èœãæäŸã§ããŸãããã®ã¬ã€ãã§ã¯ãGeolocation APIã®å æ¬çãªæŠèŠããã®äœ¿çšæ³ããã©ã€ãã·ãŒã«é¢ããèæ ®äºé ãããã³ã°ããŒãã«ã³ã³ããã¹ãã§ã®å®è£ ã«é¢ãããã¹ããã©ã¯ãã£ã¹ãæäŸããŸãã
Geolocation APIãšã¯ïŒ
Geolocation APIã¯ãWebã¢ããªã±ãŒã·ã§ã³ããŠãŒã¶ãŒã®ããã€ã¹ã®å°ççãªäœçœ®æ å ±ãèŠæ±ããã³ååŸã§ããããã«ããJavaScriptã€ã³ã¿ãŒãã§ãŒã¹ã§ãããã®æ å ±ã¯éåžžãGPSãWi-Fiãã»ã«ã©ãŒãããã¯ãŒã¯ãIPã¢ãã¬ã¹ã«ãã¯ã¢ãããªã©ã®ãœãŒã¹ããæäŸãããŸãããã®APIã¯HTML5仿§ã®äžéšã§ãããã»ãšãã©ã®ææ°Webãã©ãŠã¶ã§ãµããŒããããŠããŸãã
ã³ã¢æ©èœã¯ãnavigator.geolocation
ãªããžã§ã¯ããäžå¿ã«å±éãããŸãããã®ãªããžã§ã¯ãã¯ãçŸåšäœçœ®ãååŸããããã€ã¹ã®äœçœ®ã®å€åãç£èŠããããã®ã¡ãœãããæäŸããŸãã
ã©ã®ããã«æ©èœãããïŒ
Geolocation APIã¯ãåçŽãªãªã¯ãšã¹ã-ã¬ã¹ãã³ã¹ã¢ãã«ã§åäœããŸãã
- ãªã¯ãšã¹ãïŒWebã¢ããªã±ãŒã·ã§ã³ã¯ã
navigator.geolocation.getCurrentPosition()
ãŸãã¯navigator.geolocation.watchPosition()
ã¡ãœããã䜿çšããŠããŠãŒã¶ãŒã®äœçœ®æ å ±ãèŠæ±ããŸãã - èš±å¯ïŒãã©ãŠã¶ã¯ãã¢ããªã±ãŒã·ã§ã³ãšäœçœ®æ å ±ãå ±æããèš±å¯ããŠãŒã¶ãŒã«æ±ããŸããããã¯éèŠãªãã©ã€ãã·ãŒã«é¢ããèæ ®äºé ã§ããããŠãŒã¶ãŒã«ã¯ãªã¯ãšã¹ããæåŠããæš©å©ããããŸãã
- ã¬ã¹ãã³ã¹ïŒãŠãŒã¶ãŒãèš±å¯ãäžãããšããã©ãŠã¶ã¯äœçœ®ããŒã¿ïŒç·¯åºŠãçµåºŠãé«åºŠã粟床ãªã©ïŒãååŸããã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠæäŸãããã³ãŒã«ããã¯é¢æ°ã«æž¡ããŸãã
- ãšã©ãŒåŠçïŒãŠãŒã¶ãŒãèš±å¯ãæåŠããå ŽåããŸãã¯äœçœ®æ å ±ã®ååŸäžã«ãšã©ãŒãçºçããå Žåããšã©ãŒã³ãŒã«ããã¯é¢æ°ãåŒã³åºããããšã©ãŒã«é¢ãã詳现ãæäŸãããŸãã
åºæ¬çãªäœ¿çšæ³ïŒçŸåšäœçœ®ã®ååŸ
æãåºæ¬çãªãŠãŒã¹ã±ãŒã¹ã¯ããŠãŒã¶ãŒã®çŸåšäœçœ®ãååŸããããšã§ããã³ãŒãäŸã次ã«ç€ºããŸãã
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(successCallback, errorCallback, options);
} else {
alert("Geolocation is not supported by this browser.");
}
function successCallback(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
console.log("Latitude: " + latitude + ", Longitude: " + longitude);
// Use the latitude and longitude to display a map, find nearby businesses, etc.
}
function errorCallback(error) {
switch(error.code) {
case error.PERMISSION_DENIED:
alert("User denied the request for Geolocation.");
break;
case error.POSITION_UNAVAILABLE:
alert("Location information is unavailable.");
break;
case error.TIMEOUT:
alert("The request to get user location timed out.");
break;
case error.UNKNOWN_ERROR:
alert("An unknown error occurred.");
break;
}
}
var options = {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
};
説æïŒ
navigator.geolocation
ïŒGeolocation APIããã©ãŠã¶ã§ãµããŒããããŠãããã©ããã確èªããŸããgetCurrentPosition()
ïŒãŠãŒã¶ãŒã®çŸåšäœçœ®ããªã¯ãšã¹ãããŸããããã«ã¯3ã€ã®åŒæ°ããããŸããsuccessCallback
ïŒäœçœ®æ å ±ãæ£åžžã«ååŸããããšãã«å®è¡ããã颿°ãPosition
ãªããžã§ã¯ããåŒæ°ãšããŠåãåããŸããerrorCallback
ïŒãšã©ãŒãçºçããå Žåã«å®è¡ããã颿°ãPositionError
ãªããžã§ã¯ããåŒæ°ãšããŠåãåããŸããoptions
ïŒãªã¯ãšã¹ãã®ãªãã·ã§ã³ãæå®ãããªãã·ã§ã³ã®ãªããžã§ã¯ãïŒä»¥äžã§èª¬æïŒã
successCallback(position)
ïŒposition.coords
ãªããžã§ã¯ããã緯床ãšçµåºŠãæœåºããŸããposition
ãªããžã§ã¯ãã«ã¯ãaltitude
ãaccuracy
ãaltitudeAccuracy
ãheading
ãspeed
ãªã©ã®ä»ã®ããããã£ãå«ãŸããŠããŸãïŒå©çšå¯èœãªå ŽåïŒãerrorCallback(error)
ïŒçºçããå¯èœæ§ã®ããããŸããŸãªã¿ã€ãã®ãšã©ãŒãåŠçããŸããerror.code
ããããã£ã¯ããšã©ãŒã®ã¿ã€ãã瀺ããŸããoptions
ïŒäœçœ®æ å ±ã®ååŸæ¹æ³ãæ§æã§ãããªããžã§ã¯ããenableHighAccuracy
ïŒtrue
ã®å ŽåãAPIã¯å©çšå¯èœãªæãæ£ç¢ºãªæ¹æ³ïŒGPSãªã©ïŒã䜿çšããããšããŸããæéãããã£ãããããããªãŒé»åãããå€ãæ¶è²»ãããããå Žåã§ããããã©ã«ãã¯false
ã§ããtimeout
ïŒAPIãäœçœ®æ å ±ã®ååŸãåŸ æ©ããæå€§æéïŒããªç§åäœïŒããã®æéå ã«äœçœ®æ å ±ãååŸãããªãå ŽåãerrorCallback
ãTIMEOUT
ãšã©ãŒã§åŒã³åºãããŸããmaximumAge
ïŒèš±å®¹ããããã£ãã·ã¥ãããäœçœ®æ å ±ã®æå€§çµéæéïŒããªç§åäœïŒããã£ãã·ã¥ãããäœçœ®æ å ±ããã®å€ãããå€ãå ŽåãAPIã¯æ°ããäœçœ®æ å ±ã®ååŸã詊ã¿ãŸãã0
ã«èšå®ãããšãAPIã¯åžžã«æ°ããäœçœ®æ å ±ã®ååŸã詊ã¿ãŸããInfinity
ã«èšå®ãããšãAPIã¯åžžã«ãã£ãã·ã¥ãããäœçœ®æ å ±ãããã«è¿ããŸãã
äœçœ®æ
å ±ã®å€æŽã®è¿œè·¡ïŒwatchPosition()
watchPosition()
ã¡ãœããã䜿çšãããšããŠãŒã¶ãŒã®äœçœ®ãç¶ç¶çã«ç£èŠãã倿Žãçºçãããšãã«æŽæ°ãåä¿¡ã§ããŸããããã¯ãããã²ãŒã·ã§ã³ã¢ããªããã£ãããã¹ãã©ãã«ãŒãªã©ããŠãŒã¶ãŒã®åãã远跡ããå¿
èŠãããã¢ããªã±ãŒã·ã§ã³ã«åœ¹ç«ã¡ãŸãã
var watchID = navigator.geolocation.watchPosition(successCallback, errorCallback, options);
function successCallback(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
console.log("Latitude: " + latitude + ", Longitude: " + longitude);
// Update the map or perform other actions based on the new location.
}
function errorCallback(error) {
// Handle errors as described above
}
var options = {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
};
// To stop watching the location:
navigator.geolocation.clearWatch(watchID);
getCurrentPosition()
ãšã®äž»ãªéãïŒ
- ç¶ç¶çãªæŽæ°ïŒ
watchPosition()
ã¯ããŠãŒã¶ãŒã®äœçœ®ã倿Žããããã³ã«ãsuccessCallback
ãç¹°ãè¿ãåŒã³åºããŸãã watchID
ïŒãã®ã¡ãœããã¯watchID
ãè¿ããŸããããã¯ãnavigator.geolocation.clearWatch(watchID)
ã䜿çšããŠäœçœ®æ å ±ã®ç£èŠã忢ããããã«äœ¿çšã§ããŸããããããªãŒé»åãšãªãœãŒã¹ãç¯çŽããããã«ãäžèŠã«ãªã£ããäœçœ®æ å ±ã®ç£èŠã忢ããããšãäžå¯æ¬ ã§ãã
Geolocation APIã®å®çšçãªå¿çš
Geolocation APIã¯ãããŸããŸãªæ¥çã®å¹ åºãã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšã§ããŸããããã€ãã®äŸã次ã«ç€ºããŸãã
- ãããã³ã°ãšããã²ãŒã·ã§ã³ïŒå°å³äžã«ãŠãŒã¶ãŒã®äœçœ®ã衚瀺ããããã¿ãŒã³ãã€ã¿ãŒã³ã®æç€ºãæäŸããããè¿ãã®é¢å¿ã®ããå ŽæãèŠã€ãããããŸããããšãã°ããŠãŒã¶ãŒã®çŸåšå°ã«åºã¥ããŠé¢å¿ã®ããå Žæã衚瀺ããçŸå°èªã§æ å ±ãæäŸããã°ããŒãã«æ è¡ã¢ããªãæ€èšããŠãã ããã
- ãã±ãŒã·ã§ã³ããŒã¹ã®ããŒã±ãã£ã³ã°ïŒãŠãŒã¶ãŒã®å Žæã«åºã¥ããŠãã¿ãŒã²ãããçµã£ãåºåãããã¢ãŒã·ã§ã³ãé ä¿¡ããŸãããšãŒãããå šåã«åºèãæã€å°å£²ãã§ãŒã³ã¯ãGeolocationã䜿çšããŠãããŸããŸãªåœã®é¡§å®¢ã«ããŒã«ã©ã€ãºãããååŒãããã¢ãŒã·ã§ã³ãæäŸã§ããŸãã
- ãœãŒã·ã£ã«ãããã¯ãŒãã³ã°ïŒãŠãŒã¶ãŒãèªåã®å Žæãå人ãå®¶æãšå ±æããããåæ§ã®é¢å¿ãæã€è¿ãã®ãŠãŒã¶ãŒãèŠã€ãããã§ããããã«ããŸããäŸãšããŠã¯ããŠãŒã¶ãŒãã€ãã³ããèŠã€ããããè¿ãã®ä»ã®åå è ãšã€ãªãã£ããããã®ã«åœ¹ç«ã€ã°ããŒãã«ã€ãã³ãã¢ããªããããŸãã
- ç·æ¥ãµãŒãã¹ïŒç·æ¥å¯Ÿå¿è ãå°ã£ãŠããå人ãèŠã€ããã®ãæ¯æŽããŸããããã¯ãé éå°ãèªç¶çœå®³æã«ç¹ã«åœ¹ç«ã¡ãŸãã
- è³ç£è¿œè·¡ïŒè»äž¡ãæ©åšããŸãã¯äººå¡ã®å Žæã远跡ããŸããäžçäžã§äºæ¥ãå±éããããžã¹ãã£ã¯ã¹äŒç€Ÿã¯ãGeolocationã䜿çšããŠããã©ãã¯ã®ããªãŒãããªã¢ã«ã¿ã€ã ã§è¿œè·¡ã§ããŸãã
- ã²ãŒã ïŒä»®æ³äžçãšçŸå®äžçãèåããããã±ãŒã·ã§ã³ããŒã¹ã®ã²ãŒã ãäœæããŸããPokémon Goã¯ãã²ãŒã ãã¬ã€ã«ãã±ãŒã·ã§ã³ã䜿çšãã代衚çãªäŸã§ãã
- 倩æ°ã¢ããªã±ãŒã·ã§ã³ïŒãŠãŒã¶ãŒã®çŸåšå°ã®å€©æ°äºå ±ã衚瀺ããŸããå€ãã®ã°ããŒãã«å€©æ°ã¢ããªã¯ããã®ç®çã®ããã«GeolocationãæŽ»çšããŠããŸãã
- é éãµãŒãã¹ïŒé éãã©ã€ããŒã®å Žæã远跡ãããªã¢ã«ã¿ã€ã ã®æŽæ°ãé¡§å®¢ã«æäŸããŸãã
- ãã£ãããã¹ãã©ãã«ãŒïŒã¯ãŒã¯ã¢ãŠãäžã«ãŠãŒã¶ãŒã®ã«ãŒããšç§»åè·é¢ãèšé²ããŸãã
ãã©ã€ãã·ãŒã«é¢ããèæ ®äºé
ãã©ã€ãã·ãŒã¯ãäœçœ®æ å ±ãæ±ãéã«æãéèŠãªæžå¿µäºé ã§ãããŠãŒã¶ãŒã®äœçœ®æ å ±ã責任ãæã£ãŠå«ççã«åŠçããããšãéèŠã§ããããã€ãã®éèŠãªãã©ã€ãã·ãŒã«é¢ããèæ ®äºé ãæ¬¡ã«ç€ºããŸãã
- éææ§ïŒåžžã«ããŠãŒã¶ãŒã«äœçœ®æ å ±ãå¿ èŠãªçç±ãšãã®äœ¿ç𿹿³ãéç¥ããŸããæç¢ºã§ç°¡æœãªãã©ã€ãã·ãŒããªã·ãŒãæäŸããŸãã
- ãŠãŒã¶ãŒã®åæïŒäœçœ®æ å ±ã«ã¢ã¯ã»ã¹ããåã«ããŠãŒã¶ãŒããæç€ºçãªåæãåŸãŸããåæãåæãšããªãã§ãã ããããã©ãŠã¶ã®èš±å¯ããã³ããã¯ããã®ããã»ã¹ã®éèŠãªéšåã§ãã
- ããŒã¿æå°åïŒã¢ããªã±ãŒã·ã§ã³ã®æ©èœã«çµ¶å¯Ÿã«å¿ èŠæå°éã®äœçœ®ããŒã¿ã®ã¿ãåéããŸããäžèŠãªæ å ±ã®åéãšä¿åã¯é¿ããŠãã ããã
- ããŒã¿ã»ãã¥ãªãã£ïŒäœçœ®æ å ±ãäžæ£ã¢ã¯ã»ã¹ã䜿çšããŸãã¯é瀺ããä¿è·ããããã«ãå ç¢ãªã»ãã¥ãªãã£å¯Ÿçãå®è£ ããŸããããã«ã¯ã転éäžããã³ä¿ç®¡äžã®ããŒã¿ã®æå·åãå«ãŸããŸãã
- ããŒã¿ä¿æïŒäœçœ®ããŒã¿ã¯ãæç€ºãããç®çã«å¿ èŠãªæéã®ã¿ä¿æããŸããæç¢ºãªããŒã¿ä¿æããªã·ãŒã確ç«ããäžèŠã«ãªã£ããããŒã¿ãåé€ããŸãã
- å¿ååãšéèšïŒå¯èœãªå Žåã¯åžžã«ãå人ã®ãã©ã€ãã·ãŒãä¿è·ããããã«ãäœçœ®ããŒã¿ãå¿ååãŸãã¯éèšããŸããããšãã°ãæ£ç¢ºãªå Žæãä¿åãã代ããã«ãåžåºçºæã¬ãã«ãŸãã¯å°åã¬ãã«ã§ããŒã¿ãä¿åã§ããŸãã
- èŠå¶ã®éµå®ïŒãšãŒãããã®äžè¬ããŒã¿ä¿è·èŠåïŒGDPRïŒãç±³åœã®ã«ãªãã©ã«ãã¢å·æ¶è²»è ãã©ã€ãã·ãŒæ³ïŒCCPAïŒãªã©ãé¢é£ããããŒã¿ãã©ã€ãã·ãŒèŠå¶ãèªèããéµå®ããŠãã ããããããã®èŠå¶ã¯ãäœçœ®æ å ±ãå«ãå人ããŒã¿ã®åéãåŠçãä¿åæ¹æ³ã«å€§ããªåœ±é¿ãäžããŸãã
- ãŠãŒã¶ãŒã³ã³ãããŒã«ïŒãŠãŒã¶ãŒã«äœçœ®ããŒã¿ã®ã³ã³ãããŒã«ãæäŸããŸããåæãç°¡åã«åãæ¶ããããããŒã¿ã«ã¢ã¯ã»ã¹ããããåé€ãèŠæ±ãããã§ããããã«ããŸãã
äŸïŒGDPRæºæ
ã¢ããªã±ãŒã·ã§ã³ã欧å·é£åã®å人ã«ãã£ãŠäœ¿çšãããŠããå ŽåãGDPRã«æºæ ããå¿ èŠããããŸããããã«ã¯ãäœçœ®æ å ±ã®åéã«å¯Ÿããæç€ºçãªåæã®ååŸãããŒã¿ã®äœ¿ç𿹿³ã«é¢ããæç¢ºãªæ å ±ã®ãŠãŒã¶ãŒãžã®æäŸãããã³ããŒã¿ãžã®ã¢ã¯ã»ã¹ãä¿®æ£ãæ¶å»ãªã©ã®GDPRã«åºã¥ãæš©å©ã®è¡äœ¿ã®èš±å¯ãå«ãŸããŸãã
Geolocation APIã䜿çšããããã®ãã¹ããã©ã¯ãã£ã¹
ã¹ã ãŒãºã§ãŠãŒã¶ãŒãã¬ã³ããªãŒãªãšã¯ã¹ããªãšã³ã¹ã確ä¿ããã«ã¯ãGeolocation APIã䜿çšããéã«æ¬¡ã®ãã¹ããã©ã¯ãã£ã¹ã«åŸã£ãŠãã ããã
- ã°ã¬ãŒã¹ãã«ãã°ã©ããŒã·ã§ã³ïŒGeolocation APIããµããŒãããŠããªããã©ãŠã¶åãã®ãã©ãŒã«ããã¯ã¡ã«ããºã ãå®è£ ããŸããä»£æ¿æ©èœãæäŸãããããã©ãŠã¶ããã±ãŒã·ã§ã³ããŒã¹ã®æ©èœããµããŒãããŠããªãããšããŠãŒã¶ãŒã«éç¥ããŸãã
- ãšã©ãŒåŠçïŒäœçœ®æ å ±ãååŸã§ããªãç¶æ³ïŒãŠãŒã¶ãŒãèš±å¯ãæåŠãäœçœ®æ å ±ãµãŒãã¹ãå©çšã§ããªããã¿ã€ã ã¢ãŠããçºçãããªã©ïŒãã°ã¬ãŒã¹ãã«ã«åŠçããããã®å ç¢ãªãšã©ãŒåŠçãå®è£ ããŸãããŠãŒã¶ãŒã«æçãªãšã©ãŒã¡ãã»ãŒãžãæäŸããŸãã
- ç²ŸåºŠã®æé©åïŒ
enableHighAccuracy
ãªãã·ã§ã³ã¯ãå¿ èŠãªå Žåã«ã®ã¿äœ¿çšããŠãã ãããé«ç²ŸåºŠã¯ãããå€ãã®ããããªãŒé»åãæ¶è²»ããäœçœ®æ å ±ã®ååŸã«æéããããå ŽåããããŸããäžè¬çãªå Žæã®ã¿ãå¿ èŠãªå Žåã¯ããã®ãªãã·ã§ã³ãfalse
ã«èšå®ãããŸãŸã«ããŸãã - ããããªãŒå¯¿åœã®èæ
®ïŒããããªãŒæ¶è²»éã«æ³šæããŠãã ãããç¹ã«
watchPosition()
ã䜿çšããå Žåã¯æ³šæããŠãã ãããäžèŠã«ãªã£ããäœçœ®æ å ±ã®ç£èŠã忢ããŸããããããªãŒé»åãç¯çŽããããã«ãäœçœ®æ å ±ã®æŽæ°é »åºŠãæžãããŸãã - 培åºçãªãã¹ãïŒã¢ããªã±ãŒã·ã§ã³ãããŸããŸãªããã€ã¹ãšãã©ãŠã¶ã§ãã¹ãããŠãæ£ããåäœãããšã©ãŒãã°ã¬ãŒã¹ãã«ã«åŠçããããšã確èªããŸããããŸããŸãªå°ççãªå Žæã§ãã¹ãããŠãAPIãããŸããŸãªç°å¢ã§æåŸ ã©ããã«åäœããããšã確èªããŸãã
- ã¿ã€ã ã¢ãŠãã®åŠçïŒã¢ããªã±ãŒã·ã§ã³ãäœçœ®æ å ±ãç¡æéã«åŸ æ©ããªãããã«ã劥åœãªã¿ã€ã ã¢ãŠãå€ãèšå®ããŸããæå®ãããã¿ã€ã ã¢ãŠãæéå ã«äœçœ®æ å ±ãååŸã§ããªãå Žåã¯ããŠãŒã¶ãŒãã¬ã³ããªãŒãªã¡ãã»ãŒãžã衚瀺ããŸãã
- ãã£ãã·ã³ã°ïŒAPIåŒã³åºãã®æ°ãæžãããããã©ãŒãã³ã¹ãåäžãããããã«ãäœçœ®ããŒã¿ã®ãã£ãã·ã³ã°ãæ€èšããŠãã ããã
maximumAge
ãªãã·ã§ã³ã䜿çšããŠããã£ãã·ã¥ãããããŒã¿ã®æå€§çµéæéãå¶åŸ¡ããŸãã - ã¢ã¯ã»ã·ããªãã£ïŒãã±ãŒã·ã§ã³ããŒã¹ã®æ©èœãé害ã®ãããŠãŒã¶ãŒã«ã¢ã¯ã»ã¹å¯èœã§ããããšã確èªããŸããå°å³äžã«èŠèŠçã«è¡šç€ºãããæ å ±ã«ã¢ã¯ã»ã¹ããããã®ä»£æ¿ææ®µãæäŸããŸããARIA屿§ã䜿çšããŠãå°å³èŠçŽ ã«é¢ããã»ãã³ãã£ãã¯æ å ±ãæäŸããŸãã
- åœéåïŒã¢ããªã±ãŒã·ã§ã³ãããŸããŸãªèšèªãšæåçæ £ç¿ãåŠçããããã«èšèšããŸããäœçœ®æ å ±ããŠãŒã¶ãŒã®åªå èšèªãšåœ¢åŒã§è¡šç€ºããŸããããŒã«ãªãŒãŒã·ã§ã³ã©ã€ãã©ãªã䜿çšããŠãåœéåã¿ã¹ã¯ãåŠçããããšãæ€èšããŠãã ããã
- ãžãªã³ãŒãã£ã³ã°ãšéãžãªã³ãŒãã£ã³ã°ã®æ éãªäœ¿çšïŒãžãªã³ãŒãã£ã³ã°ïŒäœæã座æšã«å€æïŒãšéãžãªã³ãŒãã£ã³ã°ïŒåº§æšãäœæã«å€æïŒã¯åœ¹ç«ã¡ãŸããã䜿çšå¶éãŸãã¯ã³ã¹ããçºçããå¯èœæ§ã®ããå€éšãµãŒãã¹ã«äŸåããŠããŸãããããã®ãµãŒãã¹ã責任ãæã£ãŠäœ¿çšããçµæã®ãã£ãã·ã³ã°ãæ€èšããŠãã ãããäœæã®åœ¢åŒãšèŠåã¯åœã«ãã£ãŠç°ãªãããšã«æ³šæããŠãã ããã
Geolocation APIãšã¢ãã€ã«ããã€ã¹
Geolocation APIã¯ãã¢ãã€ã«ããã€ã¹ã«ã¯GPSããã®ä»ã®äœçœ®æ€ç¥æè¡ãæèŒãããŠããããšãå€ããããã¢ãã€ã«Webã¢ããªã±ãŒã·ã§ã³ã«ç¹ã«é¢é£æ§ããããŸããGeolocation APIã䜿çšããã¢ãã€ã«Webã¢ããªã±ãŒã·ã§ã³ãéçºããå Žåã¯ã以äžãèæ ®ããŠãã ããã
- ã¢ãã€ã«ãã¡ãŒã¹ãã®ãã¶ã€ã³ïŒã¢ããªã±ãŒã·ã§ã³ãã¢ãã€ã«ãã¡ãŒã¹ãã®ã¢ãããŒãã§èšèšããå°ããªç»é¢ãšã¿ããããŒã¹ã®ããã€ã¹ã§é©åã«åäœããããã«ããŸãã
- ã¬ã¹ãã³ã·ããã¶ã€ã³ïŒã¬ã¹ãã³ã·ããã¶ã€ã³æè¡ã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ãããŸããŸãªç»é¢ãµã€ãºãšåãã«é©å¿ãããŸãã
- ããããªãŒã®æé©åïŒã¢ãã€ã«ããã€ã¹ã®ããããªãŒå®¹éã¯éãããŠãããããããããªãŒæ¶è²»éã«çްå¿ã®æ³šæãæã£ãŠãã ãããé«ç²ŸåºŠäœçœ®æ å ±ãµãŒãã¹ã®äœ¿çšãæå°éã«æããäžèŠã«ãªã£ããäœçœ®æ å ±ã®ç£èŠã忢ããŸãã
- ãªãã©ã€ã³ãµããŒãïŒãã£ãã·ã¥ãããå°å³ãäœçœ®æ å ±ã®è¡šç€ºãªã©ãäžéšã®æ©èœã«ãªãã©ã€ã³ãµããŒããæäŸããããšãæ€èšããŠãã ããã
- ãã€ãã£ãçµ±åïŒããé«åºŠãªãã±ãŒã·ã§ã³ããŒã¹ã®æ©èœã«ã€ããŠã¯ããã€ãã£ãã¢ãã€ã«éçºãã¬ãŒã ã¯ãŒã¯ïŒiOSã®å Žåã¯SwiftãAndroidã®å Žåã¯Kotlinãªã©ïŒãŸãã¯ã¯ãã¹ãã©ãããã©ãŒã ãã¬ãŒã ã¯ãŒã¯ïŒReact NativeãFlutterãªã©ïŒã®äœ¿çšãæ€èšããŠãã ããããããã®ãã¬ãŒã ã¯ãŒã¯ã¯ãã€ãã£ãããã€ã¹æ©èœãžã®ã¢ã¯ã»ã¹ãæäŸããWebããŒã¹ã®ãœãªã¥ãŒã·ã§ã³ãããåªããããã©ãŒãã³ã¹ãšæ©èœãæäŸã§ããŸãã
ã»ãã¥ãªãã£ã«é¢ããèæ ®äºé
ãã©ã€ãã·ãŒã«å ããŠãGeolocation APIã䜿çšããéã«èæ ®ãã¹ããã1ã€ã®éèŠãªåŽé¢ã¯ã»ãã¥ãªãã£ã§ãã
- HTTPSïŒåžžã«HTTPSçµç±ã§Webã¢ããªã±ãŒã·ã§ã³ãæäŸãããŠãŒã¶ãŒã®äœçœ®æ å ±ãçèŽãäžéè æ»æããä¿è·ããŸãã
- å ¥åæ€èšŒïŒãã¹ãŠã®å ¥åããŒã¿ãæ€èšŒããŠãã€ã³ãžã§ã¯ã·ã§ã³æ»æãé²ããŸãããµãŒããŒåŽã®ã³ãŒãã§äœçœ®æ å ±ã䜿çšããå Žåã¯ç¹ã«æ³šæããŠãã ããã
- ã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã°ïŒXSSïŒä¿è·ïŒXSSæ»æã鲿¢ããããã®å¯Ÿçãå®è£ ããŸããXSSæ»æã¯ããŠãŒã¶ãŒã®äœçœ®ããŒã¿ãçãã ããæªæã®ããã³ãŒããã¢ããªã±ãŒã·ã§ã³ã«æ³šå ¥ãããããããã«äœ¿çšãããå¯èœæ§ããããŸãã
- ã¬ãŒãå¶éïŒãã±ãŒã·ã§ã³ããŒã¹ã®ãµãŒãã¹ã®æªçšãé²ãããã«ãã¬ãŒãå¶éãå®è£ ããŸããããã¯ãæªæã®ããæ»æè ã«ãããµãŒããŒã®éè² è·ãé²ãã®ã«åœ¹ç«ã¡ãŸãã
- å®å šãªã¹ãã¬ãŒãžïŒäœçœ®ããŒã¿ãä¿åããå¿ èŠãããå Žåã¯ãå®å šãªã¹ãã¬ãŒãžã¡ã«ããºã ã䜿çšããŠãäžæ£ã¢ã¯ã»ã¹ããä¿è·ããŸããæ©å¯ããŒã¿ãæå·åãã匷åãªèªèšŒããã³æ¿èªã³ã³ãããŒã«ã䜿çšããŸãã
- 宿çãªã»ãã¥ãªãã£ç£æ»ïŒã¢ããªã±ãŒã·ã§ã³ã®å®æçãªã»ãã¥ãªãã£ç£æ»ã宿œããŠãæœåšçãªè匱æ§ãç¹å®ãã察åŠããŸãã