HTML5 µØÀí¶¨Î»
HTML5 Geolocation£¨µØÀí¶¨Î»£©ÓÃÓÚ¶¨Î»Óû§µÄλÖá£
¶¨Î»Óû§µÄλÖÃ
HTML5 Geolocation API ÓÃÓÚ»ñµÃÓû§µÄµØÀíλÖá£
¼øÓÚ¸ÃÌØÐÔ¿ÉÄÜÇÖ·¸Óû§µÄÒþ˽£¬³ý·ÇÓû§Í¬Ò⣬·ñÔòÓû§Î»ÖÃÐÅÏ¢ÊDz»¿ÉÓõġ£
ä¯ÀÀÆ÷Ö§³Ö
Internet Explorer 9¡¢Firefox¡¢Chrome¡¢Safari ÒÔ¼° Opera Ö§³ÖµØÀí¶¨Î»¡£
×¢ÊÍ£º¶ÔÓÚÓµÓÐ GPS µÄÉ豸£¬±ÈÈç iPhone£¬µØÀí¶¨Î»¸ü¼Ó¾«È·¡£
HTML5 - ʹÓõØÀí¶¨Î»
ÇëʹÓà getCurrentPosition() ·½·¨À´»ñµÃÓû§µÄλÖá£
ÏÂÀýÊÇÒ»¸ö¼òµ¥µÄµØÀí¶¨Î»ÊµÀý£¬¿É·µ»ØÓû§Î»Öõľ¶ÈºÍγ¶È¡£
ʵÀý
<script>
var x=document.getElementById("demo");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition)
;
}
else{x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position)
{
x.innerHTML="Latitude: " + position.coords.latitude +
"<br />Longitude: " + position.coords.longitude;
}
</script>
Àý×Ó½âÊÍ£º
- ¼ì²âÊÇ·ñÖ§³ÖµØÀí¶¨Î»
- Èç¹ûÖ§³Ö£¬ÔòÔËÐÐ getCurrentPosition() ·½·¨¡£Èç¹û²»Ö§³Ö£¬ÔòÏòÓû§ÏÔʾһ¶ÎÏûÏ¢¡£
- Èç¹ûgetCurrentPosition()ÔËÐгɹ¦£¬ÔòÏò²ÎÊýshowPositionÖй涨µÄº¯Êý·µ»ØÒ»¸öcoordinates¶ÔÏó
- showPosition() º¯Êý»ñµÃ²¢ÏÔʾ¾¶ÈºÍγ¶È
ÉÏÃæµÄÀý×ÓÊÇÒ»¸ö·Ç³£»ù´¡µÄµØÀí¶¨Î»½Å±¾£¬²»º¬´íÎó´¦Àí¡£
´¦Àí´íÎóºÍ¾Ü¾ø
getCurrentPosition() ·½·¨µÄµÚ¶þ¸ö²ÎÊýÓÃÓÚ´¦Àí´íÎó¡£Ëü¹æ¶¨µ±»ñÈ¡Óû§Î»ÖÃʧ°ÜʱÔËÐеĺ¯Êý£º
ʵÀý
function showError(error) { switch(error.code) { case error.PERMISSION_DENIED: x.innerHTML="User denied the request for Geolocation." break; case error.POSITION_UNAVAILABLE: x.innerHTML="Location information is unavailable." break; case error.TIMEOUT: x.innerHTML="The request to get user location timed out." break; case error.UNKNOWN_ERROR: x.innerHTML="An unknown error occurred." break; } }
´íÎó´úÂ룺
- Permission denied - Óû§²»ÔÊÐíµØÀí¶¨Î»
- Position unavailable - ÎÞ·¨»ñÈ¡µ±Ç°Î»ÖÃ
- Timeout - ²Ù×÷³¬Ê±
ÔÚµØÍ¼ÖÐÏÔʾ½á¹û
ÈçÐèÔÚµØÍ¼ÖÐÏÔʾ½á¹û£¬ÄúÐèÒª·ÃÎÊ¿ÉʹÓþγ¶ÈµÄµØÍ¼·þÎñ£¬±ÈÈç¹È¸èµØÍ¼»ò°Ù¶ÈµØÍ¼£º
ʵÀý
function showPosition(position) { var latlon=position.coords.latitude+","+position.coords.longitude; var img_url="http://maps.googleapis.com/maps/api/staticmap?center=" +latlon+"&zoom=14&size=400x300&sensor=false"; document.getElementById("mapholder").innerHTML="<img src='"+img_url+"' />"; }
ÔÚÉÏÀýÖУ¬ÎÒÃÇʹÓ÷µ»ØµÄ¾Î³¶ÈÊý¾ÝÔÚ¹È¸èµØÍ¼ÖÐÏÔʾλÖã¨Ê¹Óþ²Ì¬Í¼Ïñ£©¡£
ÉÏÃæµÄÁ´½ÓÏòÄúÑÝʾÈçºÎʹÓýű¾À´ÏÔʾ´øÓбê¼Ç¡¢Ëõ·ÅºÍÍÏÒ·Ñ¡ÏîµÄ½»»¥Ê½µØÍ¼¡£
¸ø¶¨Î»ÖõÄÐÅÏ¢
±¾Ò³ÑÝʾµÄÊÇÈçºÎÔÚµØÍ¼ÉÏÏÔʾÓû§µÄλÖᣲ»¹ý£¬µØÀí¶¨Î»¶ÔÓÚ¸ø¶¨Î»ÖõÄÐÅϢͬÑùºÜÓÐÓô¦¡£
°¸Àý£º
- ¸üб¾µØÐÅÏ¢
- ÏÔʾÓû§ÖÜΧµÄÐËȤµã
- ½»»¥Ê½³µÔص¼º½ÏµÍ³ (GPS)
getCurrentPosition() ·½·¨ - ·µ»ØÊý¾Ý
Èô³É¹¦£¬Ôò getCurrentPosition() ·½·¨·µ»Ø¶ÔÏó¡£Ê¼Öջ᷵»Ø latitude¡¢longitude ÒÔ¼° accuracy ÊôÐÔ¡£Èç¹û¿ÉÓã¬Ôò»á·µ»ØÆäËûÏÂÃæµÄÊôÐÔ¡£
ÊôÐÔ | ÃèÊö |
---|---|
coords.latitude | Ê®½øÖÆÊýµÄγ¶È |
coords.longitude | Ê®½øÖÆÊýµÄ¾¶È |
coords.accuracy | λÖþ«¶È |
coords.altitude | º£°Î£¬º£Æ½ÃæÒÔÉÏÒÔÃ×¼Æ |
coords.altitudeAccuracy | λÖõĺ£°Î¾«¶È |
coords.heading | ·½Ïò£¬´ÓÕý±±¿ªÊ¼ÒÔ¶È¼Æ |
coords.speed | ËÙ¶È£¬ÒÔÃ×/ÿÃë¼Æ |
timestamp | ÏìÓ¦µÄÈÕÆÚ/ʱ¼ä |
Geolocation ¶ÔÏó - ÆäËûÓÐȤµÄ·½·¨
watchPosition() - ·µ»ØÓû§µÄµ±Ç°Î»Ö㬲¢¼ÌÐø·µ»ØÓû§Òƶ¯Ê±µÄ¸üÐÂλÖ㨾ÍÏñÆû³µÉ쵀 GPS£©¡£
clearWatch() - Í£Ö¹ watchPosition() ·½·¨
ÏÂÃæµÄÀý×Óչʾ watchPosition() ·½·¨¡£ÄúÐèҪһ̨¾«È·µÄ GPS É豸À´²âÊÔ¸ÃÀý£¨±ÈÈç iPhone£©£º
ʵÀý
<script>
var x=document.getElementById("demo");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.watchPosition(showPosition)
;
}
else{x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position)
{
x.innerHTML="Latitude: " + position.coords.latitude +
"<br />Longitude: " + position.coords.longitude;
}
</script>