html页面:

<!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="https://api.map.baidu.com/api?v=2.0&ak=密钥"></script
    <title></title
</head
<body
    <p id="allmap"></p>
</body
</html>
 
JS部分:
<script type="text/javascript"
 
    var x = ""
    var y = ""
    var dizhi = ""
 
    function getLocation(){ 
        if (navigator.geolocation) { 
            navigator.geolocation.getCurrentPosition(showPosition,showError); 
        }else
            alert("浏览器不支持地理定位。"); 
        
    
 
    function showPosition(position){ 
      
 
        y = position.coords.latitude;//纬度 
        x = position.coords.longitude;//经度 
           
 
        // 百度地图API功能 
        //GPS坐标 
        var x = 116.32715863448607; 
        var y = 39.990912172420714; 
        var ggPoint = new BMap.Point(x, y); 
           
        //地图初始化 
        var bm = new BMap.Map("allmap"); 
 
        bm.centerAndZoom(ggPoint, 15); 
        bm.addControl(new BMap.NavigationControl()); 
        bm.enableScrollWheelZoom();   //启用滚轮放大缩小,默认禁用 
        bm.enableContinuousZoom();    //启用地图惯性拖拽,默认禁用 
        bm.addEventListener("tilesloaded", function () { });//地图加载完成 
 
        var gc = new BMap.Geocoder(); 
 
 
        bm.addEventListener("click", function (e) { 
               
            ggPoint = new BMap.Point(e.point.lng, e.point.lat); 
            gc.getLocation(ggPoint, function (rs) { 
                  
                var addComp = rs.addressComponents; 
                var mapAddress = addComp.province + addComp.city + addComp.district 
                + addComp.street + addComp.streetNumber; 
 
                dizhi = mapAddress; 
 
                if (confirm(dizhi)) { 
                    window.location.href = "succes.html" 
                
 
                var marker = new BMap.Marker(ggPoint); // 创建点 
                bm.addOverlay(marker); 
                var label = new BMap.Label("您选择的位置为"+dizhi, { offset: new BMap.Size(20, -10) }); 
                marker.setLabel(label); //添加百度label 
                bm.setCenter(ggPoint); 
            }); 
        }); 
           
              
          
 
        bm.addControl(new BMap.NavigationControl()); 
 
 
 
        //坐标转换完之后的回调函数 
        translateCallback = function (data) { 
            if (data.status === 0) { 
                var marker = new BMap.Marker(data.points[0]); 
                bm.addOverlay(marker); 
                marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画 
                //marker.enableDragging();//可拖拽 
                //var label = new BMap.Label("您所在的位置", { offset: new BMap.Size(20, -10) }); 
                //marker.setLabel(label); //添加百度label 
                //bm.setCenter(data.points[0]); 
 
                  
 
                //var a=BMap.Convertor(ggPoint, 0); 
 
 
                gc.getLocation(data.points[0], function (rs) { 
                    //alert(rs.sematic_description); 
 
                    var addComp = rs.addressComponents; 
                    var mapAddress = addComp.province + addComp.city + addComp.district 
                    + addComp.street + addComp.streetNumber; 
 
                    dizhi = mapAddress; 
 
                    confirm(dizhi); 
                    if (confirm(dizhi)) { 
                        window.location.href = "succes.html" 
                    
 
                    var label = new BMap.Label("定位您所在的位置为"+dizhi, { offset: new BMap.Size(20, -10) }); 
                    marker.setLabel(label); //添加百度label 
                    bm.setCenter(data.points[0]); 
 
                }); 
                                      
            
        
 
        setTimeout(function () { 
            var convertor = new BMap.Convertor(); 
            var pointArr = [] 
            pointArr.push(ggPoint); 
            convertor.translate(pointArr, 1, 5, translateCallback) 
        }, 1000); 
 
 
    
 
    function showError(error){ 
        switch(error.code) { 
            case error.PERMISSION_DENIED: 
                alert("定位失败,用户拒绝请求地理定位"); 
                break
            case error.POSITION_UNAVAILABLE: 
                alert("定位失败,位置信息是不可用"); 
                break
            case error.TIMEOUT: 
                alert("定位失败,请求获取用户位置超时"); 
                break
            case error.UNKNOWN_ERROR: 
                alert("定位失败,定位系统失效"); 
                break
        
    
 
    getLocation(); 
 
 
</script>

手机端GPS定位结合百度地图实现定位的更多相关文章

  1. 在Fragment中实现百度地图,定位到当前位置(基于SDKv2.1.0)

    使用最新版本的百度地图需要注意的几个地方: 1.libs文件夹下要有android-support-v4.jar.baidumapapi_v2_1_0.jar.locSDK_3.1.jar三个jar包 ...

  2. AngularJS进阶(十九)在AngularJS应用中集成百度地图实现定位功能

    在AngularJS应用中集成百度地图实现定位功能 注:请点击此处进行充电! 前言 根据项目需求,需要实现手机定位功能,考虑到百度业务的强大能力,遂决定使用百度地图第三方服务. 添加第三方模块的步骤与 ...

  3. Xamarin.Android 使用百度地图获取定位信息

    最近做一个项目,web端使用百度地图,PDA使用手持机自带的GPS定位系统获取经纬度,然后再百度地图上显示该经纬度会有一定距离的差异,这里就像可乐的瓶子拧上雪碧的盖子,能拧的上却不美观.所以为了数据的 ...

  4. 利用HTML5定位功能,实现在百度地图上定位(转)

    原文:利用HTML5定位功能,实现在百度地图上定位 代码如下: 测试浏览器:ie11定位成功率100%,Safari定位成功率97%,(add by zhj :在手机上测试(用微信内置浏览器打开),无 ...

  5. GPS坐标转换为百度地图坐标

    /** * GPS坐标转换为百度地图坐标 * 需要引入javabase64.jar 和json的一些包 * */ public class Gps2BaiDu { public static void ...

  6. GPS坐标转百度地图坐标

    百度地图提供了相关API:BMap.Convertor.translate, 但是使用上存在部分限制:1.次数限制:2.异步回调 可以用如下方法: /** * 地图位置计算工具(将GPS坐标转换成百度 ...

  7. ionic基于GPS定位并通过百度地图获取定位详细信息

    相信所有的前端攻城狮都会碰到移动端App.里面获取用户定位信息. 那么问题来了,怎么获取用户的定位信息(经纬度)呢. 当然方法有很多,通过百度地图API 以及 高德地图 API都是可以的.但是两个获取 ...

  8. Android 百度地图SDK 定位

    引用locSDK_6.1.3.jar,切记添加相应的so文件. 1.定位初始化,需要使用getApplicationContext() mLocClient = new LocationClient( ...

  9. Android应用中使用百度地图API定位自己的位置(二)

    官方文档:http://developer.baidu.com/map/sdkandev-6.htm#.E7.AE.80.E4.BB.8B3 百度地图SDK为开发人员们提供了例如以下类型的地图覆盖物: ...

随机推荐

  1. [SOJ #47]集合并卷积

    题目大意:给你两个多项式$A,B$,求多项式$C$使得:$$C_n=\sum\limits_{x|y=n}A_xB_y$$题解:$FWT$,他可以解决形如$C_n=\sum\limits_{x\opl ...

  2. 洛谷 P1311 选择客栈 解题报告

    P1311 选择客栈 题目描述 丽江河边有 \(n\) 家很有特色的客栈,客栈按照其位置顺序从 \(1\) 到 \(n\) 编号.每家客栈都按照某一种色调进行装饰(总共 \(k\) 种,用整数 \(0 ...

  3. C++分离字符串中的数字和字符 转

    #include <iostream> #include <string> #include <vector> using namespace std; void ...

  4. phalcon安装

    参考网站:https://docs.phalconphp.com/zh/latest/reference/tools.html (中文版)cento6.5环境安装:cd ~mkdir phalconc ...

  5. HTTP的特点?

    (1)HTTP是无连接: 无连接的含义是限制每次连接只处理一个请求.服务器处理完客户的请求,并收到客户的应答后,即断开连接.采用这种方式可以节省传输时间. (2)HTTP是媒体独立的: 这意味着,只要 ...

  6. Eclipse srever起来时,时间超过45s。

    双击servere的名字,在属性界面上进行修改. 如下图: 修改TimeOut中的值即可.

  7. UVA 1635 Irrelevant Elements

    https://vjudge.net/problem/UVA-1635 题意:n个数,每相邻两个求和,最后变成1个数,问这个数除m的余数与第几个数无关 n个数使用次数分别为C(n-1,i) i∈[0, ...

  8. 知问前端——Ajax登录

    本文,将使用Ajax登录. 一.服务器端代码 is_user.php: <?php require 'config.php'; $query = mysql_query("SELECT ...

  9. Golang向Templates 插入对象的值

    Go对象可以插入到template中,然后把对象的值表现在template中,你可以一层层的分解这个对象,去找他的子字段,当前对象用'.'来表示,所以当当前对象是一个string的时候,你可以用{{. ...

  10. 【poj1830-开关问题】高斯消元求解异或方程组

    第一道高斯消元题目~ 题目:有N个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开关的状态如果原来为开就变为关 ...