我是靠谱客的博主 阔达季节,最近开发中收集的这篇文章主要介绍百度地图获取经纬度的方式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、JS API ip定位

let loc = new BMap.LocalCity();
loc.get(function (result) {
    cityName = result.name
    map.centerAndZoom(result.center, 12);
    map.panTo(result.center);
    mk = new BMap.Marker(result.center);
    map.addOverlay(mk);
});

二、Web API 普通ip定位

$.ajax({
    type: "GET",
    url: "https://api.map.baidu.com/location/ip?ak=u08X9I4Ix3q0iG7gaj1IeAxHfh9gcHtB&coor=bd09ll",
    dataType: "jsonp",
    success: function (result) {
        console.log(result);
        if(result.status === 0) {
            let point = new BMap.Point(result.content.point.x, result.content.point.y)
            mk = new BMap.Marker(point);
            map.addOverlay(mk);
            map.centerAndZoom(point, 12);
            map.panTo(point);
        }else {
            console.log("请求失败")
        }
    }
});

三、原生api获取经纬度,再转换成百度系坐标系

let geo = navigator.geolocation
geo.getCurrentPosition((position) => {
    console.log(position);
    // 原生api获取的经纬度
    let lng = position.coords.longitude
    let lat = position.coords.latitude

    // 转换成百度系坐标在地图进行显示
    let ggPoint = new BMap.Point(lng, lat)
    let convertor = new BMap.Convertor();
    // 1代表GPS标准坐标(wgs84) 5代表百度地图采用的经纬度坐标(bd09ll)
    convertor.translate([ggPoint], 1, 5, function (data) {
        if (data.status === 0) {
            console.log(data.points[0]);
            mk = new BMap.Marker(data.points[0]);
            map.addOverlay(mk);
            map.centerAndZoom(data.points[0], 12);
            map.panTo(data.points[0]);
        }
    })
}, (err) => {
    // alert('失败' + JSON.stringify(err))
    console.log(err)
    if (err.code == 1) {
        return alert('用户拒绝页面发起的地理位置')
    }
    if (err.code == 2) {
        return alert('无法获取当前位置')
    }
    if (err.code == 3) {
        return alert('超时')
    }
    return alert('未知错误')
}, {
    enableHighAcuracy: true, //  是否启动高精模式(布尔值)
    maximumAge: 0, // 设置定位缓存过期的时间(毫秒,0为禁用缓存)
    timeout: 10000, // 设置获取定位信息的时常 (超时触发ErrorCallback)
})
});

除了上述方式,还有:

Web API

智能硬件定位(需要硬件设备,且麻烦)

JS API

浏览器定位
定位SDK辅助定位(项目需要同时有移动端)

另外,浏览器普遍定位不准确的问题,并且各浏览器之间结果也有所不同(可能是个人问题),距离偏差也各有不同,移动端不存在这些问题。

最后

以上就是阔达季节为你收集整理的百度地图获取经纬度的方式的全部内容,希望文章能够帮你解决百度地图获取经纬度的方式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部