百度地图开发:H5获取GPS-wg84经纬度与百度定位API的偏差测试

简介: 百度地图开发:H5获取GPS-wg84经纬度与百度定位API的偏差测试

HTML容器

<div id="map" style="width: 100%;height: 450px;"></div>
<div id="gps" style="width: 100%;height: 20px;"></div>
<div id="bd" style="width: 100%;height: 20px;"></div>
<div id="geo" style="width: 100%;height: 20px;"></div>

异步加载地图

    /*百度地图经纬度选择插件*/
    var centerCords = "113.503484,27.652063";
    function map_load() {
        var load = document.createElement("script");
        load.src = "//api.map.baidu.com/api?v=3.0&ak=11Z8uiP8kIz6AG0**&callback=map_init";
        document.body.appendChild(load);
    }
    window.onload = map_load;


初始化地图

//初始化地图;
    var map;
    function map_init() {
        map = new BMap.Map("map", {enableMapClick: false});
        var point = new BMap.Point(centerCords.split(",")[0], centerCords.split(",")[1]);
        map.centerAndZoom(point, 15);
        map.enableScrollWheelZoom();
        // 添加定位控件;
        var geolocationControl = new BMap.GeolocationControl();
        map.addControl(geolocationControl);
        //H5定位;
        navigator.geolocation.getCurrentPosition(function (position) {
            var x = position.coords.longitude;
            var y = position.coords.latitude;
            $("#gps").html("GPS坐标:" + x + "," + y);
            var ggPoint = new BMap.Point(x, y);
            //GPS标注;
            var markergg = new BMap.Marker(ggPoint);
            map.addOverlay(markergg); //添加GPS marker
            var labelgg = new BMap.Label("GPS坐标", {offset: new BMap.Size(20, -10)});
            markergg.setLabel(labelgg); //添加GPS label
            //BD转换;
            var convertor = new BMap.Convertor();
            var pointArr = [];
            pointArr.push(ggPoint);
            convertor.translate(pointArr, 1, 5, translateCallback);
        }, function (err) {
            console.log(err.code);
            // code:返回获取位置的状态
            //0:不包括其他错误编号中的错误
            //1:用户拒绝浏览器获取位置信息
            //2:尝试获取用户信息,但失败了
            //3:设置了timeout值,获取位置超时了
        }, {
            enableHighAcuracy: true, //位置是否精确获取
            timeout: 5000,//获取位置允许的最长时间
            maximumAge: 0 //多久更新获取一次位置
        })
        //坐标转换完之后的回调函数
        translateCallback = function (data) {
            if (data.status === 0) {
                var marker = new BMap.Marker(data.points[0]);
                map.addOverlay(marker);
                $("#bd").html("百度坐标:" + data.points[0].lng + "," + data.points[0].lat);
                var label = new BMap.Label("百度坐标", {offset: new BMap.Size(20, -10)});
                marker.setLabel(label);
                map.setCenter(data.points[0]);
            }
        }
        //百度地图自动定位;
        bdGeo();
        function bdGeo() {
            var geolocation = new BMap.Geolocation();
            geolocation.getCurrentPosition(function (r) {
                if (this.getStatus() == BMAP_STATUS_SUCCESS) {
                    //var mk = new BMap.Marker(r.point);
                    //map.clearOverlays();
                    map.panTo(r.point);
                    //alert('您的位置:' + r.point.lng + ',' + r.point.lat);
                    $("#geo").html("定位坐标:"+r.point.lng + "," + r.point.lat)
                    var marker = new BMap.Marker(points);
                    map.addOverlay(marker);
                  /*  var points = new BMap.Point(r.point.lng, r.point.lat);
                    //返回当前中心点;
                    map.centerAndZoom(points, 17);
                    //添加标注;
                    var marker = new BMap.Marker(points);
                    map.addOverlay(marker);
                    marker.enableDragging();
                    marker.addEventListener('dragend', function () {
                        //console.log(marker.getPosition().lat);
                        $("#L_lnglat").val(marker.getPosition().lng + "," + marker.getPosition().lat)
                    })*/
                } else {
                    alert('failed' + this.getStatus());
                }
            }, function (error) {
                console.log(error);
            }, {
                enableHighAccuracy: true,//是否要求高精度的地理位置信息
                timeout: 1000,//对地理位置信息的获取操作做超时限制
                maximumAge: 0//设置缓存有效时间
            });
        }
    }


