mui:使用js在移动端进行精准定位改进版,以及坐标转换

11 篇文章 2 订阅
9 篇文章 0 订阅

我们以android端为案例谈,最初时我直接调用百度地图第三方库,然后直接就定位,这样的话,只可以定位到城市一级,比较伤,无法精确定位,于是就要改变
之后尝试使用html5的地理定位,如此的话,发现只有在开启GPS时,才会获取到定位信息,这样获得的信息是精确的,这样做:

//初始化地图

mui.plusReady(function() {
        getInfo();
        map = new BMap.Map("allmap");
        var point = new BMap.Point(116.331398, 39.897445);
        map.centerAndZoom(point, 13);   
        getGeocode(); 
    })

//进行定位

// 通过定位模块获取位置信息
    function getGeocode() { 
        plus.nativeUI.showWaiting();
        plus.geolocation.getCurrentPosition(showLocation, function(e) {
            mui.toast("获取定位位置信息失败:" + e.message);
        }, {
            geocode: true
        });
    }

处理定位信息:

    //处理定位后的信息
    function showLocation(r) {  
        jingDu = r.coords.longitude;
        weiDu = r.coords.latitude; 
        Address = r.addresses; 
        centerPointer = new BMap.Point(r.coords.longitude,r.coords.latitude);
        exchange(); 
    }

这有一点,地图我没有采用应用内置的地图,而是调用的第三方库,百度地图,这样就涉及到坐标转换的问题
可以在百度地图api的实例中可以找到转换的实例

//将GPS坐标转换成百度地图的坐标
    function exchange(){
        var convertor = new BMap.Convertor();
        var pointArr = [];
        pointArr.push(centerPointer);
        convertor.translate(pointArr,1,5,translateCallback);
    }
    function translateCallback(data){
        if(data.status==0){
            var marker = new BMap.Marker(data.points[0]);
            map.addOverlay(marker);
            map.setCenter(data.points[0]);
            plus.nativeUI.closeWaiting();
        }
    }

目前的坐标系有百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系

百度地图的坐标是在火星坐标的基础上进行了二次加密

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
HTML5+ 的 pickDate 和 MUI 的 dtpicker 都是移动端时间控件,它们的使用和对比如下: 1. 使用方式: HTML5+ 的 pickDate 使用方式: ```html <input type="date" id="datePicker" /> ``` MUI 的 dtpicker 使用方式: ```javascript var dtPicker = new mui.DtPicker({ type: "date", // 显示类型,可选值:date、datetime、time beginDate: new Date(2019, 0, 1), // 开始日期 endDate: new Date(2022, 11, 31), // 结束日期 labels: ["年", "月", "日", "时", ""], // 按钮上的文字 customData: { h: [ { value: "0", text: "0时" }, { value: "1", text: "1时" }, { value: "2", text: "2时" }, { value: "3", text: "3时" }, { value: "4", text: "4时" }, { value: "5", text: "5时" }, { value: "6", text: "6时" }, { value: "7", text: "7时" }, { value: "8", text: "8时" }, { value: "9", text: "9时" }, { value: "10", text: "10时" }, { value: "11", text: "11时" }, { value: "12", text: "12时" }, { value: "13", text: "13时" }, { value: "14", text: "14时" }, { value: "15", text: "15时" }, { value: "16", text: "16时" }, { value: "17", text: "17时" }, { value: "18", text: "18时" }, { value: "19", text: "19时" }, { value: "20", text: "20时" }, { value: "21", text: "21时" }, { value: "22", text: "22时" }, { value: "23", text: "23时" } ], min: [ { value: "0", text: "00" }, { value: "10", text: "10" }, { value: "20", text: "20" }, { value: "30", text: "30" }, { value: "40", text: "40" }, { value: "50", text: "50" } ] } }); ``` 2. 功能特点: HTML5+ 的 pickDate 可以简单的显示日期选择器,支持原生的日期格式,但是其样式无法自定义,功能比较简单。 MUI 的 dtpicker 支持日期、时间、日期时间三种类型的选择器,支持自定义样式和文字,支持自定义可选项,功能比较丰富。 3. 兼容性: HTML5+ 的 pickDate 兼容性较差,只有在支持 HTML5+ 的浏览器和 Webview 下才能正常显示。 MUI 的 dtpicker 兼容性较好,支持 iOS 和 Android 平台,同时也支持在 Webview 中使用。 综上所述,如果需要功能比较简单的日期选择器,可以使用 HTML5+ 的 pickDate,如果需要功能比较丰富的日期选择器,可以使用 MUI 的 dtpicker。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值