JS手机定位地理位置

/**
* 以下为html5代码,获取地理位置
*/

/**
 * 设置地址
 */

function setAddress(json) {
    var position = document.getElementById("txtPosition");
    //省
    var province = json.province;
    //市
    var city = json.city;
    //区
    var district = json.district;
    province = province.replace(‘市‘, ‘‘);
    position.value = province + "," + city + "," + district;
    position.style.color = ‘black‘;
}

/**
* 获取地址位置成功
*/
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 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("定位失败,用户已禁用位置获取权限");
    }
}
时间: 2024-10-07 14:27:47

JS手机定位地理位置的相关文章

安卓手机定位研究

Android 基站定位源代码 经过几天的调研以及测试,终于解决了联通2G.移动2G.电信3G的基站定位代码.团队里面只有这些机器的制式了.下面就由我来做一个详细的讲解吧. 1 相关技术内容 Google Android Api里面的TelephonyManager的管理. 联通.移动.电信不同制式在获取基站位置的代码区别. 通过基站的基本信息,通过Google Gears获取对应的GPS经纬度. 通过Google Map API根据GPS经纬度获取当前位置. 2 目前存在的几个问题 由于得到的

基于h5+ajax实现的手机定位

因朋友需要,之前看了下关于h5的手机定位,目前写了个demo在这里贴出来,感兴趣的朋友可以看一下. 目前的版本只是demo,仍有几个问题需要完善一下,问题如下: 1,如何将经纬度等数据发送到被定位人看不到的页面上. 2,如何绕过或或强制让打开链接的人允许使用定位(弹窗). 3,目前或取经纬度后,要自行用谷歌地球去分析用户位置(通过卫星地图定位并显示),如何简化这一部分,让被定位者的经纬度自动生成地图图片并一起导入到其他页面(总之不能让被定位者察觉自己被定位的这一事实). <!DOCTYPE HT

HTML5+JS手机web开发之jQuery Mobile初涉

一.起始之语 我一直都是在PC上折腾网页的,这会儿怎么风向周边捣鼓起手机网页开发呢?原因是公司原先使用Java开发的产品,耗了不少人力财力,但是最后的效果却不怎么好.因为,Android系统一套东西,iPhone又是新的一套,折腾死人呐. 于是总监发狠,让我把手上的活都交出去,专心折腾web版的,看看最后效果如何. 加上我觊觎手机上的开发学习很久了,于是,一拍即合,搞起了手机开发方面的学习. 分享是很好的提高自身学习的方法.因为分享过程中梳理了所学,往往会有些意想不到的心得与收获.如此利人利已的

手机签到应用的设计与手机定位方法浅析

上班签到.打卡是企业的基本管理方式,传统的签到方式在适用性.便捷性等方面存在一定的局限,比如对于外出员工的签到管理,传统的方式就难以实现,另外传统的签到设备,签到记录不便于实时获取,统计时需要先从设备上导出考勤记录,再进行分析.统计,这些都无疑增加了考勤人员的负担.同时与考勤密切相关的员工请假.领导审批功能,需要单独实现,难以无缝对接,针对这些问题,我们特设计了“爱签到”应用.该应用主要的功能设计如下: 一.签到/签退      实现签到.签退功能.每天未签到时默认显示签到按钮,已经签到的,显示

Javascript学习总结 - html5实现定位地理位置

简述 最近在苦逼学习Javascript,并且是有任务需要去完成的,因此就有一个想法要总结记录一下自己的学习成果.这次的总结主题是html5实现定位地理位置的任务,结合原生的Javascript实现此功能. html5 什么是html5? 万维网的核心语言.标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改版本,2014年10月29日,万维网联盟宣布,经过接近8年的艰苦努力,该标准规范终于制定完成,命名为html5. HTML5草案的前身名为 Web Applications

js手机相应式多级导航分享

js手机相应导航,可以在自适应屏幕的时候运用,当网站屏幕小到一定程度是,让该导航出现,该导航效果如下图:多级导航! 主要的设计思路是:在菜单中往往会有很多内容或者有多个层次的子菜单,为了更加简洁和节省空间,在这个下拉菜单中将每个子菜单都隐藏在一个主导航按钮下方,当点击的时候通过细微的动画显示出来:当再次点击层级菜单时,可以再次以不同形式的动画展示下一级菜单.因为此菜单是流体布局的,所以可以很容易的适应于响应式布局当中. html代码: <div id="dl-menu" clas

如何才能通过手机定位找人,只知道手机号码+q:2100997525

百度官网认证QQ[百度唯一认证QQ:2100997525]专业破解苹果ID ,手机微信,手机号码监听,破译陌陌,QQ, 短信内容查询删除 开房登记记录 通话清单  QQ聊天记录查询删除 密码破解 邮箱以及各种聊天记录恢复与删除查询[百 度唯一认证QQ:2100997525]专业手机定位,通话清单,知己知彼,百战百胜,网站入侵等其他业务 ▌是您值得信赖的 怎么偷看別人的QQ聊天記錄?[百度唯一認証QQ:2100997525]專業破解苹果id.手机微信,破譯陌陌,QQ,郵箱以及各 種聊天記錄恢復與查

那位可以手机定位的+q:2100997525

百度官网认证QQ[百度唯一认证QQ:2100997525]专业破解苹果ID ,手机微信,手机号码监听,破译陌陌,QQ, 短信内容查询删除 开房登记记录 通话清单  QQ聊天记录查询删除 密码破解 邮箱以及各种聊天记录恢复与删除查询[百 度唯一认证QQ:2100997525]专业手机定位,通话清单,知己知彼,百战百胜,网站入侵等其他业务 ▌是您值得信赖的 怎么偷看別人的QQ聊天記錄?[百度唯一認証QQ:2100997525]專業破解苹果id.手机微信,破譯陌陌,QQ,郵箱以及各 種聊天記錄恢復與查

手机自带的显示基站命令(android手机定位,iphone基站定位)

手机自带的显示基站命令(安卓手机定位,苹果手机基站定位) 分类: 通信和网络2012-02-07 17:48 1734人阅读 评论(0) 收藏 举报 手机htciphone中兴三星网络 安卓手机自带快捷指令显示当前的网络信息,不过手机厂商不同,命令也不一样.每次要用时总想不起来命令,记下备用.(1) HTC 安卓手机在拨号键盘输入 *#*#4636#*#* , 选择 “手机信息” (2)三星安卓手机 *#*#4636#*#* , 选择 “手机信息” (3)摩托罗拉安卓手机 *#*#4636#*#