美文网首页
HTML5地理定位接口

HTML5地理定位接口

作者: 八月飞花 | 来源:发表于2020-04-22 12:07 被阅读0次

地理定位

在H5中增加了地理用户API,可以利用位置开发基于用户位置的应用

获取位置的方式

通过IP地址获取

  每个地方都可以使用IP地址,但是IP地址定位不精确

GPS

好处是,定位精确,但是耗电大,定位时间长

WIFI-手机信号定位

好处是精确度高,但是无法定位,非信号覆盖地区

浏览器定位接口

定位属于用户个人隐私,必须由用户同意之后才可以允许定位功能的使用

定位API

navigator.geolocation
  这个API由各个浏览器厂家自己实现,需要处理兼容性问题
  getCurrentPosition(获取位置成功回调函数,获取位置失败回调函数,参数设置);

成功回调

  成功之后默认传入一个数据参数
    这个参数是获取到的地理信息的对象
    coords
        latitude:经度
        longitude:纬度
        accuracy:精度
        altitude:海拔高度
  function success(data){
    data.coords.latitude;//
    data.coords.longitude;
  }

失败回调

  失败之后默认传入一个数据参数
    这个参数是获取到错误的信息
    error
      PERMISSION_DENIED:用户拒绝定位请求
      POSITION_UNAVABLE:定位信息不可用
      TIMEOUT:请求超时
      UNKNOW_ERROR:未知错误
  function success(err){
  }

参数设置

  anableHighAccuracy:是否使用高精度,true/false
  timeout:设置超时时间,单位ms
  maximumAge:设置浏览器重新获取地理信息的时间间隔,单位ms

注意

我们不能直接获取地理信息,我们需要通过第三方接口(百度地图)去获取

使用百度地图接口实现地理信息获取

进入百度地图开放平台,选择JavaScriptAPI,选择符合功能的样式

得到源代码(以下代码摘自百度开放平台)

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>
<title>个性化地图</title>
</head>
<body>
<div id="allmap"></div>显示地图
</body>
</html> 

JavaScript代码

    <script type="text/javascript">
全景图展示
    var panorama = new BMap.Panorama('panorama');
    panorama.setPosition(new BMap.Point(120.320032, 31.589666)); //根据经纬度坐标展示全景图
    panorama.setPov({heading: -40, pitch: 6});

    panorama.addEventListener('position_changed', function(e){ //全景图位置改变后,普通地图中心点也随之改变
        var pos = panorama.getPosition();//获取地理信息
        map.setCenter(new BMap.Point(pos.lng, pos.lat));
        marker.setPosition(pos);
    });



普通地图展示
    var mapOption = {
            mapType: BMAP_NORMAL_MAP,
            maxZoom: 18,
            drawMargin:0,
            enableFulltimeSpotClick: true,
            enableHighResolution:true
        }

    var map = new BMap.Map("normal_map", mapOption);
    var testpoint = new BMap.Point(120.320032, 31.589666);
    map.centerAndZoom(testpoint, 18);
    var marker=new BMap.Marker(testpoint);
    marker.enableDragging();
    map.addOverlay(marker);  
    marker.addEventListener('dragend',function(e){
        panorama.setPosition(e.point); //拖动marker后,全景图位置也随着改变
        panorama.setPov({heading: -40, pitch: 6});}
    );
    </script>

相关文章

  • HTML5 Geolocation(地理定位)

    HTML5 Geolocation(地理定位) HTML5 Geolocation(地理定位)用于定位用户的位置。...

  • HTML5地理定位

    1、HTML5 Geolocation(地理定位) HTML5 Geolocation(地理定位)用于定位用户的位...

  • HTML5 Geolocation(地理定位)

    HTML5 Geolocation(地理定位)用于定位用户的位置 定位用户的位置HTML5 Geolocation...

  • HTML5 地理定位

    HTML5 Geolocation(地理定位)用于定位用户的位置 定位用户的位置 HTML5 Geolocatio...

  • HTML5地理定位接口

    地理定位 获取位置的方式 通过IP地址获取 GPS WIFI-手机信号定位 浏览器定位接口 定位API 成功回调 ...

  • 【进阶系列】地理位置专题

    1Geolocation简介 HTML5 Geolocation(地理定位)用于定位用户的位置。 1.1定位用户的...

  • HTML5定位

    HTML5定位: Geolocation地理定位对象提供的属性和方法实现定位,它是navigator对象的子对象。...

  • HTML5简明教程(七)其他新技术

    最后一部分介绍HTML5其他新技术。 1. 地理位置 HTML5地理定位功能由navigator.geolocat...

  • HTML5 地理定位

    HTML5 Geolocation(地理定位)用于定位用户的位置。 亲自试一试:在谷歌地图上显示您的位置 定位用户...

  • HTML5的一些新特性1

    HTML5的一些新特性 地理定位: geolocation1.PC端定位: 依靠IP地址定位(IP库 ),精度低2...

网友评论

      本文标题:HTML5地理定位接口

      本文链接:https://www.haomeiwen.com/subject/xinbihtx.html