调用百度地图显示当前位置

  1. 获取百度密钥
    在这里插入图片描述
    注意:JavaScript API只支持浏览器类型的ak,请在申请ak时注意选择。
    在这里插入图片描述
    申请百度密钥链接:http://lbsyun.baidu.com/apiconsole/key?application=key

  2. 实现代码:

<!DOCTYPE html>
<html lang="en">

    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no">
        <title>Geolocation</title>
        <style type="text/css">
            html {
                height: 100%
            }

            body {
                height: 100%;
                margin: 0px;
                padding: 0px;
            }

            #container {
                width: 70%;
                height: 100%;
                margin: 20px auto;
            }
        </style>
    </head>

    <body>
        <div id="container"></div>
        <!--加载百度 map api-->
        <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=您的密钥"></script>  
    
        <script>
        	//检测浏览器是否支持定位API
            if (navigator.geolocation) {
            	// getCurrentPosition方法来获取当前位置的坐标值
                navigator.geolocation.getCurrentPosition(function(position) {
                    var latitude = position.coords.latitude; // 纬度
                    var longitude = position.coords.longitude; // 经度
                    console.log("经度:" + longitude + "纬度:" + latitude);
                    // container表示注入哪个容器
                    var map = new BMap.Map("container");
                    // 把经度纬度传给百度
                    var point = new BMap.Point(longitude, latitude);
                    ///初始化地图,设置中心点坐标和地图级别
                    map.centerAndZoom(point, 15);
                    //坐标转换
                    var convertor = new BMap.Convertor();
                    var pointArr = [];
                    pointArr.push(point);
                    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]);
                        }
                    }   
                }, function(error) {
                    console.log(error.code)
                })
            }
        </script>
    </body>
</html>

显示效果:

3. 目前国内主要有以下三种坐标系:

  • WGS84:为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系。
  • GCJ02:又称火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。
  • BD09:为百度坐标系,在GCJ02坐标系基础上再次加密。其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标。非中国地区地图,服务坐标统一使用WGS84坐标。

百度对外接口的坐标系为BD09坐标系,并不是GPS采集的真实经纬度,在使用百度地图JavaScript API服务前,需先将非百度坐标通过坐标转换接口转换成百度坐标。
在这里插入图片描述

欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位指点,在此表示感激不尽。文章持续更新中…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐小侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值