HTML5如何使用地理定位-创新互联

这篇文章主要介绍了HTML5如何使用地理定位,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

创新互联专业为企业提供镇坪网站建设、镇坪做网站、镇坪网站设计、镇坪网站制作等企业网站建设、网页设计与制作、镇坪企业网站模板建站服务,10余年镇坪做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

定位用户的位置

HTML5 Geolocation API 用于获得用户的地理位置。

鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。

浏览器支持

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+"' />";
}

在上例中,我们使用返回的经纬度数据在谷歌地图中显示位置(使用静态图像)。

谷歌地图脚本实例

<!DOCTYPE html>
<html>
<body>
<p id="demo">点击这个按钮,获得您的位置:</p>
<button onclick="getLocation()">试一下</button>
<div id="mapholder"></div>
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script>
var x=document.getElementById("demo");
function getLocation()
{
if (navigator.geolocation)
 {
 navigator.geolocation.getCurrentPosition(showPosition,showError);
 }
else{x.innerHTML="Geolocation is not supported by this browser.";}
}

function showPosition(position)
{
lat=position.coords.latitude;
lon=position.coords.longitude;
latlon=new google.maps.LatLng(lat, lon)
mapholder=document.getElementById('mapholder')
mapholder.style.height='250px';
mapholder.style.width='500px';

var myOptions={
center:latlon,zoom:14,
mapTypeId:google.maps.MapTypeId.ROADMAP,
mapTypeControl:false,
navigationControlOptions:{style:google.maps.NavigationControlStyle.SMALL}
};
var map=new google.maps.Map(document.getElementById("mapholder"),myOptions);
var marker=new google.maps.Marker({position:latlon,map:map,title:"You are here!"});
}

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;
 }
}
</script>
</body>
</html>

上面的实例向您演示如何使用脚本来显示带有标记、缩放和拖曳选项的交互式地图。

给定位置的信息

案例:

  • 更新本地信息

  • 显示用户周围的兴趣点

  • 交互式车载导航系统 (GPS)

getCurrentPosition() 方法 - 返回数据

若成功,则 getCurrentPosition() 方法返回对象。始终会返回 latitude、longitude 以及 accuracy 属性。如果可用,则会返回其他下面的属性。

  • HTML5如何使用地理定位

  • 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>

感谢你能够认真阅读完这篇文章,希望小编分享的“HTML5如何使用地理定位”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

分享文章:HTML5如何使用地理定位-创新互联
转载来源:https://www.cdcxhl.com/article0/dshoio.html

成都网站建设公司_创新互联,为您提供营销型网站建设动态网站网站改版网站设计静态网站云服务器

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都app开发公司