zoukankan      html  css  js  c++  java
  • H5地理定位

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
    <title>地理定位</title>

    </head>
    <body>
    <p>您当前所在位置:<span id="demo"></span></p>
    <button id="btn">按钮</button>
    <script type="text/javascript" src="http://www.w3school.com.cn/jquery/jquery-1.11.1.min.js"></script>
    <script type="text/javascript">
    function getLocation() {
    //检查浏览器是否支持地理位置获取
    if (navigator.geolocation) {
    //若支持地理位置获取,成功调用showPosition(),失败调用showError
    alert("正在努力获取位置...");
    var config = { enableHighAccuracy: true, timeout: 5000, maximumAge: 30000 };
    navigator.geolocation.getCurrentPosition(showPosition, showError, config);
    } else {
    //alert("Geolocation is not supported by this browser.");
    alert("定位失败,用户已禁用位置获取权限");
    }
    }
    /**
    * 获取地址位置成功
    */

    function showPosition(position) {
    //获得经度纬度
    var x = position.coords.latitude;
    var y = position.coords.longitude;
    //配置Baidu Geocoding API
    var url = "http://api.map.baidu.com/geocoder/v2/?ak=C93b5178d7a8ebdb830b9b557abce78b" +
    "&callback=renderReverse" +
    "&location=" + x + "," + y +
    "&output=json" +
    "&pois=0";
    $.ajax({
    type: "GET",
    dataType: "jsonp",
    url: url,
    success: function (json) {
    if (json == null || typeof (json) == "undefined") {
    return;
    }
    if (json.status != "0") {
    return;
    }
    setAddress(json.result.addressComponent);
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
    alert("[x:" + x + ",y:" + y + "]地址位置获取失败,请手动选择地址");
    }
    });
    }
    /**
    * 获取地址位置失败[暂不处理]
    */
    function showError(error) {
    switch (error.code) {
    case error.PERMISSION_DENIED:
    alert("定位失败,用户拒绝请求地理定位");
    //x.innerHTML = "User denied the request for Geolocation.[用户拒绝请求地理定位]"
    break;
    case error.POSITION_UNAVAILABLE:
    alert("定位失败,位置信息是不可用");
    //x.innerHTML = "Location information is unavailable.[位置信息是不可用]"
    break;
    case error.TIMEOUT:
    alert("定位失败,请求获取用户位置超时");
    //x.innerHTML = "The request to get user location timed out.[请求获取用户位置超时]"
    break;
    case error.UNKNOWN_ERROR:
    alert("定位失败,定位系统失效");
    //x.innerHTML = "An unknown error occurred.[未知错误]"
    break;
    }
    }
    /**
    * 设置地址
    */
    function setAddress(json) {
    var position = document.getElementById("demo");
    //省
    var province = json.province;
    //市
    var city = json.city;
    //区
    var district = json.district;
    province = province.replace('市', '');
    position.innerHTML = province + "-" + city + "-" + district;
    position.style.color = 'black';
    }

    window.onload = function(){
    getLocation();
    };


    </script>
    </body>
    </html>

  • 相关阅读:
    梯度下降进阶
    梯度下降基础
    python---matplotlib
    python---numpy
    浅析Jupyter Notebook
    anaconda安装
    机器学习---导学
    python---线程与进程
    mapping values are not allowed in this context at line 115 column 10
    laravel进行单元测试的时候如何模拟数据库以及mockery的调用
  • 原文地址:https://www.cnblogs.com/shuilinger/p/4956174.html
Copyright © 2011-2022 走看看