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>

Ç××ÔÊÔÒ»ÊÔ

VUE