lockdatav Done!

相关文章
|
2月前
|
人工智能 数据可视化 测试技术
Postman 性能测试教程:快速上手 API 压测
本文介绍API上线后因高频调用导致服务器告警,通过Postman与Apifox进行压力测试排查性能瓶颈。对比两款工具在批量请求、断言验证、可视化报告等方面的优劣,探讨API性能优化策略及行业未来发展方向。
Postman 性能测试教程:快速上手 API 压测
|
2月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
319 1
|
3月前
|
XML 安全 测试技术
【干货满满】分享什么是API接口测试
API接口测试是验证应用程序编程接口功能、性能、安全性及兼容性的关键环节,通过模拟请求并验证响应结果,确保接口能正确处理各种输入和场景。测试内容涵盖功能验证、性能评估、安全防护、兼容性验证及系统可靠性。相比UI测试,API测试无需界面依赖,支持数据驱动与自动化,适用于持续集成流程。常见接口类型包括RESTful、SOAP和GraphQL API,广泛应用于电商、金融及社交平台,保障系统间数据交互的安全与高效。
|
4月前
|
人工智能 监控 安全
API安全测试工具:数字经济的免疫防线
API安全面临漏洞盲区、配置错误与合规碎片三大挑战,传统手段难抵新型风险。破局需构建智能漏洞探针、配置审计中枢与合规映射引擎三位一体防御矩阵。Burp Suite、Noname Security、Traceable AI与板栗看板等工具助力企业实现自动化检测、精准响应与高效合规,打造API安全免疫体系。
|
3月前
|
API 定位技术 调度
实现精准定位的—坐标系经纬度转换API技术说明和行业应用
在地图服务、物流调度等应用中,多源地理位置数据因采用不同坐标系(如WGS84、GCJ02、BD09)需统一转换,以避免位置偏移影响路径规划与分析精度。本文介绍坐标转换背景、技术方案及Python调用示例,强调其在智慧交通与物流系统中的重要性。
454 0
|
4月前
|
JSON JavaScript 测试技术
用Postman玩转电商API:一键测试+自动化请求教程
Postman 是电商 API 测试的高效工具,涵盖基础配置、自动化测试、环境管理与请求自动化,助你快速提升开发效率。
|
1月前
|
缓存 数据可视化 定位技术
快递鸟快递API技术指南:获取物流轨迹信息与轨迹地图的解决方案
在当今电商竞争激烈的环境中,物流体验已成为提升用户满意度的关键因素。研究表明,超过 75% 的消费者会因物流信息不透明而放弃下单。
431 1
|
1月前
|
人工智能 自然语言处理 测试技术
Apipost智能搜索:只需用业务语言描述需求,就能精准定位目标接口,API 搜索的下一代形态!
在大型项目中,API 数量庞大、命名不一,导致“找接口”耗时费力。传统工具依赖关键词搜索,难以应对语义模糊或命名不规范的场景。Apipost AI 智能搜索功能,支持自然语言查询,如“和用户登录有关的接口”,系统可理解语义并精准匹配目标接口。无论是新人上手、模糊查找还是批量定位,都能大幅提升检索效率,降低协作成本。从关键词到语义理解,智能搜索让开发者少花时间找接口,多专注核心开发,真正实现高效协作。
|
2月前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
462 11
|
3月前
|
JSON 搜索推荐 API
利用快手电商 API 接口,实现快手小店商品价格区间精准定位
在快手电商中,通过调用API获取商品数据,并利用统计方法(如四分位数)精准划分价格区间,可优化选品策略、提升转化率。结合Python实现,助力电商智能化运营。
211 0